{"report_id":"17b5f62d-e5b7-4302-9ffb-a66bb22700b5","version":0,"status":"done","tags":[],"date":"2026-07-27T04:16:16Z","url":{"schema":"https","addr":"breeze-shopping.com/","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":0,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"final":{"url":{"schema":"https","addr":"breeze-shopping.com/#/","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"title":"BREEZE-SHOPPING","dom":{"size":110424,"mime_type":"text/html; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (40760), with CRLF, LF line terminators","md5":"1c82383e52e99ba7160d5c1058dde8e8","sha1":"8e7a07ce8a089437ab79bcc4e93c6791e080835b","sha256":"b63b10b2772f4ec10063a7129a9f463b0870ae6d5a1bf3de06ff3e94954dab67","sha512":"57ac53b4473f3face54e6ba65b61dd238b43736ecd3a4143cb8906495320dfee4ef36acec030bbc73bf19bc70d480b1cacee03b1e94420da9a4c91a7d1d9d504","ssdeep":"1536:Js4pe2N4VjsYId0FHoMqu7NdEAaM2OUYuLOxFZ4sfdhsfyKsffssfs/W6YEJJS+:kFsp0NVr7fnaMpM","tlshash":"b5b33193bad8149cea2bcd86c289b3bcfabf256183525cd3e71137358f912c3224565d","dom_hash":"domhash78d3fceeecd32ff20362003a4aa9bcee","first_seen":"","last_seen":"","times_seen":0,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"breeze-shopping.com/","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":0,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T04:16:16Z","useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0","referer":"","cookies":null,"exit_node":"qguvgzjxzsgb3vs"},"stats":{"alert_count":{"ids":0,"urlquery":0,"analyzer":2}},"detection":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"breeze-shopping.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"breeze-shopping.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null},"summary":[{"fqdn":"breeze-shopping.com","ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"domain_registered":"2026-07-15","domain_rank":0,"first_seen":"2026-07-27T03:26:35.391923Z","last_seen":"2026-07-27T03:26:35.391923Z","alert_count":24,"request_count":12,"received_data":1202343,"sent_data":6079,"comment":"","tags":null,"fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"cdn.dcloud.net.cn","ip":{"addr":"124.220.203.60","port":443,"asn":45090,"as":"Shenzhen Tencent Computer Systems Company Limited","country":"China","country_code":"CN"},"domain_registered":"2013-07-17","domain_rank":296858,"first_seen":"2018-09-15T09:18:08Z","last_seen":"2026-07-24T17:44:02.835081Z","alert_count":0,"request_count":1,"received_data":577,"sent_data":554,"comment":"","tags":null,"fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}]}],"files":null,"artifacts":{"windows_shortcuts":null,"files":null,"telegram":null,"pdfs":null,"clipboard":null},"sensors":{"ids":null,"analyzer":null,"urlquery":null},"javascript":{"script":[{"url":{"schema":"https","addr":"breeze-shopping.com/","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"introduction_type":"scriptElement","is_inline":true,"md5":"93368157fb131b56a45d6f60f8b40342","sha1":"ea2a25edb7b00c3e0a06650f02fded5bd87dfa20","sha256":"c48d4859bc082aa591168f7d7230bef438ecc2b3074e707c83864e11ec1a891f","sha512":"366c90d022f7fd6718d76460de51a154cf6cf8bf8e3aefa2e0e736cbba24ec53506485331abd3c3c2a7e6ae00c9a3b957a9aa675ecdd389afca7863ad8365908","ssdeep":"","tlshash":"c8e068c260a6294c02208016304ac1031bb608729ec149613c4c67a58fb9f4bc46e859","size":352,"data":"","first_seen":"2023-03-07T01:10:06Z","last_seen":"2026-07-30T23:08:49.892348Z","times_seen":7113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/js/chunk-vendors.99d58eee.js","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"introduction_type":"scriptElement","is_inline":false,"md5":"664996a2203dd9ef5c0ade8f56868c15","sha1":"06186c01c702881b6c931d97121de2b9dd4f3f60","sha256":"beccab3bf55f94c38c11474b2cf160bd1ff9fb145c1eb9d0d74232c8b16d5ab6","sha512":"7a250854f1471e27a5007ce9ef14ce6dff4cd007545561a093400d15794a54fb289130f00b645e21dcafa27a1846186b19d6ffc1ba16b3e31aa3065fd533082d","ssdeep":"6144:a+sqYP0/ytNaP81AhKH+hU1Cd9wKwz2CGXNOdqJZ:aHtQo5bCRwzQ4dqJZ","tlshash":"70d4089cb285b4a607d761f1003f220bb13b6868b40b95d9f27ae4d46e7d94e6127f3c","size":620511,"data":"","first_seen":"2024-09-19T20:12:05.640581Z","last_seen":"2026-07-27T14:18:45.067163Z","times_seen":20,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/js/index.a800f123.js","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"introduction_type":"scriptElement","is_inline":false,"md5":"060a0d9c2b6687d4823df498f0e64542","sha1":"7a65eb0ff5d7e7ea9086f3f4599d01d3194a2757","sha256":"5bde4b5d18263515f829178312482f2ba34c6abd843c70a868e6d07b56f46bed","sha512":"5b647dbb7e56be928c49a15eb74d6c98abe8af73597aad1acd0e19abf79e207f13f839011cade14dee5b4b4d82aa4d6086eb85c38a13e7155cace98f8e290c75","ssdeep":"1536:UUtiiNbqhjudrxj/gXxRP2vcUJBgS5+w3Co1:zRNbqhdxUJBT","tlshash":"cfc37283fac9605d8b4b5e82d05f33f8fab72c721246e8c3d6a17f658f59697221250c","size":123803,"data":"","first_seen":"2026-07-27T03:26:41.393252Z","last_seen":"2026-07-27T04:16:18.943165Z","times_seen":2,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/js/pages-checkIn-CheckInRecord~pages-checkIn-checkIn~pages-index-index~pages-index-list~pages-index-mai~cbbde680.36873f4e.js","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"introduction_type":"scriptElement","is_inline":false,"md5":"8c08b5717fdd7a8996baeba5c41e8681","sha1":"5eb29216e648e965ab326b32f136acb1c73c1769","sha256":"740a1d91ac1be37f91f710defe753cc22265b2a187dc2e231224192aa8c7356e","sha512":"8aac57815d6670c539ae8fd7e33e06a361d3b5fe242a28e66c5fee6f4f63622315fe7c06effc37bec8953d193c29a4d4482d4da73e590b060483e93e7e19b7ae","ssdeep":"768:1oUUgQnKb6QWm4AmCd0tG8e+W1MAbu7N8ChEAh8sd0Q2Z7wXuFYpYXiXeKk3SaI3:GpsYId0FHoMqu7NdEAaM2Ot/e+3FB","tlshash":"1943e9e6f20d1cd13bffc94b6344634e7991b722d8a42c28f167164c4ef33a621997a8","size":60154,"data":"","first_seen":"2026-07-27T03:26:41.383442Z","last_seen":"2026-07-27T04:16:18.931889Z","times_seen":2,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/js/pages-login-login.dfd1fddb.js","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"introduction_type":"scriptElement","is_inline":false,"md5":"03eea3f408f6673b27e65e3c609021de","sha1":"eee8ff651e4a1feb048e8d2d289027d4e49211b5","sha256":"95a902d8c938789544972c3746442f34a446204d3e107c87dc7dc39c9276cfa4","sha512":"9beb343b83e4f5229e24bd982975c1bc19d7e823e21ffb4e4ea0f1c1bfde0a8a48167f86362b6830ec8293426de76ec6f18a0623011711cceda73c9e87db3ce4","ssdeep":"192:R39gCeFBhkImQtbXhH+l85kERh9WqZymdE0xoRsSAF+R6:p9YRe+PRh9WqY0ywL","tlshash":"0412a71c25a3b45e4c0ab8a63457061571336e3da047808ae772cae59df5ece7727f28","size":9461,"data":"","first_seen":"2026-07-27T03:26:41.395288Z","last_seen":"2026-07-27T04:16:18.961399Z","times_seen":2,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":[{"level":"log","text":"[system]App Launch","filename":"https://breeze-shopping.com/h5/static/js/chunk-vendors.99d58eee.js","line_number":1,"column_number":177699},{"level":"log","text":"[system]App Show","filename":"https://breeze-shopping.com/h5/static/js/chunk-vendors.99d58eee.js","line_number":1,"column_number":177699},{"level":"log","text":"[system]https://breeze-shopping.com/#/","filename":"https://breeze-shopping.com/h5/static/js/chunk-vendors.99d58eee.js","line_number":1,"column_number":177699}]},"http":[{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/js/pages-checkIn-CheckInRecord~pages-checkIn-checkIn~pages-index-index~pages-index-list~pages-index-mai~cbbde680.36873f4e.js","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://breeze-shopping.com/","date":"2026-07-27T04:15:49.570Z","timestamp":1785125749570,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"breeze-shopping.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 15 Jul 2026 01:06:08 GMT","end":"Tue, 13 Oct 2026 01:06:07 GMT"},"fingerprint":{"sha1":"FC:2A:A7:4D:FF:04:7D:30:4B:17:B3:A5:DB:B5:51:EC:F4:17:89:0B","sha256":"6A:08:9D:6F:EB:0E:C9:60:FA:2A:59:01:4E:AE:44:51:20:B4:4D:8B:55:ED:47:9F:26:7D:74:49:BF:79:D4:02"}}},"request":{"raw":"GET /h5/static/js/pages-checkIn-CheckInRecord~pages-checkIn-checkIn~pages-index-index~pages-index-list~pages-index-mai~cbbde680.36873f4e.js HTTP/1.1\r\nHost: breeze-shopping.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://breeze-shopping.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 04:15:49 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 15 Jul 2026 02:04:11 GMT\r\nvary: Accept-Encoding, Accept-Encoding\r\netag: W/\"6a56ea9b-ed4a\"\r\nexpires: Mon, 03 Aug 2026 04:15:49 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\ncontent-encoding: gzip\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":60746,"size_decoded":34882,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (59252), with no line terminators","md5":"8c08b5717fdd7a8996baeba5c41e8681","sha1":"5eb29216e648e965ab326b32f136acb1c73c1769","sha256":"740a1d91ac1be37f91f710defe753cc22265b2a187dc2e231224192aa8c7356e","sha512":"8aac57815d6670c539ae8fd7e33e06a361d3b5fe242a28e66c5fee6f4f63622315fe7c06effc37bec8953d193c29a4d4482d4da73e590b060483e93e7e19b7ae","ssdeep":"768:1oUUgQnKb6QWm4AmCd0tG8e+W1MAbu7N8ChEAh8sd0Q2Z7wXuFYpYXiXeKk3SaI3:GpsYId0FHoMqu7NdEAaM2Ot/e+3FB","tlshash":"1943e9e6f20d1cd13bffc94b6344634e7991b722d8a42c28f167164c4ef33a621997a8","first_seen":"2026-07-27T03:26:41.383442Z","last_seen":"2026-07-27T04:16:18.931889Z","times_seen":2,"resource_available":true,"data":"KHdpbmRvd1sid2VicGFja0pzb25wIl09d2luZG93WyJ3ZWJwYWNrSnNvbnAiXXx8W10pLnB1c2goW1sicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCJdLHsiMTY3YiI6ZnVuY3Rpb24oZSx0LG8pe3ZhciBuPW8oImEzNjQiKTtuLl9fZXNNb2R1bGUmJihuPW4uZGVmYXVsdCksInN0cmluZyI9PT10eXBlb2YgbiYmKG49W1tlLmksbiwiIl1dKSxuLmxvY2FscyYmKGUuZXhwb3J0cz1uLmxvY2Fscyk7dmFyIGk9bygiNGYwNiIpLmRlZmF1bHQ7aSgiMmY4YjdhY2IiLG4sITAse3NvdXJjZU1hcDohMSxzaGFkb3dNb2RlOiExfSl9LCIyZWM3IjpmdW5jdGlvbihlLHQsbyl7InVzZSBzdHJpY3QiO28ucih0KTt2YXIgbj1vKCJjYzI5IiksaT1vLm4obik7Zm9yKHZhciBhIGluIG4pWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbihlKXtvLmQodCxlLChmdW5jdGlvbigpe3JldHVybiBuW2VdfSkpfShhKTt0WyJkZWZhdWx0Il09aS5hfSwiMzkxZSI6ZnVuY3Rpb24oZSx0LG8pe3ZhciBuPW8oIjI0ZmIiKTt0PW4oITEpLHQucHVzaChbZS5pLCdAY2hhcnNldCAiVVRGLTgiO1xyXG4vKipcclxuICog6L+Z6YeM5pivdW5pLWFwcOWGhee9rueahOW4uOeUqOagt+W8j+WPmOmHj1xyXG4gKlxyXG4gKiB1bmktYXBwIOWumOaWueaJqeWxleaPkuS7tuWPiuaPkuS7tuW4guWcuu+8iGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY27vvInkuIrlvojlpJrkuInmlrnmj5Lku7blnYfkvb/nlKjkuobov5nkupvmoLflvI/lj5jph49cclxuICog5aaC5p6c5L2g5piv5o+S5Lu25byA5Y+R6ICF77yM5bu66K6u5L2g5L2/55Soc2Nzc+mihOWkhOeQhu+8jOW5tuWcqOaPkuS7tuS7o+eggeS4reebtOaOpeS9v+eUqOi/meS6m+WPmOmHj++8iOaXoOmcgCBpbXBvcnQg6L+Z5Liq5paH5Lu277yJ77yM5pa55L6/55So5oi36YCa6L+H5pCt56ev5pyo55qE5pa55byP5byA5Y+R5pW05L2T6aOO5qC85LiA6Ie055qEQXBwXHJcbiAqXHJcbiAqL1xyXG4vKipcclxuICog5aaC5p6c5L2g5pivQXBw5byA5Y+R6ICF77yI5o+S5Lu25L2/55So6ICF77yJ77yM5L2g5Y+v5Lul6YCa6L+H5L+u5pS56L+Z5Lqb5Y+Y6YeP5p2l5a6a5Yi26Ieq5bex55qE5o+S5Lu25Li76aKY77yM5a6e546w6Ieq5a6a5LmJ5Li76aKY5Yqf6IO9XHJcbiAqXHJcbiAqIOWmguaenOS9oOeahOmhueebruWQjOagt+S9v+eUqOS6hnNjc3PpooTlpITnkIbvvIzkvaDkuZ/lj6/ku6Xnm7TmjqXlnKjkvaDnmoQgc2NzcyDku6PnoIHkuK3kvb/nlKjlpoLkuIvlj5jph4/vvIzlkIzml7bml6DpnIAgaW1wb3J0IOi/meS4quaWh+S7tlxyXG4gKi9cclxuLyog6aKc6Imy5Y+Y6YePIHJjOnVybCgvL2F0LmFsaWNkbi5jb20vdC9mb250XzE1Mjk0NTVfazRzNmRpMWQxLmVvdD90PTE1OTY5NjAyOTIzODQjaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoImRhdGE6YXBwbGljYXRpb24veC1mb250LXdvZmYyO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdNZ0FCQUFBQUFHUVlBQXNBQUFBQXcyZ0FBR1BFQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFIRUlHVmdDZEFBcUN2M1NCL1hBQk5nSWtBNFpvQzRNMkFBUWdCWVJ0QjVjTkcrT2ZkWWFjeHdFQTllWXpFcUhiQWFYQytaRlpXUzhvS1RyNy8wOUxLbU5zdTdEZEVFVkwwNEprU3RnWnlPS1ovSUxRMkp6UW9vWStPMm1sRG04OGN3cHJ0SVVKUllvVnA4cTFNRWUxT3cvV0lValVOZm5OSDlISlY1bTkya1c4ZG5qLzNwRWhCOGFTZ1IrNGtqMjR5T2V2UHpmL2l4MnQ1SWo3OUZISkFzZDVFRkoyRW9CeVVaUE5IdFdaMVZVdzhUQ0tOc1B6Yyt2OS9XVlFJOGRHamhwc1JNa1NSZy9ZUmltTUdpRGhDQmtJeWdnRkxNQXpBQXNWQS9CT2pBSlVyQk1WRlRrOVBRVVBLMEQwcm8xUkVNLzRiY2swR2pHTE1CS3dPekVxTURybS8rRE52d0VBaFRzb0FBa29ZR3BCN2U0TE1JbnE0WjdkMi9sU0htcmtpVkNvd2dGT0dDLzRCakxkanFaQk1LOWZrV21FSnBnS2d4OEVLOW5BUEVQT2szMHBOQ0xxMEJsU0tOTGV4RHJ2Rm5ML0VCY0tsQi8yWVBxbHptOTJyTUJLYnhXeElYYWNEMFRkTVRUbGxUZGZidFdua0V0VmdCVWFWa1c2ZTZvcUxTdmdxODRsdVZhdUpVR2FNUWcyNDBDUG1FVGUrOGUvdFphYlR6SFp2V3RaeWNvcUhILy9CUUJGRkp2WWc2Y1NDQVBLMFAvbFZpVnZibVRXSXpEaTBOMHJMamRvVmt5T1hKSXJYSk1nMWhKSXBZSnB1d0w5cTJyZW5zU09kRnE3cmZhdjI5a1IzTEVnV0QxUjA4aDI3dGp4TWF1UldxazF5QXFReElFbnh3ay9rOVh2cDRtTko1dUpMU2hBZVA5ZWJhdFVZMG5hQ2dXMFVJVGg1OWF6T3Fxb2JvTVQzNWsrd1U1TVY2QkMvcVdxSjVVbkE5dnRIUWxmbk9ZWEgwRUdxQXVXVDlvL3VDSS9SNnFINUpGYjIxcisvM21LQzJqM2Z6bHlQYVFTbENrbVRnaGRCdWVGUE9JZ0l1RC9walY3dVNWVXRSSkgzcjFRaTc5M3lpRVJidmZQbjFrbWZ5ZTUwaitodCt4UmFrS2RYV3BSeUZhRVcycDN2Z3FEeDVrbVVWNUMvY2VOOHpEQkJhRS9KdytjdTByVitvS21ObVJxODhYMGkvVzNxN2IrbDM3MytrelBrQllHSUNVQ2tHaUNWSUlvK3dUS2dRQmxGMEU2QlhJanBmUGw5SW9SSUIwSTBuc0ZVQTZrZkFIY0tHNlc5L0pyTjEvTXo1Q2U5L2pjKzMyN3J5Vm9Lc3MxNHZ6L2FWdEVGR0p4S0E2enc5aXNBY3ZRc1VMbG1DSUNNa1NNcjd5OEg1di8zSDdIS3NSSXNJRTdKTlIwdjY4T2xhK05pZFBYZ1lLN2Q0eTUva1RyeDFZaUgzQUNIWTcyMVBwUEV3QjUyYW9wTlArMjcyNGtwSGhTQUlUeHYxRkRqSHpwZ0R6Wk1zQ0NvQ2V2ekE0WmROdUd3V2F1YjJKc09yNS8rR2ZUQWhiSVFFWHh6TTRqV3d3MzYzY3djQmZEMzdDRHRvYmhkWDI0MXdNaW9DYXlWVzQrYlkwTmlZZXVlUkIrOXJrTmpaUFIzU3pEbVB5K0RadUFpcEVESjk1c3J2WDErL1ZIWjcza20vQ3QvcDJ1dE5TVnBxdTgyaHFDQkF1Wk5xKzhBVG1WZkpWV1dIZVlid1MvMDR0UFRNL3V3bng1L1dyWnlWVzVLNW9UbzNOVnFQbTE0bTJCTWpUZW1tdTlyZGR6dXpMZmUzdGI3bk1QdUllYUQ0d2F1bU4zNHY4ZFQxbGppZ3Q1aklFbjRDbDRCcDZENXJhOUFHM05jUGZlZEYxTk5zeExVSnVYenFOakhYc0Z4bmtON2gvZmVtTG5WRy9BL24xMVlYanJtcU9kdDJDOENYSXJ0R2RISlRmQnUyQ205OEQ3SUs4N29JMFB3WUdUQjdkL0JLYm9vTEtEK2NScDcyUHdDZmdVUEpqdE16RE41b2NUVlJHdnM2WmErQng4QWI0RXJiUzI2eXN3eUtGSm1obWxnQUo3UnhocHNIcHluZTZtdXg3TzlOUkxGNzMxMFZkTC9mUTNRQmxrOWxnc3JUQlBJVmFvSE5EUU1kUlpvRGhUWnRDWUxKaERnT2t0dEVnT2hpVlpqY3VXcjFpNXFpU2kxaldsckYyM2ZzUEdvYXJxUGRKUW1QYUF6UWVmZ0s4c1o4K2RIK2pDeFV1WHIxeTlkdjNHelZ1Mzd6VFdSQVgrQWdRS0VpeEVLRmRjYnR4NUFJTnlHamdXWUhUOXZ2WmZJRENxZ3lsQUVENFdBcU9BWUh3Q2hNU25RQ2g4Qm9URzUwQVlmQUdFeFZhRXc1M0M0MHNnQW5ZZ0lzNG1FdDRUR2UrTGdyT0lpajJJaHRPSWppT0pnYStBVExBMmtDbldBVExEN1RMSDQ3TEFDY1RFRTdMRTEwQldPSkdzOFEyUURUNlFMWjZVSGU0UUMwL0pIdmVJalRPSWcyK0JIUENnSFBHQW5MQXVrRE5HQUxsZ1BTQlgzQ2N1emljMzdFanUrQTdJQXllUkowNG1MNHdFNHVGNDhzWmMrZUJ1OGJFU2tBRGZBL25pQnlBL25FUCsrQkVvQUQ4QkJXSTBVQkIrQmdyRzloU0NYNEJDOFpBVzRXbUY0V0VKY1pkRStCVklqTk5KZ3AxSmlwV0JaSGhHNFJnREZJRmRTSTZkS0JLL0FVWGhkNkJvL0FFVWd3OFZpL01vRG44Q3hlTk1VdUEySmVBakplSVVTc0lxUUVyc1NpcnNSbXJNb1dSc1RTbjRDeWdWZndPbDRSK2dkR3hMaTdFZExjRzl5c0MvUUptUE53MGVVUlpPcFd4c1NUazRsbkl4RGlnUHg1RVc5eXYvbkZYZ3FORDVYVXRoZmFBaUhFWEZlRllsMkpOS3NSY3R3OTZrdzNNcXd6NVVqbjJwQXJ0VEpmYWo1ZGlmcW5BQTZiRU5WZU5BcXNGQnRBSUhVeTJXQmFyRGVLQ1ZXQTVvRmFZQzFXTkpJQU11b0FaY1NJMllBTlNFcFlDYU1SRm9OVllFV29OSlFDMllETlNLaFlEYWNCR3R4Y1cwRGdzRHJjY2lRQnV3S05CR0RBZHF4eEpBSFZnY3FCT0xBVzNDWUtBZk1BUm9NODZsTGJpRXR1SlMyb1poUUQyNFROdHh1WFpnS0ZBdnJ0QWVYS2srWEtYOXVGb0hjSTBPNGxvZHd0SkEvUmdMTklEck5JanJOWVJsZ0k3aUJoM0RqVHFEbTNRV04yc1l0MmdVUjlBdldCWG9CUjdWT3p4bVBvek5nZmxJYkFITXg4MnRQYndaSkZPenZKek1ORG1iNmZJeU04UTNNNVZnRGxlcmVWNFB6QXY2M2J5bzUzQUlDeEx3a2dVcXZHeUJlbDVScVhsVk92T2F5czNyV21IZVVLMTVVdzNtTGEwMjg5UmkzbGFiZVVkcnpidjZ5Y3pTRlROYi84TUt3SUFjR3dBREttd0lET1RPUnNvekcwdHJObEcrMlZRVlpqTlZtdFZVWTFiWENyT0cxcGsxdGNFZmF3SDREMkRRZFlQL04yMFNtRDB6dnVHL2t1aGhTZEIvZnowSUVoWWFIbXJUeU5HSGdwSERhVVF5RXZ5bEVpUGhwdkFzZ0FkY1VxRGhCQXpqb3hEQmFtV1dIRVhMUlVrM3pRSXhKblJxY1dhTkMxQW1oSXBBQVZ5YUE3aHBIbEFQVEFFc0VBaWtQa3VGNEFyQWJFNE5LRU5SVjdvRkF6dGFHcGt5TGlvSmZiRjNjYlFObzZGYmxCZ0greGdVZTFnUkRWWmpFMGgram1GS09BMVpIMmFHcVVvMUNOdVRMZHJld2w2ZzVnVG9qK2RSUzBja1o1SnlOd3o1Vmd1aDJXYTB0S2pqL2tKMFBpOFE4eVBsVG9jcm5xNGhFYTNGQ0RvY0tZc3ViUTlqa2l4Nk9NbEtRVlNLelpoTWZ5VVAraGg4THBzUVBheE5nUmh1akk1WXBNdGluWjQ0MTRlU05lQmJ3MUxzNkdwMmFtZ0lqanVuYXB4WmdTUEtMS2VYWTFCQml6M2t4RmpaTENtR3JkMjBmYXY0bHZXb0NGaUYwaTdIL3JCUFB4Y2JUWG1wZmZjRWkwZW45YTRUclozYjI5MjUwbXlIYVlyRWJYSjJJUUliS3A2MUZZSlQ4TXhTR2RlZEpzRnVWZTIxNjJxc2NuWmJ1OTNkSGI5ZHR0L3RIeE9TbWh3VTRsaVhLQjZzVGhaZGJxWkI2OFNVR0ZJVUhPOWhDNFY5MzFTMm1XNDJtN0IrUy9FRWdZS1VKYXNsdU1DS2dXRzBzeU5xMDFtTExJbWVLWCtDUWVkaDBnRThQUTFvYWpCcmcxVXFndUhmTEJJNGZMdkVIVE5xUTAxclpxLzFKMzlvbm1lbTVYRkcyUG1GWEROL2Y3QzhabC9DcTZYK0NaSmxzaG9uSkRzckUvQUl1MEVNQzlzR2xUUXNMcmdxNHZWTUxkaDVOS2dPNHJDL1FHYUtXR0lhY093OGw1UnVPZ2NjaGtNSDErOTBJT2EvMk4rYXpyQUNqTEV2d05ac2l0MFVGN0Jjb1JXQ2JLNjdGTHQyNFYwVFBiZ2N4RzM5UU5rMXVVTktHUFJaY1M3WTdKNWt0Wmxqd3g0QVRMeXdteHBoN2hIcXZQTmZrK0dkcFB3UU5NZ1F3WFFZTzU0TVppaXd1UlFFMnhBd09RZ09BcUdnRS9SUWw1K0ZmRjdlRFlmbTJqRklodXVvejlYVGhkQURiSUNCZkdzMXJUa2ZiQ3RDRWh4QzVGRWhGZEE4STY4eHhCM2ZERlU5SlpqUnFVTU5LY1BsWEQ3cENtNHNJSDhxMjBwbmdKUkVyVmZUMklhaGYrOFg4THZnM0FPQnNPdHd1ZXZKeGVYbTJTWXZBYm1sYkRrRXhYUFFORElXVGFkVUFFYTk4cnFpb1AyUk5Bc0x5bEJZQU1FSHFKZ0JWZ2FMcGd6TUhiamJCQTJMMzl3RXBFWGp6Q1k3czAwVzFMZ1QxRXdSeFNqanhvSi9vRm9LakhQT041YURmZWRoWGw4ZG1ja08xdUlOMTBqMUhGbXl4ZDJTRk9uQzBWaDlrVkt3ckFHSnIwT3VHbFlwWXF1SnJ4WXRRMm1senpHVmNWQ0w4c3dLR2tUUTY0a2FnRjhqMTAwVzcxOFE4Vm9wQ29waks2QzRpNjg5VVJLMjBBK0lKblF1elhNbVI1MnBXWVhNOUhwaTA0YmJidWpYWGt5STRyTlZhQVdrS1NEWE9SREp1Lzd6MHBpckZzMWtFbVF6WHBUNmNmakVVR2JhNXRoQmV1NS9jVnRiM2tJTlhPOTNzTmVHbFhkV0RxVzhIZmU2b3NDd0NvcXJ4MlcrWTd1T2tWQTVsTEtsR0ZCcWlJVEV3L0ZWUEl6TzRvTFZHNUZJTjBSTkJ1VjFuR2g3Sk1QWlRYVjVIbzRIanRqS1VFcnNGdHhVNlFBd1RGdkZ0ZENyRHkvdmp0ZFIxeUZ5cTdMNTlYY1ZuZkcrUng4Zk51Z3pHNW40aFNSOGRmVnhRdE9QTFhuVjNVN3R5cHlIUnk4S3ZVckVpekFHb29BQkpiT2hJS2JmSnBqR01WaDNVdFRQN3pHSzFySVJaZlRiM0xzdzFyMm1DNEk2UXRLYzZjRnhPajBnSmk4ZG9KejNodDNRZmtKSjF3TC9rQUdoY3pQRXlGNDFZMlZHbjFJNXBjNTFkLzZvdmRXbC9SKytQempiSHExUEg4YWdUWVdYdkRLRmpZbFF0eC9naW91OUtpamMzRDUxUnk5Q1pncVpvcTJTUmhWbndabFpSUlJnQm1rdmxnQlVsOWFJazRFWXowTGQzMVVTYnVCckF1WDJjSFJMcUxrdmFCL0VRdC9kaEFodVN2SStsV3NSU0V2VVdDMWVGTkk5VkJXbzhCeVZCYmNQaENNcHg5Y3NmbG9Hb0lZV2RhYnoxcUMxNXBLbTVHY1NZS0R5QlpQRGJkclU2b2tiV0wvRzA0Y21rcUxLN25hNEpXM21UdFNRMWxwNEt6bGRPZzdRKzdKM1lFSnd2L3d1dXJ1NWJOa1NldmJ4MFg0cGp5YUx4elRJRnBiMmJUQ2xUYVlBSzVWRFU0Z3dJUTBvYU1KZ3NjWHBNdFNRUFdTSm5GbHFTWUhVUWpIR09HUktVSDhPMzZjTnI5K1NvTktqczVYeFNKNUt5K24yRlMzajhjZXB5SUJrU3pDbkgvSzA3czZwbVhpemFtVi83VVVPZ0VKREJxUkJxSE95Z1hCSUlWSHdWb29SV0M3cUJJelBNdXhlRHVVNWJNV3Z0M1Y4QXA1MVJOVk1JK2doT0duR2hvazd0NzVRRGJmWCtobFZyN0tYQTkzc1NVVXZkVnE4ZzRoTWt0WDh1aVhya2RXeWptYXdrd25ST2paL3lXU09SSFQxa1pPZU9VOTE4bERFbTA4Zm1rNWZRb3ZPWnc0OG42bEIwSndpZWpQQ1ZRSE55K1lpM25TdFJOZFJZc2szL0tDZHl6RE9CUGRUM1JjU0VXVG5NaGMxS3R1QUplTkNFeEN3eGJ2U0VkK0VXU0xwcUFva3BCUkR5YklMdzBHV0o1V0lDTFV4bnJVM3Y3MFpKRlE2c25XZUpLZWpCeWtYRFhSSzdwb0JSTXhLOTZyZXV2bTlTUEkvdUZWRytMZXlMMXdJaUZkSkZBb2JWVTRzSVRzRWpTa1Z2WlN0OWhGUEZBbUNNR2ZQV28rV3JrUm0xai9JQ0x1S3JoalBNUUNBeFFUS1JXTWpjUmxvUW9BclVZdEE5THJ6dGliSGtOTzdrZ2Z0M3hnbk5GMURHaXhXY09Day9lNkR1VmVMMzdzdHVjUlZLQS84dGpzVGlhWGxadTdzb1g4bnlTLzhTbXVWUm1kclZsbGNjTEtHRU43dnFDcnRjY3p2MTRqZm1WeVF5a0FmM2lnMUdUbzFNOEZ6aFh3UlNPelp3cG5zNExsb0c5K1N5SFFncFZ4SzVMY0dWZVY2cFVRdUpEVjZVcVpQNU1rb0lPMC9KQUtEL216Z05IbEN2bmdlRldQcllJaUdUY1c5U0VBd1BGSkdaNlRGK2ZnclZCWmpzTGtCOG9UYkFVT0RYQS83dCtlS1FpRHRkZVZwV09DcTA2bmo5TlpFbVFpbzdVQzdvY2tlQW0ySll5UVFhYU5qOE1iTW9acXlUNFM0MEJVaEo1dXdReXczT2VwT1cxUTJySVR0MUhnM2VDdVlFRHVEVGxJaUVvWVNNU2pTVkhqdTNySzhVajIva1BmSTcycmVFRW41RDc3VHN5Uno0NnJiNEZ3YzQ5cWV2Mk5zUk9XU0hmbW1IeDM3YnJpdVhEdFpQV2JGYUlhTHJjZGNVSm5IMVUyRzhka2syNHRWaGpSZUhlM3JDd2hzU3R4eG82cDFxWjVMVyt1MWt2RCtEVHNyRmc0RGRmeVFDclREdXpkSE96NkROb1d5cVhPb25jRDhLTFQrQzhwTmlxRTBEZGV5VHBxZDZ6MkNKbjVqQnU4bXpzWFFBNFUwc3B3T2tyVjZWYVlFMys4Z3VJS2cwa0FEMXlKb2g2L3ZSdENwS0hwZkZ4S2xoakk1UGxNNU5rNmxEdVFVUElrTmRFV2FYay9pOXRkV0RwcHN5VHNNOXQyOXkrc0E3QnRZSEVSNXEyZ2JPWXZSdG1aamJMZ25naEttSGVTWEtocktHem5PN3YxRWc3am12cTRzdm8xV2wwL0UyMHRIOXFHeXg1ZWVWSnRyMjc1ZXFyalJQVmNwbHh4MVA3Q3E1VzdzMEZQL2xzVThoTTNxUk5OeWxUQlR3bmJZYmMwYTUrbGRCNU04VXh6eVYwVlEycjJXZzR6ZnhSM0dCTUdvbjVUMzZkQ1RNc1g0R2lxRi8yd1hrM09oVUpSNmd0ZEIxOXpCd09GNUw3emgvOHJLOGRTQjhySkdvbFlxalRtZSsxN3VRRFk3dGwvckxNaVIrbUp3cUVVYlMwOWE1NXlvMnI0UVJGQzI3dGdhbXh4d0NYckhXMk9qS3d3eVpod0pWa1FIb2pPTWhDYlYrT3RFeEJ6cVd6MTQ0YklBd1BYSldTRGw5Vi9BVDNndC9GdlY5RExwYTRra2NZUEs3NUdOUkExYURpSGpNTVBBVFRSaWZWaVhIQTkwOWluODFxMVh2WCt3ZkhpTjYxSlhGRUNFcXpZUUVmdi9IREZZRkZJdHlVano0ektxbTdvdmxvWndXUFRRSDcxTE1kNjFxc05CTVRlN0plbVN3eUhwNGxhclhSTkNuN05NZnU0VStOT1JsZ0FKanVnN2VYL1hBSFJRUXhvQ2ZER3d6ZjVncmkzL3F2WW11N3BQcTVZRURWYXorMnRyWk1nQzdwVnRWVGQySFJnRmZQTTJrWTI1TGw2U09jM1EyUklGVVphVnpjTDU0cStPem80Tk0xWHdMdmkyb3NQR2lXSlVuOVFTZGxucXlaZ2JjTzl5TTR5aU5JTWlqR2RRMnpCVUhGNFVWNm9tN0VXQ0tTNXdTL0ozeGI4ZCtTT055OWpPTHZ1MkpvUDYwVndrTVFOMDdaUTVxcXBNY2QrQ0U0UVJQbitkWDBtdnZOWmtwVmRmUWZoUGV2MVYwWjM2d1dhY2hZWVEzZVJtdncweTVNYXNPMGIxaWliUG9mOHdjV2lFYk9YaEI0WEFQNFMrQjQ5cStnSm1Yek5HVFFxQ0R4Ync1V0Q2NnkvZkhyUGZ5dVQ3WVc3bDhLZG5FNFBzNHQ3M3p6KzYxS3hPTU91anhGajJhVFRGZTdnbnA3a2dBQmdWc0QxMEN2d0dxbUFFcmNDcXRIWldHK0JUNXMrSUl3aFVEdTRpSkFwNHY0cUxIVHdVNXRuZ1VKcng0QzVYV0JJMjNxek02eklobGZ1VTdQMUNQcWZyWitRRFZtbUM0Tm9LTnpMMU9EMmFTV0MwNnMwV24wZnFaU01kdXBoaXlOQytva2F0cHBTRUFQV2s4cUQrb2l4OEVZaUNKZCtMTlJBYlN0VW9zMXJxMTRnb1JUZ2VWaDRpMGw0K1JXbU1WV1FFSkVoQnRMNElJMFdlNlVCeG1DSGdZU1MrTEJDUVU4cFFiVjNUd1ZhWCt3VkJzUStDRDA5MXZVRWZhQU5UbDRmZ3pHdS9jNHJsRmhoNXkyUTA3c25TYnpwdTVRSmdOTFNvbEFHc3o2VS8wWk9ocHBwcHAwZkxBd0ZNVkJsbW5WSkZwdEJncG1WS0dFQ0V6ZzNhT1BKbUgxaElwR2w5MUxrczhFK2djakQ2NGdTVHJsdVdXQUFSajZVWEhoUW5ETnVCN2tlVHQwbWdYS0NlVlZzSEJhMHVGeU1hS2lmU1VVQ3lkMDIwZ0JFcEFiNmNtVjVJcU9KNnh0dzRHMmpQRmJWZ2RoOTR4aXM2MWhNVmdsVUE3VFY1TGVzOXlOb2l5TjQ3WG5GbzVtcXd2MkxnbHA1dXpNRUxuTlE4a0czai9iM3QrSWpGVjljRklHc0hzdXRqZzZZYkZNcVBXMTNWZEl4RUQ1Y3dPdjhFbTBEQUlVY1Jvb24yNk9RUDkyM2lBNDlEb2JEY3RYWUt4Y1IzQUtVSnNFbmZZSWlBbjROS1BWWjI1QVoyb2xFNTBuV3RMV1Ava24rclNRRjg0cGJLdFJDVitkMEJMQnJnSld1UTRSaDE2OExnZmpjdGlSeXFRMW5qK25vR3QveVV3aGc1SGtlRXk0ZHdJYzdDdmxtNnl0UVo4TDBENy94Ump6MHdob0puSEg1Q0gzdG5kV1ZvcU53bWFMelF5c01RdkErMjR5R3pZRDRad0NiZlQrdGhKOGtsS0kwZkpsRHcxUnd4S0RLV0xVWkNOb1Bzc01mMG8yV3MyUGZpREczY3ZnY0lMUTM4a0NHdWlWQU1XTlp0ZmhBb3BkZGVtK1VKUWo0T250c1lHa0lDaEdabFNDL28vVW5rVFYzeUVES0RKQnZBcUF5WkRjZzdKUGxtQjN6L051UXgwYkYzSWZjZzk4alpsdENqR0RBR3BQdzRRRXdSd2ZnU0pZdmphdEN5ekc4eTFObE14TDRvNUhpa3hLT2xoMVZZbFR6ajltbmtsOVJCYzRhaFF0STB3eU1GWFlKTWMwUGdlL2pjd0JQZFJDTGMrYUpVM0NXYXFzdEF1ZkNJZW9tcnNKMUFGR1k2L213SFBhaEhWaC94bWZYMlNaaFY2Z1lFSmhpbkhQanMvRHdYMmQ3N0JoV0ZodkZ2VnI0alN1aDNvaW42bGpRUmZ2alArYi9TbEVqNW9kaHBDQ2k0ZWhOaHpCaExkTG5LRVA3QmpSK1poZC9ZMlNGSWNWMXJnS0p3eWUxc3JSS1o1YkhPeHpORzJoZ0d4QysvMCtQODBXS3lmWStxUVpkYnBSWHVlMVIyS3hTbDJpMDBaS0E2a0hVNDNNV2lxeWVBUHdvQVZiTXdIbmprK0NJM2FQTzVqcm1ISkdwKyt2QWVXakVxVS9hU2traXA0bjQyVXVydkxNV3FQK0orcmlGdTZ1eGxwUWx4eGxwUUdIOVpqcHRPS2ZhRzBQOVZlQXllR0MraXFkczE4UTMwUU0yS2hDWGhIcm9rYUxqUGttWDhPS2xTRlUxRDgxaHhTL2QzQUtjdzNBcDBTZ1Q2ajlrWDZBb1cwVlpDVVNuRTR3K2poSlNtNW01RU1GQ1A0Vi9JOFJIekMwRitJTmpZQ0lWa2xZbFN1VXFOY2xuVU9ndEVtY29lV2h3Z2xkaktxaFJQK3BscU5tSUNXeVp1ZkJvdjEvWkFzWlFHdVpQK25od0R2UEpNZVg4Y3d1bzZvSmZYNmhWMkZEOTk0MXMxckJRNm43REFkSTE1eTYrWDc0dlFIdFA1eXRiM3I4bkp0Wm1hQzVFY2FCU0xhQU5DWGt3REt6bmFxRkRLUndkbDdiL1B1NlNvMVgwOTBha0Exb1RyMGJFRU5xWm1pYmVZQmh2U1V0dzJnaWxIalF5bDJRL2N1djZTNDYzMHhsWUY4ejlya0IrWlRERXZwaEVhVktabU1pd2F5ZzRTSUhsaEFwSXhFVlg0cTFFU29ZMHhnN3BuS0hhdVlUTHdZa09GdW1MTHVCL0l1OEQ1U0lhK3daVG9OeEpQR09OZFpFb0xJdjF4TGpJSk5vNEswd09IaGpWamNteEhTc25Pak80NHlQd2o1bHBMT3dKcElOVDhrV2pUNFdOd2VQT1hBRFdlVWVwT3lZUDlCeWh3b043RlpzVTJ2WWNBR28zc0pqRWJUMDZkblZPS0J3QURvY3p0WjUwZWtMRnUyNWlRNUV5Nmx1eWdRUlZVU3hrWlBaQ2cwaGdkMGw3eGMrekZqaVMrSTVpV0RJS3hMN0VJaHdyY1M1QkxHZ3dpR0pjUHhqNGU1aDQycE1qRExNOFdRNVRlOVlWZjJUT1J1S0wxb0JjazhnWVk5a1BXZlBoNTV5blZpaStaSTZUOHZPblhnVVFXSkFJTmlQajFya2NETGRqN3hJOHhWU0pJL05OZFQ2YlIrUVpPL3E2c1JNYzd4K0NpZlJyOWtzU2M1N1dvRE9pc2xhOFNtK1ZpY0xHOVcvV2puMlNTUUlueFM1MmJJcTdpZ0RTVHFDaVM2ZzZWSHY5R1NoK0xiOUtGZ3QzRWJjRTVsZjZwU1JXdUROc256VkZyc0xvZWN0Q25YZU9xNFgzV3RkMzdBeHhrTzJvNlFCR0FoUjA5Q2tCTXBFU1NSeU4wT3NEUUJzSVdDWFdVNXFEV2V3Z3FJeFhRRHA3cTV1YzZvWWFlQ0Y2enBqQkNVWktHU0xpa1RrMURaTmIzZjJraGlmMFBUUUNlUHZnVjVBcDg4RXRNY1VuRXNCanhSYmw0Vlg3OC8xODFuYmJzQW5SOXBPN2wxbnMrNGRZMDl2eWs2eE5KOHVPS2N5VDhYM2ozOEtRM09NZ01oQnF1ZFQ4TnRhZFVDYW9Pd0FpRkFtdHRKQzJ1T0hrTUZ0Y0d6bDJKRnFIdGY3aWFSNkVlMUNCWUZmejRUbWpvV2gxTndoTnhXbktBZHlvekozREp2WEQwTzVqdkEvVWJKN08yelI3ai9NYTh6WFdlbEI4SHh1OVZuSUVaOEszUXA3RlUwSzAzVW9ObXB6bTJWOWV3a2N0U3ZoOHR2enRaSFAxV2NOOWdUeEpNQkJYaWlpZU41SFgwcUFYM1dkSm1NK0NnK0xYTExIVU1NOUo0TlpVMEVLRFE1eTNaU1hhS25Vd0hlVkdWY1crTzZHdVd0Z1dhNjhGdWVYSFBkQ3YxYnRsZDlkZTlEVnMyMzdVWEZTRlB1N0MydVkyYTVCWnB5WHpQdCtIRS9QRG9qcTJzZnpPNVY2K3ppdFpvdmpzcGN3RzEwTFlHTFJ5RHNVWGVGS2kzTWJXdXYxam5WMW1UeW1Ob2tOWGo1a3llZ3FORktwS2lBSDJid01BQitqUUx4cWxSRUJ4cUJVNHJRdVpPN053M0lzQlRleUlDalNiMnhFcHpDS1hPdUg5ZG9UVU5zaElCWVJnaEpHQVFwcmNiU2d3dG5sV2UxakVpRENTVVc3cGJHLzRsTm42UDlhOWIyQitST2pFNjE2MDJDM2RKdUVtUkJNQW1hZkc5NmN1QnpJcEJuOGJjczVPSGZKdWxuRkhNRHFJbUNyOEZQRTAxOUVKb2xNUU5XZWJqK01aZ2Rhb29KZHpxbWFZVUF4ajhFVnZpNGd0ZTFjL1B2MEJtaEtTWmVpcEVUcVlzMHdnTXV0Y3lhV0d6UWNOb0NvVTBJNHp4Rm9UY20vZG1RWGRDU0lPSkdXenhaU1Y4UGpTanlVbmFDOHFXTG1TSkc0UnJnNUsvdjNnejRrSGNEa2w1ZUh2R01EbmNFUGZvd3hrZ1FxUVQ1bUovUEUyN1FxVzFjUWxWMkZnNUw3aDhWd3FNeVVJZ1pKUzlueGZOZXdDMDZyL29zaytJS3lIV2J1MlFFYzBpeDJyclVXL20yQ2xNOTJ6d3I2N2xXbnN1T0VqSTJSUE5LZ0xySzlnSW9iRFlxVnkvckt4TW45OEdRVEUvdnY2dFRvODhDdUdnSGYwZGxUVm5YbXdOK3RpanVTMXJvV3o3RExEa1JtM0hPWnh6TTUyVmMybml6cnVIQjRVV3JwMFpPd0RnRXUwaC9za05kTU5Ed0F4MTJEK2lJV0Nhak9NcWlRWU93Sk5KaG1BbkJjTzl3S2taUUJXS1ByKzFiTTVjT1lIRU5qSjIydm5Mc3RQYVZDVTBnN2xQdWQ3dEZwcE81d2FRRmpuSXBmc3pEcVRPdVNUaXZXNVhrZXJJc25qU3ZhR2pJaXR6Rzg5Mkp3WjNjZ082aThjODFJQktSV25jalJRbHVHYlUwMjROY0N1TlVxWGY1Z1dic2trVzI4a0JEOTcxQklmMmJhQVFiQUo1U2ptWEpxdkxnNDhPamc0Z3c4VWJic0RPbmZUZ013OHJ0OEptcmpScGJlWHlDb0JXYmUvN2dCZFBrMjQzTzFuMWJOUmFZd1E4eTVHY01OWXRCQkw4Rk8vOVQ0WTduWEplYlYvTklwNEkrNTJFallEdTBCNmw0Z01QdkthcStMaFN1TVVkeEUzNVBqY3dZdW10RjBtS3FOeUhwalI0dWdsS1BSdHZleDRXV0xHTXZKa3FDNmo0OGR3d2p5V0F4c0d0aUJMTUVXM09PaVdiS3BadVZxVHkyN3RMWUswMlBabHVmOVptSm1EUjNGMmM0RWpRVkt3bTc1TVBidXNEQ21RbTMrSklOOE9acU4yMzh5R21YeHF0Mnp2WCt1TWZIV1FDU1hOdlNJTWcycW5sVTJodFpVaGxENkR1QzRRMmNTR2w2ZU9hVDdYajBjRDJYZGdIdDUvN1BHSDRqOEhGRTczbC9KWjltaVdiQ1dtOC8vNUhucmQwM3Vjem1FQmhJNU85L2YyN1dkTFlNTVhHbHZVYk9Ub2gxMXp0UEVzWDd6RExUUXo3WE8wSDcreWdBbTJ4d3pvbU52WlFRNUVnUFhmYm1ENyt5Wk9malIrVVY4a1dJTnNhdmhtUTFxTXZiQ2xiaDU3Q1JuZFRieXR0L3QrSWxVTTJjeHNQUEJydzgzcmJZVUl2ZXUwc2h5UURiRzM3Z0VPZ3YvTlVaQjdTcmRjTk9pSXovdlR4NHpQL2k4K09xaUtWMDFrSzM5TVN6eGl6Lzc0aTRCeXZBd2xCNExRTTk2SHhDYTJ0SjJaN1A5eTc0MlUzSUtrYzNKeUhEb2xuekVTbzlwU0VxZk9BYmdNWVBFcStzVkQ4Z29BcEJSNWlaMFRoLzByUStRbzFLaEk5WHpXUW1oRzZZbllKd0J0NGd0dlpYMzVFL0Fic1RKSFdBc3NtQU54NGQ1WGxtOHhOMU94eCtzTE9xOHN4bEJnb1BndnhVekRLQjUraktKVjRucjhMQ3hhWDZON0RwSjdoMU1uSVR1K3JMaDVzYXMxWkRWcHBST29DaFE1cXQvSG01c1cxWFhBeXBJa2syVEN5a3dxQm45d1dZWElHWGF1N1c5WlZ3dTJzY0tyMG83SGcxYTA5SjgralZKQndGTm4yT3l1Y0VqOXhNWGpUNldaZXpUU3dDYWZVYlRUZDNlRmdpRm1WcCs1RkFVMDRDNUJxa2pBajJoWWZ1U0cyQzRXc1FDSGRRYk56Y09ObWlHRGUydHdSbWNiY1Z6bFBPejJkdmF2WHNGbUJCRmVCaURobXQ3SzJxaUFLdzhSb0VKa2g1ZitWN05wQXBjblRZeG83Q3JzMDBWUlBJeDhpNlYwZ1M1MmIxbW5lNk1kdHRCenB2R1p0NzJka29NTTZqQnlIZ2tEb0JNSWpqNFo1Wm02YnNmT0pmV09BYkg1aC9vcXo4TTU0U1FWb2VjM29JckJZKzRxUmZBSnRaV0l1RktUcXVPY0FaYnkzT21LU1RhS1hPVnZxOS95ZHNRUDBuWEJ3cHVTdUFGdXBicVgvV0xIVUIwcWpBeUxaKzNwbmJGSlRTdnRBTXlwT0o2bkVFbHllWUR3bHhnK0NqVTdmRFZQNlV1b1BqY3pQNkQxb09rVlFWVjVaK25rZXBQU3ByNkRuMi9YdENFMW1zTmJKU3czWHlOc2RxYXBZZlo0dnk5VktnY0I2eEJYWlRxUUFpdnNKNTR3eFFKTTdBRjM3VklQb1VHOWVVMnJZUUt1aTBBOXpNYUhTaHZ0UTNtMVRaVW1mRFBSb2kzRTk4OFA5RG1xandWOTlZSWcxTkFNcEhWSlNMVGUvV3AzZHg2YmFqemhKNzNvZ3Y1SWJMUkRCOUJoV1JoWWNSWkd2M0pZSkRaeVZTUU5sdFc0M0l4aEExMWVkWnlHeDdtbTNmRmRZeGxSMjhsa2dkUmZNKzVrcnYrSmtXVFVaNWJQelQrZk16VXByNXBUSzVQd2FwUlhUZVkvUS84U1BWL1pWcnI0c3JWQXJlVElCYlpkT3J0S05peUV2dkIrbkR0a09mR202enArRXhkZnFvYzVQSTNrODJQOGk5VlhocW02VjBYSE1EUlhWRDFBaC9NYitKL1ErcXIyc2picUZ2VHE5dWJwaDNMdDdxZ3B4dzh3S1BSaTYzNGYxb2JVY0xLdG1vaktOODdCZjUwSmtURlRhSEpKMkVIOEtEUDRRbFlIV2Mzby9ZVVBVMnRsYkxQanluZnFvMnRYTXhkYWsxZWxIc2xza2ptRWtjUXBSS2JSbHBkc25xOW5UdjcvTWh0dExlOVZOT28vM2IzdTdYaHZGWW9zVzdmNXpxL1BPTXY4bFRlTEdMMVJocm9Kb0NZdXc4RFlYWjlhOGhXd2xINE9HVzZXSEIxKzBQVktyZ29aL3pBTWpMMGtGTDJZNW40aXpoU3I1SXltbXQ4SG9xYzdyWjVUYm9iMjVrMDJjN2I1MmVrYjRQdUVHdjZ4TEs1YnBRQ3FMa2xlTFkranFBUnM1azRMWk4rTFNCWHNzSjF1c1BwNlJJRWhJT1JVYjlNZHdBOXhYMnhwb095Z1Q4NUVwU2prSUJsRlRsL3MyUCtjWFBvMzNpaGplcnhqRGZIUjRKeTlmdTlXUVozeWN5YTFzcERLdnBaOXdSTHZlWXcxdEZUekZNeXpLWU9vZ2RnL3Y3RHduMnA4NGFJK0NiOGc5OWhDcWVUdm8zazVQdkRJOHIzYVRJaVZYcDVmMkdVWlMyK05CWTlQVTZueFRVOWVvdE1nRWh4bFo1UGpBNjNRbW94aWtSemY0MURTVkZrOWZTbW1laERsSFZXYlRiMkxHUDVnUkJUVDJ2MGFFQVdnU2U5ZWgrU01hWitlSXNERjdOV2RWNmtxS29xYWpCN2w0TGgwbjJ0cUp4MlJoWEprdEdwd1ZlN25ORnE3YVdKRzFUQWdFQW9Dam5yakFiYXM1QmU4bXl1TVJvUGVGVWh2cGpjOHBUOXV4MWx2cU1iMDkxQVVzUjNRZVpORWxCVnpBK2MyWm9lMEVyakpsUXFUUStVRFZvN2FOSWRJSDU0UnREK1NncGpZNHhwY0pGbzU3Sm53K1dEclVVQW9OVDdYOERqcDlKbSt3Q0NIb0RvdTBBSjVzalRuY0d4cHNodGZlRVFoYkw3U1plWlVZVDNaZlVrd1N4SEc1TkFFR1pRSk5TSXU3WDllZEZwOE1veXBQNjNobVMrV0s3aE1qRDJKbksrUXBLb3A5Syt2Tm5XVm9HTkpyWnVUTkJPbGpQajlxajFZODRqMGpBd3VaWVJqc0dscHNreWcrNERGYlFyVjBZSVcwbjloN0VRS3VjWUYxRnFqSTFFS1ZEYUJjN1cyK214b3BkWDZRZ2dkdWFGcDExTjJlazB1TEltdEN6Zk4vb3lLR28vL2pMYjR5WjNMNEdEeHNJa2FrbFpOYXdvN3VQaXpQaVFxWnVucG9uOU45QlE4UVFQdlZ5UVVYS1l2U0YxdE5kZG8wYisyc3ozNmdJSTFIYWtsandsZWVLRVN1QXBkSVp2aDdTaSt2VGxJeW5rOWhKN3M5MUtxTlRGYWFhSjBWS3NOQVIreGtGSkxNUTViVDZPZzRyck5wMTlSdHJjNFo1Wm51V0xiYXl6ZFp3SjNScXBYRzdPRVAwWEpkVFVDd0hNck1yOVRadWo4N1h1M0ZqUEpnZXFUL25taWpFWk0vVm5IUzdXN01pMHJHdlFaa05KbWFpK2s4RXhPN1ZuRnV3eURwTHF0YW1JZHRpWHhsbWRJaTAwa25SbmFVdEQ5amJWS2RWOXFWT3VLTzB2SXRzb2RnUjV3RTd0ejhsRVJnWlhBV3c0b3Y5THdzWWVlOGg5UW13OGFnTldML0srOWRRYVhJQ0x2cWVRbFVKVEtLWEZPRTI2ZTM1ZDJvQUtjRGh5bno0WkdiOHY0MkN6Wi91RUV4S2pQdHlPc0RmaXRERy9STEtjYU4wMktveUc0NGhnL0s2aFB0aEltRG1wWkFBWnpBN1hORTVoREtwRml1VEszcHoxY0Q1MjJibmFDMEtuNk55dE56TytabnBRK3RlV0NZV3dOSHEyZEppcWxXcVJyWUpTMVhYcklxdDVGcWxFNngrQnQrelZBVTNFVnozeDBDS0E2WGdONjBvei9OVHVBNlFndUVVM1k1NXBPdW5lNmlpSU5zajFHejRRelpuTVgzaTg2MzhzQ3ZscHlBSjArNUhYUG4zRmEyZ3FpbTd6MXA5YStaVzQrMElmZ2VtKzk0bFA1akxDN040MGNkTEhCT05XV0tmYTZiWjNIZWtkaElRdUhlSFJUNkpRSWVtTWEwNlJvTktiNU5GYVRHK1FHbHVsd0kwYnBJZEVCS201MWNGQnZBcFZGa0wrdC9uenVxZ1VsbytSWWtHb1NIVFVzcjc4TitBcUp5cXBtTlh4c1ZlM3NlMno2bnhqVWNsVUdMejdOMDhVUmhLT1hpUGlOWnZkQ0lzTjZJd04zdDZISlJKK1pkZGNaY3Bmdy9aNytlMzloNEhyazhtMlRQNHNVL21GYWFkSnBVbWY2d0NqZkxuc1N2Mm01YTVTYXlzMHJIUTJ1WHJSMWYxcmhNa01pSzFldGpXUXI3SVVPRmJpMHJscTA0eW81UFdhNmFxVGF6ano4YWtnenZtcHJhQ1JObEZON1ZWL0ljWUhROGhweWJRd1o3VEFHMkl4bCszZkRObXpEWWJnWG9JejhnLzdkakx1WndmUnFpTE8wb0JlUzExUmF0SzBnWnFPWWozcFNHT0RVbWdyU2kxYUo2TFdrZmNZV2VnRDFkVWloWUcxVS85TTFFdTJhb1h0MCtSRFlsRHgxY09MdUQ4cHhRYnQ2N2QyaXIxa1M3YlFnRWw3OHdNY0Vlb3ExOGw3QVZJYldWbm5WY2EzdkVyR2hFTXlsbWEzZm45RFRrNUdteHR2SXJMMHhOd1BHYkxSbFp0THBPS0E5UnZtMWJlV01SSFNFSzVYM2RqeXhhUmd1ajI2bWIwZExMWEpFUFJlZmxSVGNXNm1WUU5HOEpCSDUrU3ZaOStodUZtbTNudDdBRzE5dDd1dFJOMklZNGZScGVTOVRRNU5lU1ZnUzJTdzV1MjRxdG9mZ3R3QlF4aGZJN0FHU0d1MHlhNXBSdnFPSk82VnIwU1l5akEwOEFRbndlb3BEUVRnaUZJcmVHdFpJYnZQY2lVWlRyQlQ2VGcxUVZsVStTenByT1Nrblp6RE1EVmNsU1VvK0JBVll0YXdCY293d3MxQzRNVUxRVVdhcjY1WUtVSmFPK3BLcFlTc3BRaThnRUsxV1plV3pjZ0ozS2JpRHVtL1Jqc1hFeENBbmMvb0IzVnoyK2RHeVFTTFRtaFNpbXphdk5aOHcrVS9OcEp2blV6ME1qeEdyaXlGQ29KWEVTbXByNkJuNmNYVGkzY3p2UDJnWTlZN2FVN0hTTU1HODJUNkNKK3AyaG50d2IyZ3U2TzZGUVZFN3V4RU9JUWxHNmtyY2RKaU1heC9yR2pQa0JZWUhVUjFvZ1dJMEVMUWZlUk1yYkk3WkgzdHE5Y2RwN0krTnhYekYzOGQ4eXVhK2xIeEltT0Z5S1NkWEdIRGR1QnVKS1o5STMzSmt6RlRVUyt6clJrdlVJNENjWUV4MlBJTnBxSG1iY0lUR3p5NUx5ZHJjTmg3dmYwQTZGcW53N1REcmlPbkF3STB6bDA4SG9pTG8xaUlQclF0VyszdWJ4SFhnQU14YXB2Tk5Na1ZjYVUxZkdZbHBKclpqeXpNUkFLRTU2blh6OFVKRmJORVdhVmp6d2IwQTNvZ1c2ekZmOWxERksvNnRNblFBZGorSHJScnA5WTRBMkg0cHg0OGdISHdHYWxoWlB5d1BSLzIzbGpIRzIvaGNOOG1pNU4reGpJYTBXaXNWOXdMbDkyL3VuaXdjejZ3UUxIU25Qb3A1L1BmTDloMGRDbDNvLzRoT3pKMFMvY1NmZ093Vy9lUlBtODd5RGdFeTNvazJDU1pvVnZRYmVGT2NKOUV6OEJva1lJM3NVUTV3ZnRnT1RZK3lMZHdFUXJia1hnaEs2Wi92ME5MeHoyTjBvSlRkZ0VUMisyeEJkOEVSZ2d0MGJUbWs0SW5qVU9hejE4VUFLZndsWkUwdGVkNDAxN0xFTXJQQXNIZGFrL0d2czhJaUNGYS9hSTlmc1ZwQy94cTlLREdtMzJhVGxIelV5dWxVMTBZYStGaWx1T1MvVzNTR1dIaThKVHFPa3NQaGluR1Z5alBpeDdaZk1QWnVyYy83RlF3M0FxRmI0SGk0Y2tuckZyUVVKeUUxUExoK0VGU1dhMEoyNmRIRFZKa1RZd0N0QmRGeWQyQVdVVjhpcTNXUE1BVVQwbjhaSExSem1qc0RiR0g0RXdpVWdCTU91cjdIUDFSd1diaXNzVkhkZmhiUWFsSExzeVJPV2QzMzVLdTN0aWVNYmVQOUpQalhCWFNqcGtXZkxHWWJnOFo4NjN6UXZ6MHQ0Mk9hRjVoOGZzSjNYYTVlWC94MXA0VnlBYUZ1TDBDTHkxNjdOandDaXJjMnRxMFZreVdYbldLZ2dIOFNCMklLQ1dDZ095aStBZXE3ejgwRjZVMjNWR2liSHFxdTJ2TTJxN1VCbk43WnJ6MWFDVnErN3JEak1OU1ZMRUlONG1qV05oRHBFb3BPUEN0OE9JQkNEc25wV1kyRHhaZ0tWK0EwUGc4Z0YyUEliZ1NhZWxRYzJkZUlDQnFVdy9CNUJZNzNqQWZnVmZOYWhJckM1STV3QUNPK0lSdUoxN0lkSTMweTc5M3pBZ2NESldkd3grRHVyanpjUEg4TXQ5SXY2RjNDNzRYbWUwOFhhbzVQWUJ1VDBFZXNwR3UrSUxlczd2QnZIR3FIMGs0ODFaWGlJa3R4RnBUcmlBckdQQ0lpNlV2ZTMzaWFDRWJrajFFdWxqWklFTEFGSjZVb0NURUJ5VlJGTGdZZ3FHOC9jRWhENUVmSnFDNGlwWDV4QlE0c0Z6YUkxUXM3UFhCcWZNbXFhd0ZRQUM0Vi83OXFmNEFOSmZ5N3ZVd0VmaVpOaFVRRDJNZ2xxV0dTRnV0eDJnME9pdWp5L3FPQVlGcmxnYm1DZk4rb2lwQ1hRcGsySUVrVHBwczRTZ2c3SFVDbFVzbWxUeVNMZkZCOUJlcjRnTFlYdm13aVZsRURCSnVERktrTEg3RWtnSzl2YTJwN1VTSFh4ckNYUnhxU1RrMVVtTjVMaXlsaURnU3hJazQyWmtyUUIvTExhQUxXVUZ4bVdMUW1LYzkxSytHNytuWkFlK01YZ2M4TVhzY0M0d2c5WDg3MnJvZHljVkQyYnptV2xyR0lXUmg2a1lNbW51K09WekgyWFo2blZkSCsycldvU0NzcFdSZjI3aE11RjNJTDk5MjRoTUJ1YXRGWGIrME1GMUlwUERFNEVSdXhibm4rdzFhT2t4RHQyVUYvbWl4VkhGSm51QWtzTHdoTHpGNld3TjhCK2dFOFA4VnFQa2VydTZ3U1lEb3hBbDgxcUhjRHd6MEFkY0RmdlBxOGJ2b0JVNFR4RGtMMlFYbDAyc3Vwb1VURytDZUYvWWl2d0hiMzQ2RDgzdUFxVXRqTzYxNnczakIyR0tTckNoTm1Ia2Fsb2xCcFY0YzQzNHZ5dEVxMFRuWFJRZ3dXbEhMZTNnNHNUbTB1ZEtINVJHeXQySld6Q1Vjb3RDdHYwK0JtVEdYeG5ia1d4K2w1NTJuUzZRei8yOHpWaWxiNWpPdEViMHJXZmdadnVQKzUvd0pMdHlyWUUvM1B4d01xZXk4Ynp1NFp0ZHlRT2pEeGI3WFVZLzJjR1AvMUlycEZpRWVKNGZRenRIK2owMGY1UjlxTmQreEFLT1IwcEVEN0pwL3B2QkxXKzNwVSthZ1UwVEZGUERvUFlpR3hYYjkvbEZrTG83dExWRWlkdnQzQ0gvV0I0VWszK3UwQVViVWpwRFJVR2dnRktPS3NMV0ZYN2lKQVBIS1BETGN1ZzRidkpOZ05BSTdZQlBuODRwWW1ZMjIyckJ0UWttM2tSektpbTg2RzBtaFhwRVBjQkRweVcvS1BveDJiVGRFUk5EWlRlUVVCWkEwcUQwbXRxMGtOZHBjNHVFZkdHS3RQMWswcHBCd2xqL0RieVkwcnJMbmovbDgzbFdVYjBlZWNMK0NpNGc5bzdIYlo5M3VWdmw2ZkI5ZHAvWE80R2h4NS95b2k2NDNRSEZ3MWJVVHVtUFhjQS82eDltS2k3VjBKaTdyN1hPYW5aV05JSGt3NEVJL3EyODlhMFoxY1d4MHpOdS96amZEZUUvSVZuU0xrQjd3RDRUNWlWSFhaMGtxREI1dW1FQmhWV1E1emRreDRXV1NNSkRBNlVrV2drSWNtZTdBVGJKVnY5VHJhM29wRm5TZlpqd3JsOWZKWk1zNEtqV1l6cVRlZ1l6WXBHRWtSSGRsbXlEZDB4OHN2WXhmVEJ0a1ZHOHNudms1TkNscENCQzhzREFsR3RKV1FCYjZxWXpaSkk2Q2xGK2hDTHB0RHZyck1XUEZLb002Wi96NmFZOG8zRy9aOXFEQWVudi9MQ0kxcXYrZXExQ1VtWTlONEhwbzk3MDRBd3MrTWpQRFdVYVVlMnNZYndySXpldStiZnFjbGdQd1oyaWNYbUFOL25VOENRUHpOa3lNNHdnMDNIemhnY08zNWtIV0I2N05uQjNOWWIzdWtyaDJvRUZ3eXBnY05CTlQ0QjhtdnhsMmkxTHJYVWl5eHFxN2xNa1M3OElKUktoRDlRcFdDQUxDUVhwSFl3RzV4K00vZlBxdGoxNEdHUGxjQ3FuMFlycFlkRzYzOW5lOTUwMTFiUVNBZW5NRVFmeTI3RnQwbTNwUSt6S3orL3piSXRGcTBMYk8yY09rQjRpcWhvcnd6N2wyTkFocW5lTDdLZlh0NGlCUjc3RGpOTWIvS1NoU1BjaVVOL1RQbmM3ZjhiQWlHZkszK3dxQTJ2RldkV1BJT0xnUWRhbmhIZHQ0WlhMM3djWWVYYkhhN3h3Vm5hNERGMTJFNXZONEtXcXNQWGhMekU5ZHY2KzJGQ29vQWtDTGZJU1c3Ylh5YVhveE13Mm1HUjkzRUh2Qzg2R05MMUsyNmFKU0JIemZxWm40R3dtSTd0cHZSVCt5bmQzQnVqeVArL0lNOGhSNzk4R1FYMnZ3Y0E0Wmgza29oZ3pHU0lTcnBKb2c2WmpBRmlueHZta0NhOExNVlFGbE5Hb280eHhzSy9RajZHVmt4MGEvUm96cTBSZjBrNVZ5d04reW9tc3gvN2lxWHUwcVpBeVVRSndzcXE4c3FTNXdOODJlNjZqNWpmTVI5NVJvdmZMWXdqUU1kNFhyeWhDR3hsdE5KOTZqQkdMeU9tTHJrdXpVbWREN1VGc2JWNXlrUHNkMXJtSllQOWRNL1NUSGJhejBOY0kwdUwvQndaVTJieFE5OHR5TXlMMTBGSXpmMHM4SmZRV2hyZ0xLRnZxeEMrK2JGeExSU3U2U016VlBaUnMzeFo1cHdzbkNVeEpmcktxdi9uQUNsSVQ0ZWttQm12R1l5ZlMzWk1USmFMcHFQQXJVYkd6Z1JtakNBVTV3bmlEdUlKQzhXYVorWHpkckliemgzT1BGaFVyMUI4Y2dmdWxJUUVvY2l1THl5SXZ0a0Z2S2dIUlNoS1NLQzB2Z0QrcHg3K1kwdlk0ZmZhOTlWbW05MklqUE04MFM3VUJac2pkV1NVWDdHTmpadWlobGxwRFBLWnA5TDFVRHhSV3YyN09pZ0ljWFNjcHFYUkhYWGNlT2tBa2QxWUJ2TzQ2SW4xVzBrL1h2cVJ0UFhtT3ZENDl4R1dualZTWHovSTFyS0h0MDEyZTRxZ0hpOWhPZld1d1psdExvQ1R4bWk1N1ZVRlJJaVJwNFZOdUhyZlhJZndubzN4OFduV2MvS3Brdmg0MEhzaEdxVVQ5Z1lwdG80WXVvRng3NEplK0tPMXkxclFVMTVTUWt3WEM3Z0hwcW5TZllyeW9xaGQyRFRDU250L0xrdk40L3F6aUt0UXlzYTJMZXBnWjBkdXQ5NmFIZXZLQWQ2MHg5ZlNvUml0TmtieGdXZG1URHFpb3J1N0FpeENFWXpwR2phNjJFbnF4UFpmc2hqTm5nNWxkRE1XNTZXYmRMRVdzN3BNVEhkYitVcm1jTjlHTVhXUjhTZHRLR1lYVTM4bXZNYnVISzRGRmd6VWt4NkxQVHpUUFdnZGozUlBFRksrMlZHcWVLaVFPZzVBSC9xMkFYK001UVZwZzlSWS9jUVIzQVJPOGZTTlVMQ3lwZ1BKd2dKUlhMSlpRZU9oQXZPQ01jZ1hBL3d1TFR3c0tzUU1qaEc0VzZhRjE0bTVualVjTERETkY4ZmxtK1d2TzVaaU9vSC84TkIrbDJuV3N2d1ovZCttcGpacXdJSnRrNkhLU2lqWTVBNndIVGVCajBCdksrSGsvSkI4b0dFRzZ0MDE3NVE0cFhwQURZVDRpUUhWVmNPb2xJTk1EUlFCeVRNejVSQlJRdkRXSWpJMWV1dC9IekNvREwrN3AyOWlsTmQ1bFpKS0RsUWVVRFJ5YWhlV0lPcHFvU1VVNnVvY0Z1cUVOMSs3UkcyQXJ5Y3NDZDBidW1ROG9lRlA4ejBMVEhNZ0VnSGZoVGx6WVE4SWhPeXFaNnRCSHEyRHBuMnhGWEFwblUxaXZ1djE5amdKN09mdGxkUWx0ZTVSSHFTamVXc25xV0FiSVNFL285WXQycDIwaDZZMTZDaHRuZW5RYndMWkwwbHl6c0s1OHFTL0ZPZkxHRXJBb0pUa2VEdHNRRWRuN3h6RnY4eXpWZ2dWWU5tZFVvTFFCOHlla2hPSXZxTWZ2VHMwa1A4RnpBT1BwZkdmdU02NGZMZm56N2tPeitjNTdJOHVjeTd6M3B6dmhpY3VIKzFXaDJTR2VaU2E2WlJLbldtcGUxaG1DSlJZWEx6OHRYQUFDYmRmdU5DT0lFbzBXMGNPQ01HeUFGb1RvYlhHdW9Ga1hlY3VNaGN5UTVhVEpaNzBhWmxzbXU0cGFIdThFakpGNW5YdTFpVHJocHJXSmdMTitQdzVXMlFsdzAzZ1NUaXRCU1kvSS96UzlRY2tJUVlJMS9SNHp4L2p1QmtSdkkvSCtGWkd6SFl0am9TZndNbXNST3lCUVkwR1BGK0wycGQ2TklPd3hqMEpNK2txQ3ZldVI3UXBRUVMvTVNlL3dUOENXTy9iMHhpdzNQbWFnYzNZaDYvNUJTRzdGTnprSExqY09TTlg3QmpkRUJ1Tm04R1pHMjdpNGlCTlp1OENiR1oxcWNtWjRnRG5wcUNjREJmZklDbHU1bTVySk1zci9ITk9WTE1nK1hWY3lDOU5tSURsTHZWRkx0Z2JPSFBjQ0paeTUvTEhMTkxTWXc2WU82Tm50Z1VoL1pQZ0pHV3hMZ2taQnkzTlE4ZmlwalU2ZmhQbkVDa1dpc1dSeVBSWWRiV2NxVHRqcG9KaEVnaE9xS294dWNtN3hCc3hJZUJtOEoveE16aUM2VER2MHRnMHE3RlJTcU9pNWhoQmpMbXlsU29CNWw1b3lHMkVmQlBIWk1URXdaL2liSklqYnIrSEhEU1pnazNOT0tlZmpmVG0rTjZCWHJ5NU5NSzdhWUtoQWQ3MDNGYnpsVHJpc1hKamxtbmV5dXBxMmx6RnQ5blV4Y3A0OG9HS3pkVy85TklPdGhhM3BybVN6VDJLUFZEZitsWWpLVVgxZHBndXRpSDAvZWZMVFdSejhlT1prNEh4d2FCcU5jMVVJWXJiTzRvaG9yUkNGS3Q0UmxqTm9YR0FEK3d3N0FHZ0Jrb1ZWODM5elFFZEw2bFVsYjBxdktYSjdHVk9TWkw5a2NsSXhHeWxtY1NzZVJKR0pnZEs5M2Uzb2FxdkY3S0FmV3IxRFpNYTREK0ZxTGhNTXo3VlJMTGY1SlJRd2pzMWZwSjlqbDRPVWY2Uy9XZHAxaEliV3I5K3VZaHVQd25xL3oxTTVBR1ZqQU9IanZoOFFnMGFHVjgvUmlOdXBZbEUxS1hVc0tGdEpkTEdXRDFoM1Fza0dtbExpa2hiQ25TTGRMUUwzV0U5U3lPaElQbjdHdFM4WXFsaUhsWHpQa2llMjczWWJLblpCd2o0aWQ5czlMUEtlN01UQTZBZWIwWWFBRFUwQlg1N0hzYnhLNDNLWnNGNml5cU50L000dHdGbk9TUVNVNmxpTVNUSFBrNlBkMDJSdGhhNlZhRmJyWHh1aWpEOU1WYnVXREFYMXZLNHE5TFEwZVNzV0RUWkd0STZ1WWg2YTRkaENGOXhKbXlKYmZSN1Y3bnpRRzgvM08zY0Rjc1I5TTBSelJHQ0ZVQTAwdlhVQTFTOVF4V2txcngvdVBKM2N4NnlNR0w2NlhxSGZPZ3E1ZnZzRXJvZTZyY3dXdlNES2djOXVQcnBPK1VxbEcrenJWOW5OTytIRk93WHJ0TDBEdnBIZUxxZTNvODI2ZzdSdjVMMEt3dHFtVUFBK1poZWhiUUxRdVlyYW85TzhZajZpaVE4d080ekpWZVRUZmREbEQ3aG0rRXZ5MzdnV2U2NGhMcjZlVmZ1K3F3YSswdHpMNFZYT0ZleTJ3Qm5kaElveEZXK3VVTkdBeE8rRTNOcmlSUW1oVlNiUzVTUjY0WnkrZlZEOCtHZm5kaVduVnVOQnBxV21Kam9tQllMcWtXclJ0TTJaTVJ3OHpGNGJnNTUvQUl1Yzl3V0dCdUVZUVA4WTV5MXl6aEovaHVMSHpDNVQrMytoT0pGNjduNXJyL0VxWlRLanNIRzdzemtiUnJOaUFFekhCa2RFOU9pQWVqcXJLeldjbkhaOWV0OTg0Z2ZDVWdDaFpCWFN3Uk1RS2lmQVk4a0dJbTVnbFVoUUFQZzg2bFNNOHNtSjVMWkZBMlphVE96NWpCdEdMS3Z6QWx0MGJSRHZEbE1OOGJiNitEeDhpOW9oWjlJZ2NaWDFBWTNnQ0REdWh6TGVMUy9DSzBnWkI4L2FCaHRJVFZoSDRVaHRQaXhIb0lRSUNLUFdEN2svMTJaQUMzbmZ2WDU3ajlVVGx6dUR3VGxtd3F5dHYxS3h0UktNVjBhY3BheUlEdUtscUpweFFDZnptTGxwRDA1R3N0ZVNhYVRva2swc3pSTUY4WWUwNHJoYWxCN2ZhZXV6QmVyUG0zK2dvN3pGY2FoOFRsckExY0ZyVnFSZzMrcy9ZVG91Qzk5bjBxZlQ3Skp6ZldnVzQzVHpTVDZ1dzNRbnYveXIrVzlmdCtrMmFDYys1NExFcFhmL0lheWlYbitnSzliY3FKRDdTM1RuQktvZlVrTEJ0UDhzYUtmU2VOZTU1OU5QVHZ2TlU2NldteTVuNzRkMFhNQUNCQXRSWVY3bnk1SGk1ZHVBM2xzTGUybmhYbktUN1E4ZGg1dGpLYVZmMUNteVBPZmhKL215VUxLL01JVVRjMVdnU2t5alN3azBTYUZrelFTSUVnbzB3N0REaytNcVoyY0d4MmRSLzdIbUNhY0JoeG4xcUhIdERad2VEaDY5eWJrMmYxdnVKSURZbUdNWExBNDFTSXQ4ZG1yY1JJaEdncTNqZ2hQYmY5WCtlN2RUVXduYlJVUmthcFJkUGZhVFhwS0doWXI5MDFQd3dCam81REE5K1A3KzdmRkRidUMxb3RqdG5rRGVYWWthNlZTTEl5UWVxdFN6VlBEN2owWUpSTENJWkdsbzNtVi9oTHBxVEtKVExMZXNsVXU5Y2xTaFk4Zlg4QzRYakd4MHFyeThnbDJOM3MwTXl0Szd1OTNiZndtcDVVRFdMRDdDZVRDUitSSjVJbUZoUk13dTdLd2dEd0JWR0U5MWRVOVFwV3hBQnpTdVdpY3M1eXZSa1pIeVg5MnpuTEtkTlVkQklXSWpyRUwxQy8wYWdoQWVnYzluVlZORndBejdJSHpNWkVuRno2ZVFPTHJ2M1RBWTJPSURtT2hBK2JNaGJabFByVWFUWjJQd0l5OFJhY3hzelBOOHYrVk1wUzRmYU0wUkhLaDk0bSsxQkwxSEJnRGhpSWtIOEk1bG9acHVkRW9USUYzVkgwcDk4Y2syS2ptZyszdFltdnFmZWNzVTVacGxtN3I5OVd4SkFTWVYxaWZjcFNpVHFINGlsTWF2dE1wWjU5cHlxbkwraHIxbE1iSCtaUVRYM05Ld2M5SlNCOVJVMTc4NUNtRkQvb1VVaXFjUytxb2Q2YXpqMTRvUlo1Qyt6d0dNeEFVTGlUeHVFSk1JeVpNdy9hbDRHT2FoVm5OSWMzWlZVOUJzL3cvdmN3VkRFVmEwUlROSW9mTnd2cm9GUHkrTUYzSDVLM2pwYngwWUx6bjVrYlhPN1RRM1lBYnZjVkJUMTh6RlBJSU5FQkZJQUVrQkZBQVBiZHZrZ0pNRlE4RzFBTlFOVTBKNkhvSXFBR2tIKzNuRXZZRm1RZnRNOThiYkI2OHQ5NTJFS0JIQndlcVhRMENQeDNEL05iMDg4UzZHOVpyL3JwUk1jeHFSNnhPV0k3VXBqS2RmdDdkcmJHNnViYlF3dWxYekc5ZllWZkVQMUQzZjdmM1hROW1nb0M5UnlaK0xzOUVHbTU4WmIvVzVBTW5pMEljNVpvVE16V3NkTUxxNXV1UC85Mys3L3JPTHRvdTRITjRZMTIydElFaWQyNGlycHlTamt4RExxYk1zUVdHSXZkK211ME81MlJJTjhrdHZwZjlrbTJBejNHN3JDUWN0OGk5aDA3U2grcEpFOUFzdmFmSTNTQmd6M25Wb3RKUXRYbUhVMnhTek1FWmQrUHBCRjJBTGdGVktyUEx5YldiQStHdTdEbmJ1aVdOckxNdFQwUUNoVFBMRkRlWEFaZzk5NzJrMDJNdTRmSU1senBVdUV0WTlRaTQxS0hHWHNLcE9pNFo4bkNYTUhyU2kzNUVsNGh6aVZxa3c4d3hDUGc4TmlkRWIwWTk3Q0RPRE03OTNjZDhRelIxTnlXVzZiOHVsaXNHWjRnZHFJZHZYS2Z0OWpuaUZIRU9CRjlzWTc3WkxFVFB5WkNLblVycm5saFBXVDladDhMUzlRMkNPTGNkZ20rdGd5QTYzc0o4d0hiNDFDbVJhWmplSmVBR2RmVFdyVC8vRktDQ3NEM1k0eGpweDh0YnQ0Y3A5SE5mblRkaTVhZFBEOWgrUFREb2wvcDY5OWVPenZUOGp6NVVLT2Y0OGQ5K0ExODlDSnRmMTNEeFRqWmt0bGk3RzRkUHRpWlhlMTJFSGN2ZXBpKzJYSnhlOFFiaGVKR1huOXcyZk5MZDZMNU5RM3pTdTJVd2pYWEJuOUt5K3J5VmNyT3FYNko5T1lxMnd3QS91OUdCdEgzZ3F5Y2FzMlk1OE93MzZVc3NsekFPRnhZa3R6SWVyUU1XTEc2RmIvVTZOcHB4d3JGQUxFOFJBaktmL0prMGRjeHB5WjdTUElTaS9INXhYbkpwaXZTWnpLZjA3a3RtUiswS3V0aWtSc0hDMjRsUTJaRUkxSzR4S0hGR05uVGdSUGZmNjF5ZHMzMy90cGVhWXpuaFpwem0yM3VCLzU0NEpwVHMwODc1SkdZdVV5K2FuVTFlbENsaGZ1SjR0d00xYStKTmtYTFV6OTJDV2JTcnZoeFVBUGxmYjRzaTJDN3g5eDlLTEFzVzJRUkdWMFhHWU1lc0daMlduUXo2cWlEVTBUY2Y5Y2xXcXJac0RZQldJcmJ0Z0JvbzFyTEVRajQyTm1LODRFYnV0WGpiWHdBRStBc21xMWhkenQyTVZZeHU1NjZPZE5RbzlZKzg3dTYxa0t5N3JtNmJHSnpzN2xhSDBVZE41NmRmMXRYV3BxWFUxQVFIR3IrZHJmait2WlZncUFWR29TZWkyMG5UM3FuTC9ZNkhndlY5eG1IUVlYcnowczNUektPWjd3cVcrL01rc0Mxc3h3enlodkRXaytYZVRWWGV0NmRaWXlYZGdkMkh0d2x6dlM0ZVc3QVhPOGZ1b1QwKzBEWHdIaE9PZzBoN3Q0c3dSYVZhVnRyZE5lTXc0akR6NU9EQmNObkF3QzJuQWFkcEQyU3ErbG42eW9Jc1ZtUmttejArUXBzMTRiZ2Q1ZzlGUkZJc3pkOHIxZXpsQkd0eVNYOWsyK0FXWVJMQUxGMHFaOVpGZlVtdVJLckYzT1JBSlNzcU1sRGJ5OHNkWjBEOVBiREdFZWxnN1pPa3FRekNNc044SG45NmJYeVg2bWEyYkE1dFpqQkR6eTB6bTNSYkdxTWFleXJyVlpNT3BFMmNTY00wMW9DZE5yeFo0eU9Vc3Rkdk9YNE1JTmdiTlhydkZrT2xXRGFQTmgya3lqdmF2V0VEVmUrZ3A5SnkydmRDVDlDbS95NU1XYk43QUJpTHM3RGFSRzFTWG1MZWNWZXlYRVFWRUhoUkZtQ2crbEFOenZzQldMRGJ6bVgxaWY4N0VGczVPaFlRbnBENjFEbko0SHBRQjBKaHYveEhPZVhuajVwd24wRDUrNWxOdTgrWVNlK0tHZmRwZEVtbDJnR2lJb1hzS08ybXRWbUN5VHJ0cnNwdVcvNVIrWjgvckxJeVVZbXN4cTFFS2hNclBoNlladmVBUW9iOUhKN0pHRlY4T1dON0p1UlJScmUyNzgzbGFxSDF0YlBVakRNWmF0TnIxa0sxaVdXYTg4MzlGdnZSVmZDU2E0WXBLOE9ZUVVtbHBVa1E5YThYQmVHQlJ0a0N3MVZpSnlzc2xMRWM5M3BUbE1iQXZPVng4VlJFNHJKaTIyK3o4MlRVSjdINEU2ci9oeXo1cXZ1cDZkdmRSYzY3ZHprV0gveDJhNm43Vld0N2Z5bzhSVnR2TUtRSElUMTE4TVViRUp5d2IvSlFoY012WWd4L0NoNjN2dFdETjFYTEExS2dhRittOGozN25ZVXkwaS9GMEZQbmZ6eXJtM0VLbGVwVzBUcDdMYjgxQmY2eGYxNVpQUDdYK01rVzBxdnV6ZnpJL2d6eXBOdUgxbWF6NlhiTWhKM2EwQ3ZMTFlERjhpdWp4YXQyNjdxWXQ1bGQ2K3dpT0lnMXV0dTZOUTRFUDIybzd3OHdnSC93bFJ3L3dvcWJGRDVsdC9PMk5JdGM2RzA2ekwydDNENFE5b3BMbkhQUmFNRlB0Mnh2czFpM3JZL2NGbURRbGNQSkpMWTFtL3lXREJxU2ZZNXd4TzNIQVhjQ0JPbHMrL3JLWGF2RmNOL2pSMzJ3Q0k4ZUJZRytSNCtkaWF0ZG5mdjZabHdtWEhpZGV4QXIrdnBXSUdvUmpTSThCRm9MQ0lzQTFOTXViQnBHNlprQjNjK0tLVE5yNWRLS3p6dm1Pa3JLeElQbW0rMkJ2OExjeHZsd0w4Y0xjUnorK0JGNUFubGM2SEZBdUJ3K0RwOXcwek1kMEp1ZE41K2IrZWxlYUZLNTdxdnNLOCsveDI4YmhZUFExaTVzRDV5a2RvdnRNZWhpTVU0Si9DTkpBc0RPZlo0NzNIeFE3Q0ZTVTZyZlNvT3ovckZhNXBGcGdST0pmTTZUN1loQ3NGQW9aRkNYaG9jR2ljYlNXRXZNYXZ4eURoeDFESER2Y2FRS0NnU28rdkNDTEg1RWlVa2FEWG1jZ1hDY1JURUVwVTlVYXBJc05qbURGZmxRSWlyVitJaEVxUnNzVUVacGNNdURyTVY0RlROaGlXc2lpTVhVbUNjUm9XMURGSzk0VzdVZ0piUy9NZkVxbW5QSWgxL0xpbzBWM0xacWtPQm91d1dOM0ZnZzJDRzRNNHAyajk2M2x4M1BkR1pIeVVFRXhpUWZlQ1o1dENyY1h6aG1iV1ZzYTF5OWMzVlRWNU5PczdRZ0pRYXc0RVhuNEM5WFZwaHpFQXdndVVkd3hibElZaDVSc2xqaWIvRkVDS0tXZURLUFFTUWxMaDJFSG4zM2c1V1ZTYUlPZWZTb24wS0pKcFpXKzFiOU92cGVIR1JXWi90UE93Ny9kK2V6TXZZd0xZclZTRWlIa2lTSUNBVHRwc3RyUVFSS2d4RCswWXBWUWJHSUtpcUxma2xnVWhZRk5RS2VHOTdxdy8yUmphQWlqd1ZwWUsrMHVscTJMdzNVVlYzTENTR1cyNDR0QWJ1azB3bEpZYzl0cTEwN1h4M2JnV0RVTUhrVmhZSmtBQ0JYNUlFSVg2c2pLM2dpcWdxOW05aTBBZDNFUUlML2lrcWlNZFgwTnRNdE9ZeGxLQlFHaStTYlZWWTB4bTFKUGlta21aakJWanZLOCszOXZtSVFFa0x2SmxxWTRRN0czdGZYd1pVT1JFMTdHYzFWVUNYbmtGKy9UZ0xwL05mSndYeGx6dCtSWDc4cUxuMDdkYWFuamJTcWFiVnBXZk9tcHhRVzlzL3p2OGZGcGFSK1c1KzVkcUJ0N0hYekdtRXBXRFhKT21oTGdYWEMwZSt4OGNscGswczJHdFJiWTFabStOWm4vNVRDd2Y1NTRXTnM5MFhYWmF3YmFKMThjQWN2V3drbUxhWG16cVBmWXVOVDBzYjR0bFFIc05sOWtTczlBMVhQaXBwY1NUa2VMMUJuMkVSL0NIUmRsRUd2UjBYWnJieDduQ0tJejFCSDJ3UiswSGsxZGxGM0wyV3RuTVQ3WDhwNTVMZHZJOEtlVHdqNitBM3RFWkdyT2JvRmorSVRZRmNGRmFrZ0tKQlVoU3RNNEtQd1c0WTBPU2Q5N3c3dlBZNHgzWVVneU9Cd1pmcFpPOCtTMG1HWkV4YmVaWW8rc1hmNGtpOVl2NmdHbGNMOU9kM3RlOGxaT3hPN1JPNnNJWjY5anI2OWVhQ2JUZUpTVENqWFM3NEhSLy9NUmFYVXVGMzN4eVArUlZLTGtSVnQyNm9SZWtRL1ZWQVZ4VlRrdndpOC8zWHdkRU5uYTdBMllkVlNJTE9tNW5qdDhRVVZCNFRKYXFQTUVJelN6YTdjQk02aUh1MkdVdW1pNE1TQWN0d2VKUzRLR2IyeHZJeFlqdDJUUkpia2h2TFVpRW05d3dTWWVyVzRkT3FNa2hrV1RsWGZBS0ZuenF3UEJXN21LOWJZSmUrNWYreHlpdnNsTURVZXNUZ1VCUGZwbzRJMmpPaC9LYzV6YjljNHBXUjNGSHMwU1R5U1N6WU5GWHMxSkN4ZTFCRFZMbDBJcWZzZjIxWkJyeW00ZXZiZmxKN3gvL0t2QWVGZWg2Z3RvbjJwcmw2MFVmai8vNUdqUkFsQlA1TC9vUHh4QlNycVMwY200bjB5bmdnWDFYaGVIL0d2NWtLUUlBNkZ4YnJrWlQzNFlncUpkbGVXcW9HcjcwSTQ1NDMzcm9ha0haL1g1YnE4TmwxbHNBT3VGcklHN3E0THo1Ni8yb01YOUhaZVQ3WVV5bW1wanplaVFTS3VJTWxQV3hXYWhFN0M1aWY1aDA4Z0NFZUFhYno5WUltMWtCMFJaVmU5emc1MG1XejZ1ekdQM2c4aW9makE3TTJPc2RQQksrUUpZSFIrWFdCVW44YUZ1ZGhmMEp0WjQrc0pETmlFZ0wrbjZpK0prSWwwa29pVUZmNGpML1d2R0w3N1FncWgxaVNhT1dPUitOU1V2ek52cHkvTGI0MmFnMzFyYkdhbFpvZ202L3VmZWxjdlA3WVk0K3VFV0xtZmFpZzQ0WHNpYjlIY3VjaWdOeE82SXdsSFNxNnNmVG4ydXpIejg0OFc2Vzg5SXhITzc1Ylp1QVJzaWtwUE1tdWdaVUV5V3QzS3Y0QlhJdnJialRzL0x0NzNuZlpiNGhtYnM0bS8yZnVYOExyTmVPSlpLZ0R6NnVQT2hpbmRlN2YzdkM5dVg4TGQxL203cEtnRVNTbkozdWRua1VJWFI5ZHJhcmJmcFF6em9sUFE2Y09GaTRoQ3dYVFlVdXBTUjRuRlFPZVFsNGFuc2RCb0dQK2ZhdlJ5MWY1MmlKZkdpZ0xSS0t4TzdoeE5wNmFsT09NQVFCUlhXMVR6R0Q2MzVvbDBxTS9jMlV5ZmNjaTlBQlZuR2huVjhjeXZQR3NkbGRnQ1F0amJUS3ZHTnUvTy9MQmRhcU5yN2RReEtBN0ZyMEJmeXBVcTIvZzh0L2pVdTBvRUpFbkkvcGJIcENPYzAyVVhYMWE2aU13U2Z0MjRnWDRvR0hFRU1SaXpVQU9qYk5UdW9VRmVJdHMwQWswQWFVNklMR085VWRzR2R6ZURucEU4NEVBeXVFVjRpR3ZqVkZnMU10Y0JScWo0ZGxTVzBFSUlMa0VMOWlKbnMvczZpR0dma2NqcmhNQWRrT3hKRHJNTXMvcG8rYkV6a0dTMEpFajdZU292N3A1bXpUTlZTK0tkemFRL2VjVjZRVXBEaVFaU2dWV3AxUEJlUWlKVXJJVmltZG9PbVFMM2xFbE5nb3FYUUJGUWVIRkdFaFFITGN0QWhLUGRKT3FUdUZ2MFd6alNOL3EzdGJnWitzeGNuRG42SEJoMG9YNHl6ejI1c2hacWhjNXNoNnVBV0ZMeWlKVmRGbmkvMElZNjI4RkJsUFIwK0tkVGxVNHFwNnRPOSs0cUdDbGNjU0xhQVNTY3MzdTFicVBRb1o3VmlCeEViayt6SHFIRHJrbmhtU3RNRm1XV1pKSTRUUFlZTlpHWnRJZklaL29Nc2NncEFzUi8rWWg4WWo0cEtpWWhCSjU5NS9jT2x0V3RKL1ZsUWZOeUhjRnNQYkxhaEdiYkVIN0M5a1FnK2lTRHlJczhhM3MyL0FjSWl0NjFsaTA5NGZPanBNclVVUW15Ti9Ca1k5KzM0WDhDVXdFdTVJZW1qcmI3WHc3emk3ZWV0VStNS2Ewa01jMjN5TzFXUjhMcFlMMm5WN3J6YXZpM0pBUUhVVnRWKzQ3ekx1a2Fad3VTd1NlejRqaVA0NDlhMzJuU2xWN08ybUYzWHlOVnIya1FzVHRsZTJPR3lxNkgvVTh2YjVxRWorYVFHLzhzdFJ2eENIZnFBSVdLazNZSWFLZTdOU0p0QzZ3K2pvRVpTZC81TWRibVVTWnhKZnN0OW9XbjNFK0F5aUU1OXFEdFhjU0ZGRWJ5KzhDZ3RIZ1JDMSsrSjlyeDVBY3IyY2tkSjJrM1dpc2I2L0NpMzdRVllzdW84cWlPQ29sbjlPTFFFdk8zdjRLY2NiWXJzNUpKVEpZZVFiNzlDejVMbExPT0lQbTNuV0lTUU80TmlrVlJFVmxBbVovN1d2ZDk5VVVrOWVTZkIzUjduQW9RdFYxcEpCd1FlWlQrZk9JdTh1UFp3NC9hN1J1T0lEWm1lU0VTNFJvVjFJU1k2b2w3OUk1VGNCNUVEWG1TUGIyUVhrRC84SVk5VVo1UThsS3dCTFhsM3FTZmk1bkZQMXRlaGZoVm52SE11bHJDTExscUNRUndHbStadjlsRk04OFlUMCswSitILzhLZ0hDQjVvaThRSlJyOVBRU2wzb1RGRjlCOCtKbXRQU29XWmFKMHBwcFFqTzhNdUZXKzBGOGRVZlZHK1gyRGdjZm1kSlpxYk15OU1pZlQ1eCtKM2pxYjNITFBaRzhUMlN3L2F5MG9iblVhMlNIZjFaaEZpL2xPSnZxYmtvWTZFOTFJVnN6L3Q3RVh5c1NQRE1SRjk2Rjl4OGRsU29qUk42dFBKMkttUmNoUjJEOUZGY0JyWXlXS0pwZStSVEVLMFdVeE5TWGxDbENPcjBQUUg3eGZwMGNSL0dMK3lSR2dTV284cVJ1ZWo4Uzcya2dkS0N3V3hqcFhJWUplYVJTWkdINWhWS3NsazUyWlpvYTFxUUdWenI1ZnY5K01OOEJ2N0p5Ym1BbGpXdXFlVS9xQ1NrNUhndll3MEhoUHpwUG9mSjlOMkNsS3FTWllDUWZrdkxLU1UwbTdxOUUrMVExWFlQeEQwVHhobG9GQkpiMFdNdTNOaVJVRUp6Sk94SkUwNWlCOURWTFB4ZnFoQXMwZEh2bHYxY200V29zUXhKemt1WVREY1N1TWFaVGN4aU5oUm9rZ0FuZDYvUUh4SVkrb1g4UENQZksrZGZ2NDE1ajZUaEh4RndrVlkrVDBSWVJVZnY5WkNqSWkwRVI0YWxObG8yT05WOFluVGpnTU90K01UcEV1Y1FEQTk5OFFhWFFSVEcxOUdTMmUxTEwveEF1dW00aHVvUGFTWTlNM2N6ZFpQdVdsUlZFOXJ2SlNvRHRJRzVRV3BjTlpTaHUxbmg4KzJqczUyeGs4TmE2QXVmb1dWVTJHemx6dm9TbmphdXcreERGSGJhTXZSY3ppRGRzNkhUR2NTRGpsL0dsN2thbkhOalprTWJ4MlZHaWIwajVQTnVuWk5CcFdXNnlQOHh3cjIwZmJhMmdKOE1qQUovcFpwanVsSmJsbU1ZRGxFMGZadUt3YmJDb3NMZXpuYVhnb3pKcWF6VTgvRTRZNFVPRDZaMFIvSjcrdDVTVWEwQlJjSlozZS91cHcyV2RwTk42ZWFNcm9CQzQ0WVF3S0FIS01BUUxBZGw2WVk1MjNTVGoyVzczd3Y0VVFSNmZrN1UyZjZ0MzVHbjVtRmJYWHVNaUhISno5NGtSbCs2OGVRUEl4Y0lzT3pCNTZZZ0h1SUdnU0VOeG5wMTZ6Vk52dko2MWpiSm1wWUpsM09yZGlzVEgzckRsNVhCQlIwR04vT1VFM3RkblZVeUI5bmtLQ0EweUo5RjFtWUFLZGY3RVZNM0dLN2s4Q2x0K0J1K2FRbmJFaWRFYkxjVnpPNkVTK3dnZTZEK3Y2eDRVMFpmQmFaZVp2L1FISytaTU9rKzkwNzFBdVNWNExiU0ZtdmJqbmRHaGk0SUlZcU1lMDBJSkZMWWhqQW5xMTBIWmpkNm1jUU5BaXdXYm01V2RpK3h1QzNaUlphTi9KWHgyZzEwS1ROTDVQYlg4b3JMUjNoT1ZQcjc1OEk4ZHowdkg5UzhhbHBrMm1CeHZxSkxkVWgxYjg1d0Zpdmhpb3FvRGFscmloWEk0aVNjTE1LZFg0RlUwdk15eGZrcXhsVEM1VDFVRVNHSmh4U0x6SXlJWGtXVlVsMlhFTDFnOUtBak9LWVNWWlNOejhCSDJkblB3SjhPQ2ZBeDFidERsQjlEVFZReER5TnBQQlY5cG1kbnB2OG00TjhhajJkU2tPUWg4RHNyRS9PSWcveGxFSm41UDNJTjRFaDlIbGY4anZRMVFSSE5RWDJ3ZThLckFKM3c1TW40RFZBT2JnYjVpZVJFUmhyN2pJa3FySnpiM1ZyRENnUDhxb2djTFJZNUs2RnUxZXVFbmVSdTZEd1VWVC9nVlA4b3FWU1VydlAwby95WUtmMWhnY1U5SXpIekJNejMzTjZnL1hPQjdieFhHQkU3NGVucCtIOVJBckJkdnhxU0JhTndqZmRBOWNlU0ZmV3FVaHF5RHJBb3NMSUUwYnp3SHN1a3J2ZjJ0NHhJUU5qbEVIWU9MZjNHY004a0JwcnRWZ1k4dFRDQkhQQkhWbVl0ZWhuQU83SjMzZmVNRS9PYmp3VGNJMVZTVHRPWGM2NDlteEFoNktoYVNnZC84Tk1lTi81OEgxUHFsV2g3UWZraGRVS2hkWk5XOVZBcTU5bkoyYXlFK1laNVVQRzVpZUdMd2d2V2ZxTWVBNGhuYVhBUzBENjQvVlA0QXo0NmZYemxnZVU3VHFLaGRxQ290dE9lYkNWUE9xcFcrVlpOdEtpQWVhdEFzZjBBalVWdEpwQjVnM0xKRkw1VDFjRVZXNkxPVERYVDRUMUhJWXdvZWVlZ29DcEk3VkJrZjJxUEhBTWZ2OEJlUlErOXVIRE1XUWJkSGVyNXdwMFlsT1dVOGJPakl6Zi9sLy8vL1hNT1g1ay9aR2RTcTlMTGYzMmNXN3N2QTlUK0JPWHAwU0NFNmdtNEYvZTJXbXZDU1FRNU5aeW9MMm1VMmhFdm9LTndubWhFWDZGTkZvRlliRHpXTXdyak82YWF4VlJQdXlhRGxNZjFMaUxOQjVaMmVpclJYSnZONTdRMWR2YlJjQjNnK0RzU2xGc3RKWWJHQStrTHY4OWV2UmZ0aFlQQXJYYzJHaTN2RUMvWkRzZ2lFdE5qSkV0VDByY3ZkeGsrZTdFMFZxTUxEVlJFQWZza3YwQ0p4RFYwV2JtL1ZCU1dha1M2bDBTdUh1M3gzdVYwUFpaQ0NXWjkwZWJJYXZBSDJiTVhrZE96WkpwWkpKSm9wMDdnTUhvVE1ORGEzUWFkTjRBTlQxSVh1amNRYlNtcXl2TzA2QUxvWlFuNlVBUUhXdGhjV3ZvN05QaVFPQU51eGU2L2VjZkFuVGdxOUlkMThpbkJtMG45eFhkVUw3OTVSZ3Roc2EwaTBOYWZGdEtXM0pyU2lzd2ZucVlVRThrKzdlaCt2SGxJUCtneTNraUY0Z1pnWU8wY0dPMDVWNDJPUjQ3MFltSUlrV1M0SVlKQzNJOGZWT01aU05EVGNOYmhFTXUzc3Z2UmZsRjNsTzNzUWhuUW1xVHhoakxUV3hTdk1WVFpuaDBPS0p6d21LeFlPK050bXcwVVVNNDVtdXVxSTByZ3hZdkJqS2lISk5CNGR3cENCTGQyZDcvdnRwZDdId3dHYWhCUTQ1VjNNL0oxK0l4dFNGYkRXbUFURmkzc25sVGNFb0RtR2owSy9KSXZlK1I0bGM4MGRBQXBYVDZaejBVN3dNNW5pQnd5dXV6bWRvSjVJMTdIWXZmaWw0WWRkNnhaM25oelVoUlhhOVg4bjFlQnhDaUdxNFE2a1I5UzdBTGE4Qzl0WjRycDVYTDRURGlPdlY2czJidnU2WVc0VXNxL21xUXRhZDZia0pHRjJWRWd5aFFuSUdNZGxYZWxscXczWExkYlNpU25xQUNEZmhmQzRweWd2M2psMkVVV1U3WjVTcjdCalZvYllTYjRxd2VCY281R29uMkVkbCt1dVJlbEVWaVMvbzgwMzNzVnhURmFBaXhMTEhjY2QxT3F3aVhMQmtIRk5iYkpTVjkraVFSTzNidjhNNzhqK2dCYitOS3h2blA2NnozZENUbnUrOU5QUkRCY2FnRllyai96c2U5Vm1WUDRvaXJJNjVVbGRKUEp5L3BqQ3V6RHN3R3g1S0U4YTEzTFNNYjRnRUxGcHcvMy9jZERtM3VlOXJzOVljUUc1ZUY5bzVqL2JXODVtZUJJdjJ5ckttcmdKRlJEbUtqLzcxRkV2dU55VjFrTnZVMlhWSk9oeDlKZUFzYkRXSXp5d3NZdEZDck1uUmdSNHZYZ2FmUUZ1VDVMMS9BeVJ6VzRuODhWb2RsTkZNeEU3ZW1qNloyT0xJQ3ZsVENYa2VpWXpheVBZVTFURmxsZEZTdnd3b0pweGlOQ0ljdDQ3L3VscVkwMndrRGkwelV6ZHBFUkJhM2hJa3h2Vk51VDR4OFdkZHhuRG5wZWh4NXczdFpuSGU0azhPaUliZ2FRdlJhWnBYdkZiWStjbEF1LzlCUTNmQ2hITWlCZDZMOU41a3MxeC9JL2Q5WDhhcmVpMTBPZXVtdTVzelhBWllCam1uQTJQcGd5dzBiZU9OOFF1UVgxQTJGaFlJY0pyQ1FDYXU5ckVDSGxiV0pWZGFrNjZTakJ2RThNKzR6T3ZoYjhHSFJ4N0VyQkxYYjRRdm5rTzIwMDNpdm9SdTJOOFp3WG5kTlpQdUZjKzBmWHAxK2o2MUZGTGUzRndlTDZBZzY3SXJUSHhhUkcydXdGS2RQV1FIRlZ0V3Z0cmxuMWRnRE5RMElLTy8wOUR5Z3E5aUc4UFF3YVhOdTVYbDR3SHR4b29mbmpVSnZNTThDVW9PNStTYUZjZkdGSnZuYzRGUU1GS3ZWTGhubnRTSGdOY2VPdHlEV0lJNGZEMGVNYmhZSUtCdmhjSVkvSFhKT21ERjFQbVEzdUFoNmFUTW03MnJFanl6bTlSb0ZOMkdaZms3Z0p3QUIzcWZicnkwOEM0bzlQc3VJNWpCZ2NhQkpJRUxDNE9CSFIzU3d2cEJEN2w1YmFEZi82UGtSMU1sMVJHZTJleFVSYm81L2x1L3NaWnVGYTV1RDc1N2Z6ZHNYcm5udXV4ZE1qbWE4OGZON2t4YmtFSkRxYjJZYnh2OWp2RGFuK0ZQU29FSjZWZDkxdnh0VXZXNEUrSGZzTmlkUDdsYmpCZitLZWRXZXR1NjIxWUU4TWV3RWVxLyt2dS9iMHhFdDZwYjdMWlIybUpHYWpnWjg4ME04ZEhKNnFMZm4xeUR3bWNucVpxQjdrUGZQQ1lYSElkUDRXeTlOVVQzRUV6RVcreEh0QzV2Mi8vZUZ1UC8rY21RTUpoOCtBY01SR0dUVUpmMStFRUpyYUlXellaVHkyOE1uTFhUbU0wcDU5UEIybXNYb3h4K1FaL2Evc2ZtcHB4WDNiTzd4NC9aTjFSSW9OUldJZ1VRbENjUjdKVUFzUFJYdWI3ZWkwSmphYUVFQVBaYjZ4SEhDYVlaQ25YTWFkWHBDcGQ1MkdqbWZaQWZOS1ZaOVd6bjFMbDFxb3EwY1E5RndZdGx4YkJBdGRTenFpdkNhdzhCTUJrSlRYNitCaUZKR2FCZ1JtTUp2L09QSDU0K2c5VTFpZldLa0RrVnZZR3NEcERIVVo2S0huUmNnaE9xSXB2c1JicWVIREVPbjNTTHVYKzJyNTNiZjBrUHd6SExBOHBuQXcvSytXL3gzN0tzSTFCbWNBWGNHRlRHZzVOSmJxQVBVRnZwOWNMdXN3UXBTN0RZNXZibm1CUm5TVy9UZkh1Ti9wY2NGakZOdVhJYmVvWVhCQlZ4R2k0T2V3WFZyMkJKVGdNWXVqV1pkU0xGZGN2dkt0bnNrZW9zRVhGY2pUVmVxNkV1K3F3Y2hQZDJOMndJR0JpZUFRT200dTFlVjM1MVEyQ1hqQjY1MzhwdCs4cjdLK0ZHVzBudXZNQ0xiZXJWam9ib3NuQjV0TzZYY3pNKy8yZE9QVmxXTnNydlpFZ0RDYnBvSXVNbDY0bXVCTUp5U3dmRGxwa091TVA3UEg3SGtodm43ejQ5TnIrMi9LdjZQVSt1SEtLTUMxSWJ6RHZGNHdKdG1lUU5lbG5lV2dQNEFmQWVoQndEUnR0bWZLZU1YV3drcWpSYS92Nkt2bHFBMHFMOWU3TGhPMFFnSGtNM0lBUzdkR0I0Rnhub2gvdktCelhPVThQSDBCY3dSeXNTTjRWU3pCbVMraDNSSVlnYm1ITmg5MmFFaDJGZ0ZITWR0NDVOZlBjK1F6Wng0MlM3dStIelBIYTZ3VUpoWG92Y2Z3TEJxcHJ0cUIrcnJoeC9rbUVlKy9VZXFRc240YW14dTZpSzNiYkdSdStnYm9NTG1yZ0txVWlFazhzQkNjN3RoWURUWm95aTVmM0JCaUZSeGFBSk5RV2w2ZlZxd1VNY0FFVXRFMmZxOXkyaXBhUlFWQmVkSDhDeWFsdm9EL2R6TlU3cllKdjN4Rk5DWVI5cXR6ekZnZk5lK2JyOFdPYXpmY1hOM2UrWXd1WWNPa0czVmpZQmZvMjVjNGxMaFd1MWE0U0laTjZ5Nnl4a0xLOXBSaXc2V1JJSTRVOW9sTVM1R0hjUlY0dzZpSkwzZ3RMZnFITlF4T2pqVjVMNWpQNXpTNEVoaUs1OUtkM2dzQ3dWUndxYnpaNmNDckcvODRwUDNKTXdIMytFcVhMNWZ0NXVmVDVWU0VRZDE5R1BmMWlHc1RURFlEOXRxYlYrRHBhQ2ZKV1gxZ1BjWVFWOWpYRE5lWU5Ka1NhQ2Z1N1VaZVR5WEtKTTVLajd2OTVSVHg3YWRGemFCS0FtZjJOZVZycTZmRG96bTJUSklSZ0Z2ZTZUbEZFMnh4VWF4MVM0WkU4dTNVSEpVY2E1cHRBQ3BGMldTVzZuTkM5ZUc1MmtyVDM3bXlDNjc1RFpSWkQwNTBsYitEdFNYQm1uYi90Z2t5d2srcEpZRG5DRGU3c1VrQm5uSW5KVU8zc0p1RnZVN0xtT1RRaGZ3QjE0c2o3TVgyWS9oOFVaNWViUXNralVYNnhGRlVEKzVydVEvK1RMSUhRZXZaUlZoYmgyM3RKTk5RNitZNXRhcytWb05qZkpOTUd1S0RNeDRjbXRYQS9ZQjI0K0t1MnFaZE84QkhKRDJydmFTeHQvMUU2cjNjNWNuWmM4OHowR3JJRmNKSjRHeUtWNVVuakVrN3ZGS2Z3c211ZmJ3dG9XWng5UE9UVEtMNU10Y1N0NGJZRXJJd1NURTEzMmtUeWJ4Ym5ia1JaLzNFSTZURk1PQzlFUjAyUWlHTVhFT1JMQmhRZUFnYzZRN1F2bnBubW5NeWdCWFcwN3lSekVtVEFjRW5GS2JxdGM4bGcyY2hIaXUvNVBmbC9yT3V0THJPTUNWUFJVNjZUWnB1OUNjSG5uZ1hCRmJsRExYSEhXZyswcDRYZlFtWUNBbENOTG9GRGllYnViRWpoc3Y5ZWowTUp4U3dpUkVoQXNlSGpOd2cvaTRnd04rMGpuYXppc0lTQUc5ejNJZ0hITXNERDdjZEpJdnhEZmRzUjNQMXM2aXd6TFpkejJOOWpEd01PMktEeTBRN0hTbEZZNkVDT2ZEM0prT2xvRFVPa3ViSm9nMzdnNjYrTXNiTWVucWlkM3N5WDFCNFJObUR0QWJtdm1SVmYxajJya1RRcWJFRHlVKzY4c1MvUlRxeklaVHZ1Z0Yramw2dVRaMjNPbFZHMjNsNU01aEpOUTBtWWw4MnlKTVk2aUF6cFBNdUNTcXYyMlRpQVR4YlgvUjRuTUNiVzlOcGhFNjBMekw2Qkp2UCs0eVRoQS9SK29MQ3JtelpJZy9RL24rN24wNEpOWHVOblhSamZyd2toUTVabXBCME1RcUFRNzB1SXBueG15Z0lBLzA5Z0U4YzlMR01XYmM1eEU1eEpFaWFVNkZaSkNlMmx6UFJLTkxqUklpMWtkZ0tHM0QvcHZYZ1VpaVV6ek94WFgwRGRIMk5zcC8rTWUycWNlNHVZMCtJV0swYWU1QU5ZME85NEg2elNJVUw3ZmorbTdqNFpla3BvZnlKa21xaE5pU0hyUjlOb3hCY0trbHhKc1I3eWVSMWRGRDF5c2ZWYlpSdHVLdllWbjZqUWwyUGExdTQvMXFEMlFraUhkTGNSV1Y5UFh4aktRdDgrc0dTRG9tU29tc2xTSU9HUHFJQS9SNVB0WUltcmNhQzNZMGlHbE1IM1AxaXRzUWthMlZDV3YyT3RCQWZLQmZNRDBFOFZ5RWozYnpZOERvYis2T3ZwRC9tekFVd0RkMUhQaUtCRHp6OGtkdUNDQTFmbXlidlhLb2h1ei9FN1h0L05xTFEzd3dRL0dKNk1qYkQ5RG84TWorSzBiSDh3RTRta0JtYVAvWUJWeXdpd0Q0bW5rZmVHWVRHVURlM1VuQVJ3eGFVTlQzYmRPVVNMMktBRXZnMk0vQXNQRWpMQWNuNjdyN09SQUkvSnl3d3Z5ODNMUjZmVDRNVXcwQlpVY0JxbHN4OENGVWwzd0VzZ3Mrak9vOUIrbCs1Nk9ZK2M5SG93Yll4MU1IQnBOREFxY3dvbHBJUUFzeGJMK2dpN1ZVc1hVNmJmcUQvU2cwYmxmaVovN0htTG9tdktReTBmV2ZhQmdpYk9aN2YxMmFRaEtyNFdOd2JDakZnb3Y5Z3RlajZQSzNwL1FXclkxSDV2cHdnZ1pvSVlidEZyNnNzclgwMXRjcDlzRC9ZRDhLRGNaT2x5LzdIMlBxSng1ZUhwOVQrRDc1bG1xbnVoam5lWDlkVUUwaGpXV3I1OGdIcW9aU0xEaTkyaTk0UFFxSDZtOVB1eXRMYWZsSCtaSDZxWUd2ZmJ2Y05pYkwvMExCRkdYWjJua21lVmUzeCt2ekE0Z3crWlVNZlZHaFUxVXFiYXp6UVJqRlNacmxSVm5WVGR2MXd6ak55N3J0eDNuZHovdjlBQWpCUDFhSG4vbUx4TE9OaWZTek5sbHh2Q0JLYjJLV3AycTY4VHd4ZXR0eGYzYjBBeFNFVVp5a1dWNlVWZDIwWFQrTTA3eXMyMzZjMS8yODN3K0FFSXlnR0U2UUZNMndIQytJa3F5OHNvZXFHOC9pM1IzYmNUMC9DS000U2JPOEtLdTZhYnQrR0tkNStZT3c3dTcyaCtQcGZMbmU4QVFpaVV5aDB1Z01Kb3ZONGZMNEFxRkk3UG1sMjVMSnRiU3Y3dEpCL3RCTXdSdXp1ZGdPMUJ5TzA3SGx1cE12U21oUkQvMTVwL1h5M0VnSzR5U1R1T0VNR3dGbG5teE1NUWlXTXFFVlFjYWVhYU1Ka0dYTHNDN1JteVZ4STdaNk1NMWZUclFveSsraWM4aWVTcXNPU1YvZDhDbVhwMTAwSmxveVpGeHBDSDhjQ0ZGOXRQck1lSXV0R2JwdW8vdGtCNEozV2w2b1o1amxrK1pzVE5DY0dyMzlSdUY5eHY3aDFueG13ZVgxNUsrdkpMZWdVT2x3cnZBWnBxSjlhTUtOZDlPU2IwTzhVd3ZDS1hoV1dUS3UrNmM0WGpjNzlBT0xKaWJqVkFzYUxseHdQTnVmWXQ0UmU3YTNGRnR0a1EyR3NGeUs2V2JHV25Na0ZFQmpCRkJqbTdBdXJEd25zNmljaUJldVpPTGpybFdwRnUvZ1E1dkxYTHhFVEovMkx1Y2xkWCtXeXJKa2ViNUk0OE5oOCtpYlF3cVRqOGlvT1gxU3c0ZTZwTFNpSEpKSVI3R2RHclRubDkzRnFxd1pTdkZDT2M2ak1SNk41ZFJ6dGlaY0JYSTRFT1d1NXBUZEVUVjhyNHhZUGNZT3FaME0xSXo2UEI4eUZXQlpjck4yMTZoaklLaXI1ODM0NVY2MHdrUHVVb0VpbkhGendPN2VEczJKc0NkcHFqSXBaSjN6QXI5cjFUVlJXYmpFRUNEUjdpTUZTeEgxazhiTEp4VkVIWmd5VWdDWkJqNkpBc3U0RmF3ZWU1czVIVDZaZkVDbWRJcUtlZ3NvT2dsQy8wekpRQUFGbzA3cFBBV291aGFJRm5pd0gyVTdFclZ6Z1l5QlNLcHdFL0xHcTJ0M3JFUURZbEpmWGVva3dHYnRSV01hZ3JkNVMzRk1tdEV2ZlBWMFJ0dFhWaFAwMFFneU5aV21VTGtLUERWd2dYck1HVWE2TnFkaDBxQkN5allzdFFrbXRBQWpBWHZaZ0laSkJpN2I3djJGaEJLdEV4WUo1YTRIdStkMW94UnEvaUsyZWtpMG9QZUVqMU9XbmVoM0pyeUdHVnJsdmRxT3BPcU93R3o2K0NXbjN1L1QvYTNJSjNGQmV2STF6SUJkdWtYOEJMNGRzMXk3clV0U1JibmpEUDFldHd2U04xSFVkYkM1cjhkZFVxeWl3aUZCbXhOdjlScG1mWHQxMGFKREFGWDVvSDVDTmRIYWJ1Z2RpeEIxclV0TFlkbm1LWHdjVHkzeVRPTFpHUUp6ZXRLaXRaZ3BJUGpvTHpNRjFUb24wTlJMeWh1NmROeWlRVXVHNkdNbFdPNjBSYU9XelRYNjd1c0tpdUZFQ0dONW94WHA1clJzWkFHMTRFeXV6c3FpMGxjc0lYYmhaWGZFNkVjTlpJYlFNZTBvWUFRZ2FzTk1CejNiN0JVa0hURlRnMFJIb1FoTWxGWkdHVS9lamRlTWZ3cExmbFQxSEZpRWQ3em5iVmZkYXY5NG1kUDNPMU1JeVFETGZ0S1RsNGNWUkcwcUhWTWw2MkUvQTI3RC9GSXBydjZBaFBNblp5Q3RreWlZMis2cGNQaHNHMDRuWUlaRFI3MjZ3UTJ0UFB5a1kvcWk3MlhXZ0xKZC9RQTdHTlc1Q2xEemY5M0F4NS94RHdGNkxIK09qY2I3ZzBIVGdaa2hETGcxc3UycUx0NVNiTEI5OFN2MG43alM4WGtVMUJJWDYvd1pIaTFVK3R3dnU5VlEzTjMrRHdBQUFBPT0iKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vYXQuYWxpY2RuLmNvbS90L2ZvbnRfMTUyOTQ1NV9rNHM2ZGkxZDEud29mZj90PTE1OTY5NjAyOTIzODQpIGZvcm1hdCgid29mZiIpLHVybCgvL2F0LmFsaWNkbi5jb20vdC9mb250XzE1Mjk0NTVfazRzNmRpMWQxLnR0Zj90PTE1OTY5NjAyOTIzODQpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9hdC5hbGljZG4uY29tL3QvZm9udF8xNTI5NDU1X2s0czZkaTFkMS5zdmc/dD0xNTk2OTYwMjkyMzg0I2ljb25mb250KSBmb3JtYXQoInN2ZyIpfVxuLnUtaWNvbmZvbnRbZGF0YS12LWU0ZDZkMzYyXXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7Zm9udDpub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgdWljb24taWNvbmZvbnQ7Zm9udC1zaXplOmluaGVyaXQ7dGV4dC1yZW5kZXJpbmc6YXV0bzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX0udS1pY29uZm9udFtkYXRhLXYtZTRkNmQzNjJdOjpiZWZvcmV7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0udWljb24tZW5bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNzBhIn0udWljb24temhbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjkyIn0udWljb24tbGV2ZWxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjkzIn0udWljb24td29tYW5bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjljIn0udWljb24tbWFuW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY5NyJ9LnVpY29uLWNvbHVtbi1saW5lW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY4ZSJ9LnVpY29uLWVtcHR5LXBhZ2VbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjI3In0udWljb24tZW1wdHktZGF0YVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MmYifS51aWNvbi1lbXB0eS1jYXJbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjAyIn0udWljb24tZW1wdHktb3JkZXJbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjM5In0udWljb24tZW1wdHktYWRkcmVzc1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NDYifS51aWNvbi1lbXB0eS1tZXNzYWdlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTZhOSJ9LnVpY29uLWVtcHR5LXNlYXJjaFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NjQifS51aWNvbi1lbXB0eS1mYXZvcltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2N2MifS51aWNvbi1lbXB0eS1jb3Vwb25bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjgyIn0udWljb24tZW1wdHktaGlzdG9yeVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2ODQifS51aWNvbi1lbXB0eS1wZXJtaXNzaW9uW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY4NiJ9LnVpY29uLWVtcHR5LW5ld3NbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjg3In0udWljb24tZW1wdHktd2lmaVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2ODgifS51aWNvbi1lbXB0eS1saXN0W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY4YiJ9LnVpY29uLWFycm93LWxlZnQtZG91YmxlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY4YyJ9LnVpY29uLWFycm93LXJpZ2h0LWRvdWJsZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2OGQifS51aWNvbi1yZWQtcGFja2V0W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY5MSJ9LnVpY29uLXJlZC1wYWNrZXQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2OTAifS51aWNvbi1vcmRlcltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2OGYifS51aWNvbi1uYXYtYmFjay1hcnJvd1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2N2YifS51aWNvbi1uYXYtYmFja1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2ODMifS51aWNvbi1jaGVja2JveC1tYXJrW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTZhOCJ9LnVpY29uLWFycm93LXVwLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmIwIn0udWljb24tYXJyb3ctZG93bi1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYwMCJ9LnVpY29uLWJhY2tzcGFjZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2N2IifS51aWNvbi1hbmRyb2lkLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3ZSJ9LnVpY29uLWFuZHJvaWQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2N2QifS51aWNvbi1xdWVzdGlvbltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU3MTUifS51aWNvbi1wYXVzZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU4ZmEifS51aWNvbi1jbG9zZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2ODUifS51aWNvbi12b2x1bWUtdXBbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjMzIn0udWljb24tdm9sdW1lLW9mZltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NDQifS51aWNvbi1pbmZvW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY1MyJ9LnVpY29uLWVycm9yW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTZkMyJ9LnVpY29uLWxvY2stb3BlbmVkLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlOTc0In0udWljb24tbG9jay1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTk3OSJ9LnVpY29uLWxvY2tbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlOTdhIn0udWljb24tcGhvdG8tZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU5OGIifS51aWNvbi1waG90b1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU5OGQifS51aWNvbi1hY2NvdW50LWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjE0In0udWljb24tbWludXMtcGVvcGxlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjE1In0udWljb24tcGx1cy1wZW9wbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MjYifS51aWNvbi1hY2NvdW50W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYyOCJ9LnVpY29uLXRodW1iLWRvd24tZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU3MjYifS51aWNvbi10aHVtYi1kb3duW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTcyNyJ9LnVpY29uLXRodW1iLXVwLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNzJmIn0udWljb24tdGh1bWItdXBbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNzMzIn0udWljb24tcGVyc29uLWRlbGV0ZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2YSJ9LnVpY29uLWN1dFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU5NDgifS51aWNvbi1maW5nZXJwcmludFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU5NTUifS51aWNvbi1ob21lLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlOTY0In0udWljb24taG9tZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU5NjUifS51aWNvbi1ob3VyZ2xhc3MtaGFsZi1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTk2NiJ9LnVpY29uLWhvdXJnbGFzc1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU5NjcifS51aWNvbi1sb2NrLW9wZW5bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlOTczIn0udWljb24taW50ZWdyYWwtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU3MDMifS51aWNvbi1pbnRlZ3JhbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU3MDQifS51aWNvbi1jb3Vwb25bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlOGFlIn0udWljb24tY291cG9uLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlOGM0In0udWljb24ta2VmdS1lcm1haVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NTYifS51aWNvbi1zY2FuW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2MiJ9LnVpY29uLXJtYltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MDgifS51aWNvbi1ybWItY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjU3In0udWljb24tcm1iLWNpcmNsZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NzcifS51aWNvbi1naWZ0W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY1YiJ9LnVpY29uLWdpZnQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NWMifS51aWNvbi1ib29rbWFyay1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYzYiJ9LnVpY29uLXpodWFuZmFbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjBiIn0udWljb24tZXllLW9mZi1vdXRsaW5lW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYyYiJ9LnVpY29uLWV5ZS1vZmZbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjQ4In0udWljb24tcGF1c2UtY2lyY2xlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY0MyJ9LnVpY29uLXBsYXktY2lyY2xlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY0NyJ9LnVpY29uLXBhdXNlLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY1NCJ9LnVpY29uLXBsYXktY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjU1In0udWljb24tZ3JpZFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NzMifS51aWNvbi1wbGF5LXJpZ2h0W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYxMCJ9LnVpY29uLXBsYXktbGVmdFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NmQifS51aWNvbi1jYWxlbmRhcltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NmUifS51aWNvbi1yZXdpbmQtcmlnaHRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjZmIn0udWljb24tcmV3aW5kLWxlZnRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjcxIn0udWljb24tc2tpcC1mb3J3YXJkLXJpZ2h0W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3MiJ9LnVpY29uLXNraXAtYmFjay1sZWZ0W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3NCJ9LnVpY29uLXBsYXktbGVmdC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3NSJ9LnVpY29uLXBsYXktcmlnaHQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NzYifS51aWNvbi1ncmlkLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjc4In0udWljb24tcmV3aW5kLWxlZnQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NzkifS51aWNvbi1yZXdpbmQtcmlnaHQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2N2EifS51aWNvbi1wdXNocGluW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTdlMyJ9LnVpY29uLXN0YXJbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjVmIn0udWljb24tc3Rhci1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2OSJ9LnVpY29uLXNlcnZlci1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTc1MSJ9LnVpY29uLXNlcnZlci1tYW5bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmJjIn0udWljb24tZWRpdC1wZW5bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjEyIn0udWljb24tZWRpdC1wZW4tZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NmIifS51aWNvbi13aWZpW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2NyJ9LnVpY29uLXdpZmktb2ZmW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2OCJ9LnVpY29uLWZpbGUtdGV4dFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NjMifS51aWNvbi1maWxlLXRleHQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NjUifS51aWNvbi1tb3JlLWRvdC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYzMCJ9LnVpY29uLW1pbnVzW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYxOCJ9LnVpY29uLW1pbnVzLWNpcmNsZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MWIifS51aWNvbi1wbHVzW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYyZCJ9LnVpY29uLXBsdXMtY2lyY2xlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYyZSJ9LnVpY29uLW1pbnVzLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY1MiJ9LnVpY29uLXBsdXMtY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjYxIn0udWljb24tZW1haWxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjExIn0udWljb24tZW1haWwtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NDIifS51aWNvbi1waG9uZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MjIifS51aWNvbi1waG9uZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY0ZiJ9LnVpY29uLWNsb2NrW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYwZiJ9LnVpY29uLWNhcltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MGMifS51aWNvbi1jYXItZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MzYifS51aWNvbi13YXJuaW5nW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY5NCJ9LnVpY29uLXdhcm5pbmctZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NGQifS51aWNvbi1zZWFyY2hbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjJhIn0udWljb24tYmFpZHUtY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjgwIn0udWljb24tYmFpZHVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjgxIn0udWljb24tZmFjZWJvb2tbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjg5In0udWljb24tZmFjZWJvb2stY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjhhIn0udWljb24tcXpvbmVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjk1In0udWljb24tcXpvbmUtY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjk2In0udWljb24tbW9tZW50cy1jaXJjZWwtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2OWEifS51aWNvbi1tb21lbnRzW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY5YiJ9LnVpY29uLXFxLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTZhMCJ9LnVpY29uLXFxLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmExIn0udWljb24td2VpYm9bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmE0In0udWljb24td2VpYm8tY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmE1In0udWljb24tdGFvYmFvW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTZhNiJ9LnVpY29uLXRhb2Jhby1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2YTcifS51aWNvbi10d2l0dGVyW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTZhYSJ9LnVpY29uLXR3aXR0ZXItY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmFiIn0udWljb24td2VpeGluLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTZiMSJ9LnVpY29uLXdlaXhpbi1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTZiMiJ9LnVpY29uLXpoaWZ1YmFvLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTZiOCJ9LnVpY29uLXpoaWZ1YmFvW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTZiOSJ9LnVpY29uLXpoaWh1W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTZiYSJ9LnVpY29uLXpoaWh1LWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTcwOSJ9LnVpY29uLWxpc3RbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjUwIn0udWljb24tbGlzdC1kb3RbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjE2In0udWljb24tc2V0dGluZ1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MWYifS51aWNvbi1iZWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYwOSJ9LnVpY29uLWJlbGwtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NDAifS51aWNvbi1hdHRhY2hbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjMyIn0udWljb24tc2hvcHBpbmctY2FydFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MjEifS51aWNvbi1zaG9wcGluZy1jYXJ0LWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjVkIn0udWljb24tdGFnc1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MjkifS51aWNvbi1zaGFyZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MzEifS51aWNvbi1xdWVzdGlvbi1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NjYifS51aWNvbi1xdWVzdGlvbi1jaXJjbGVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjI1In0udWljb24tZXJyb3ItY2lyY2xlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYyNCJ9LnVpY29uLWNoZWNrbWFyay1jaXJjbGVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjNkIn0udWljb24tY2xvc2UtY2lyY2xlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYzZiJ9LnVpY29uLWluZm8tY2lyY2xlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2MCJ9LnVpY29uLW1kLXBlcnNvbi1hZGRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmU0In0udWljb24tbWQtcGVyc29uLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmVhIn0udWljb24tYmFnLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjE3In0udWljb24tYmFnW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYxOSJ9LnVpY29uLWNoYXQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MWUifS51aWNvbi1jaGF0W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYyMCJ9LnVpY29uLW1vcmUtY2lyY2xlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYzZSJ9LnVpY29uLW1vcmUtY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjQ1In0udWljb24tdm9sdW1lW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2YyJ9LnVpY29uLXZvbHVtZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3MCJ9LnVpY29uLXJlbG9hZFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU3ODgifS51aWNvbi1jYW1lcmFbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlN2Q3In0udWljb24taGVhcnRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlN2RmIn0udWljb24taGVhcnQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU4NTEifS51aWNvbi1taW51cy1zcXVhcmUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU4NTUifS51aWNvbi1wbHVzLXNxdWFyZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTg1NiJ9LnVpY29uLXB1c2hwaW4tZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU4NmUifS51aWNvbi1jYW1lcmEtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU4NzAifS51aWNvbi1zZXR0aW5nLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlODcyIn0udWljb24tZ29vZ2xlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTg3YSJ9LnVpY29uLWllW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTg3YiJ9LnVpY29uLWFwcGxlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlODgxIn0udWljb24tY2hyb21lLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTg4NSJ9LnVpY29uLWdpdGh1Yi1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU4ODcifS51aWNvbi1JRS1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU4ODkifS51aWNvbi1nb29nbGUtY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlODhhIn0udWljb24tYXJyb3ctZG93bltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MGQifS51aWNvbi1hcnJvdy1sZWZ0W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYwZSJ9LnVpY29uLW1hcFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MWQifS51aWNvbi1tYW4tYWRkLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjRjIn0udWljb24tdGFncy1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY1MSJ9LnVpY29uLWFycm93LWxlZnR3YXJkW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYwMSJ9LnVpY29uLWFycm93LXJpZ2h0d2FyZFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MDMifS51aWNvbi1hcnJvdy1kb3dud2FyZFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MDQifS51aWNvbi1hcnJvdy1yaWdodFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MDUifS51aWNvbi1hcnJvdy11cFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MDYifS51aWNvbi1hcnJvdy11cHdhcmRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjA3In0udWljb24tYm9va21hcmtbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjBhIn0udWljb24tZXllW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYxMyJ9LnVpY29uLW1hbi1kZWxldGVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjFhIn0udWljb24tbWFuLWFkZFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MWMifS51aWNvbi10cmFzaFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MjMifS51aWNvbi1lcnJvci1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MmMifS51aWNvbi1jYWxlbmRhci1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYzNCJ9LnVpY29uLWNoZWNrbWFyay1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MzUifS51aWNvbi1jbG9zZS1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MzcifS51aWNvbi1jbG9jay1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYzOCJ9LnVpY29uLWNoZWNrbWFya1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2M2EifS51aWNvbi1kb3dubG9hZFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2M2MifS51aWNvbi1leWUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NDEifS51aWNvbi1taWMtb2ZmW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY0OSJ9LnVpY29uLW1pY1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NGEifS51aWNvbi1pbmZvLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY0YiJ9LnVpY29uLW1hcC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY0ZSJ9LnVpY29uLXRyYXNoLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjU4In0udWljb24tdm9sdW1lLW9mZi1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY1OSJ9LnVpY29uLXZvbHVtZS11cC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY1YSJ9LnVpY29uLXNoYXJlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjVlIn0udS1pY29uW2RhdGEtdi1lNGQ2ZDM2Ml17ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LnUtaWNvbi0tbGVmdFtkYXRhLXYtZTRkNmQzNjJde2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO2FsaWduLWl0ZW1zOmNlbnRlcn0udS1pY29uLS1yaWdodFtkYXRhLXYtZTRkNmQzNjJde2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXJ9LnUtaWNvbi0tdG9wW2RhdGEtdi1lNGQ2ZDM2Ml17ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2U7anVzdGlmeS1jb250ZW50OmNlbnRlcn0udS1pY29uLS1ib3R0b21bZGF0YS12LWU0ZDZkMzYyXXtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcn0udS1pY29uX19pY29uW2RhdGEtdi1lNGQ2ZDM2Ml17cG9zaXRpb246cmVsYXRpdmV9LnUtaWNvbl9faWNvbi0tcHJpbWFyeVtkYXRhLXYtZTRkNmQzNjJde2NvbG9yOiMyOTc5ZmZ9LnUtaWNvbl9faWNvbi0tc3VjY2Vzc1tkYXRhLXYtZTRkNmQzNjJde2NvbG9yOiMxOWJlNmJ9LnUtaWNvbl9faWNvbi0tZXJyb3JbZGF0YS12LWU0ZDZkMzYyXXtjb2xvcjojZmEzNTM0fS51LWljb25fX2ljb24tLXdhcm5pbmdbZGF0YS12LWU0ZDZkMzYyXXtjb2xvcjojZjkwfS51LWljb25fX2ljb24tLWluZm9bZGF0YS12LWU0ZDZkMzYyXXtjb2xvcjojOTA5Mzk5fS51LWljb25fX2RlY2ltYWxbZGF0YS12LWU0ZDZkMzYyXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3ZlcmZsb3c6aGlkZGVufS51LWljb25fX2ltZ1tkYXRhLXYtZTRkNmQzNjJde2hlaWdodDphdXRvO3dpbGwtY2hhbmdlOnRyYW5zZm9ybX0udS1pY29uX19sYWJlbFtkYXRhLXYtZTRkNmQzNjJde2xpbmUtaGVpZ2h0OjF9JywiIl0pLGUuZXhwb3J0cz10fSwiNTBiYyI6ZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0IjtvKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDAsbygiYTllMyIpLG8oImM5NzUiKSxvKCJiNjRiIiksbygiYWMxZiIpLG8oIjAwYjQiKTt2YXIgbj17bmFtZToidS10b2FzdCIscHJvcHM6e3pJbmRleDp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDoiIn19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aXNTaG93OiExLHRpbWVyOm51bGwsY29uZmlnOntwYXJhbXM6e30sdGl0bGU6IiIsdHlwZToiIixkdXJhdGlvbjoyZTMsaXNUYWI6ITEsdXJsOiIiLGljb246ITAscG9zaXRpb246ImNlbnRlciIsY2FsbGJhY2s6bnVsbCxiYWNrOiExfSx0bXBDb25maWc6e319fSxjb21wdXRlZDp7aWNvbk5hbWU6ZnVuY3Rpb24oKXtpZihbImVycm9yIiwid2FybmluZyIsInN1Y2Nlc3MiLCJpbmZvIl0uaW5kZXhPZih0aGlzLnRtcENvbmZpZy50eXBlKT49MCYmdGhpcy50bXBDb25maWcuaWNvbil7dmFyIGU9dGhpcy4kdS50eXBlMmljb24odGhpcy50bXBDb25maWcudHlwZSk7cmV0dXJuIGV9fSx1WkluZGV4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNTaG93P3RoaXMuekluZGV4P3RoaXMuekluZGV4OnRoaXMuJHUuekluZGV4LnRvYXN0OiI5OTk5OTkifX0sbWV0aG9kczp7c2hvdzpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMudG1wQ29uZmlnPXRoaXMuJHUuZGVlcE1lcmdlKHRoaXMuY29uZmlnLGUpLHRoaXMudGltZXImJihjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy50aW1lcj1udWxsKSx0aGlzLmlzU2hvdz0hMCx0aGlzLnRpbWVyPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dC5pc1Nob3c9ITEsY2xlYXJUaW1lb3V0KHQudGltZXIpLHQudGltZXI9bnVsbCwiZnVuY3Rpb24iPT09dHlwZW9mIHQudG1wQ29uZmlnLmNhbGxiYWNrJiZ0LnRtcENvbmZpZy5jYWxsYmFjaygpLHQudGltZUVuZCgpfSksdGhpcy50bXBDb25maWcuZHVyYXRpb24pfSxoaWRlOmZ1bmN0aW9uKCl7dGhpcy5pc1Nob3c9ITEsdGhpcy50aW1lciYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPW51bGwpfSx0aW1lRW5kOmZ1bmN0aW9uKCl7aWYodGhpcy50bXBDb25maWcudXJsKXtpZigiLyIhPXRoaXMudG1wQ29uZmlnLnVybFswXSYmKHRoaXMudG1wQ29uZmlnLnVybD0iLyIrdGhpcy50bXBDb25maWcudXJsKSxPYmplY3Qua2V5cyh0aGlzLnRtcENvbmZpZy5wYXJhbXMpLmxlbmd0aCl7dmFyIGU9IiI7Ly4qXC8uKlw/Lio9LiovLnRlc3QodGhpcy50bXBDb25maWcudXJsKT8oZT10aGlzLiR1LnF1ZXJ5UGFyYW1zKHRoaXMudG1wQ29uZmlnLnBhcmFtcywhMSksdGhpcy50bXBDb25maWcudXJsPXRoaXMudG1wQ29uZmlnLnVybCsiJiIrZSk6KGU9dGhpcy4kdS5xdWVyeVBhcmFtcyh0aGlzLnRtcENvbmZpZy5wYXJhbXMpLHRoaXMudG1wQ29uZmlnLnVybCs9ZSl9dGhpcy50bXBDb25maWcuaXNUYWI/dW5pLnN3aXRjaFRhYih7dXJsOnRoaXMudG1wQ29uZmlnLnVybH0pOnVuaS5uYXZpZ2F0ZVRvKHt1cmw6dGhpcy50bXBDb25maWcudXJsfSl9ZWxzZSB0aGlzLnRtcENvbmZpZy5iYWNrJiZ0aGlzLiR1LnJvdXRlKHt0eXBlOiJiYWNrIn0pfX19O3QuZGVmYXVsdD1ufSwiNTVhNyI6ZnVuY3Rpb24oZSx0LG8pe3ZhciBuPW8oIjM5MWUiKTtuLl9fZXNNb2R1bGUmJihuPW4uZGVmYXVsdCksInN0cmluZyI9PT10eXBlb2YgbiYmKG49W1tlLmksbiwiIl1dKSxuLmxvY2FscyYmKGUuZXhwb3J0cz1uLmxvY2Fscyk7dmFyIGk9bygiNGYwNiIpLmRlZmF1bHQ7aSgiM2MzMDM2OGUiLG4sITAse3NvdXJjZU1hcDohMSxzaGFkb3dNb2RlOiExfSl9LDYyNDE6ZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIG59KSksby5kKHQsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG8uZCh0LCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIG49ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS4kY3JlYXRlRWxlbWVudCxvPWUuX3NlbGYuX2N8fHQ7cmV0dXJuIG8oInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoidS1pY29uIixjbGFzczpbInUtaWNvbi0tIitlLmxhYmVsUG9zXSxzdHlsZTpbZS5jdXN0b21TdHlsZV0sb246e2NsaWNrOmZ1bmN0aW9uKHQpe2FyZ3VtZW50c1swXT10PWUuJGhhbmRsZUV2ZW50KHQpLGUuY2xpY2suYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9fX0sW2UuaXNJbWc/bygidi11bmktaW1hZ2UiLHtzdGF0aWNDbGFzczoidS1pY29uX19pbWciLHN0eWxlOltlLmltZ1N0eWxlXSxhdHRyczp7c3JjOmUubmFtZSxtb2RlOmUuaW1nTW9kZX19KTpvKCJ2LXVuaS10ZXh0Iix7c3RhdGljQ2xhc3M6InUtaWNvbl9faWNvbiIsY2xhc3M6ZS5jdXN0b21DbGFzcyxzdHlsZTpbZS5pY29uU3R5bGVdLGF0dHJzOnsiaG92ZXItY2xhc3MiOmUuaG92ZXJDbGFzc30sb246e3RvdWNoc3RhcnQ6ZnVuY3Rpb24odCl7YXJndW1lbnRzWzBdPXQ9ZS4kaGFuZGxlRXZlbnQodCksZS50b3VjaHN0YXJ0LmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX19LFtlLnNob3dEZWNpbWFsSWNvbj9vKCJ2LXVuaS10ZXh0Iix7c3RhdGljQ2xhc3M6InUtaWNvbl9fZGVjaW1hbCIsY2xhc3M6ZS5kZWNpbWFsSWNvbkNsYXNzLHN0eWxlOltlLmRlY2ltYWxJY29uU3R5bGVdLGF0dHJzOnsiaG92ZXItY2xhc3MiOmUuaG92ZXJDbGFzc319KTplLl9lKCldLDEpLCIiIT09ZS5sYWJlbD9vKCJ2LXVuaS10ZXh0Iix7c3RhdGljQ2xhc3M6InUtaWNvbl9fbGFiZWwiLHN0eWxlOntjb2xvcjplLmxhYmVsQ29sb3IsZm9udFNpemU6ZS4kdS5hZGRVbml0KGUubGFiZWxTaXplKSxtYXJnaW5MZWZ0OiJyaWdodCI9PWUubGFiZWxQb3M/ZS4kdS5hZGRVbml0KGUubWFyZ2luTGVmdCk6MCxtYXJnaW5Ub3A6ImJvdHRvbSI9PWUubGFiZWxQb3M/ZS4kdS5hZGRVbml0KGUubWFyZ2luVG9wKTowLG1hcmdpblJpZ2h0OiJsZWZ0Ij09ZS5sYWJlbFBvcz9lLiR1LmFkZFVuaXQoZS5tYXJnaW5SaWdodCk6MCxtYXJnaW5Cb3R0b206InRvcCI9PWUubGFiZWxQb3M/ZS4kdS5hZGRVbml0KGUubWFyZ2luQm90dG9tKTowfX0sW2UuX3YoZS5fcyhlLmxhYmVsKSldKTplLl9lKCldLDEpfSxpPVtdfSwiOGE2NSI6ZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0Ijt2YXIgbj1vKCIxNjdiIiksaT1vLm4obik7aS5hfSxhMWJiOmZ1bmN0aW9uKGUsdCxvKXsidXNlIHN0cmljdCI7by5yKHQpO3ZhciBuPW8oIjUwYmMiKSxpPW8ubihuKTtmb3IodmFyIGEgaW4gbilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKGUpe28uZCh0LGUsKGZ1bmN0aW9uKCl7cmV0dXJuIG5bZV19KSl9KGEpO3RbImRlZmF1bHQiXT1pLmF9LGEzNjQ6ZnVuY3Rpb24oZSx0LG8pe3ZhciBuPW8oIjI0ZmIiKTt0PW4oITEpLHQucHVzaChbZS5pLCdAY2hhcnNldCAiVVRGLTgiO1xyXG4vKipcclxuICog6L+Z6YeM5pivdW5pLWFwcOWGhee9rueahOW4uOeUqOagt+W8j+WPmOmHj1xyXG4gKlxyXG4gKiB1bmktYXBwIOWumOaWueaJqeWxleaPkuS7tuWPiuaPkuS7tuW4guWcuu+8iGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY27vvInkuIrlvojlpJrkuInmlrnmj5Lku7blnYfkvb/nlKjkuobov5nkupvmoLflvI/lj5jph49cclxuICog5aaC5p6c5L2g5piv5o+S5Lu25byA5Y+R6ICF77yM5bu66K6u5L2g5L2/55Soc2Nzc+mihOWkhOeQhu+8jOW5tuWcqOaPkuS7tuS7o+eggeS4reebtOaOpeS9v+eUqOi/meS6m+WPmOmHj++8iOaXoOmcgCBpbXBvcnQg6L+Z5Liq5paH5Lu277yJ77yM5pa55L6/55So5oi36YCa6L+H5pCt56ev5pyo55qE5pa55byP5byA5Y+R5pW05L2T6aOO5qC85LiA6Ie055qEQXBwXHJcbiAqXHJcbiAqL1xyXG4vKipcclxuICog5aaC5p6c5L2g5pivQXBw5byA5Y+R6ICF77yI5o+S5Lu25L2/55So6ICF77yJ77yM5L2g5Y+v5Lul6YCa6L+H5L+u5pS56L+Z5Lqb5Y+Y6YeP5p2l5a6a5Yi26Ieq5bex55qE5o+S5Lu25Li76aKY77yM5a6e546w6Ieq5a6a5LmJ5Li76aKY5Yqf6IO9XHJcbiAqXHJcbiAqIOWmguaenOS9oOeahOmhueebruWQjOagt+S9v+eUqOS6hnNjc3PpooTlpITnkIbvvIzkvaDkuZ/lj6/ku6Xnm7TmjqXlnKjkvaDnmoQgc2NzcyDku6PnoIHkuK3kvb/nlKjlpoLkuIvlj5jph4/vvIzlkIzml7bml6DpnIAgaW1wb3J0IOi/meS4quaWh+S7tlxyXG4gKi9cclxuLyog6aKc6Imy5Y+Y6YePICovXHJcbi8q5YWo5bGA5Li76aKY6Imy6LCDKi9cclxuLyog6KGM5Li655u45YWz6aKc6ImyICovXHJcbi8qIOaWh+Wtl+WfuuacrOminOiJsiAqL1xyXG4vKiDog4zmma/popzoibIgKi9cclxuLyog6L655qGG6aKc6ImyICovXHJcbi8qIOWwuuWvuOWPmOmHjyAqL1xyXG4vKiDmloflrZflsLrlr7ggKi9cclxuLyog5Zu+54mH5bC65a+4ICovXHJcbi8qIEJvcmRlciBSYWRpdXMgKi9cclxuLyog5rC05bmz6Ze06LedICovXHJcbi8qIOWeguebtOmXtOi3nSAqL1xyXG4vKiDpgI/mmI7luqYgKi9cclxuLyog5paH56ug5Zy65pmv55u45YWzICovLnUtdG9hc3RbZGF0YS12LTM2MzA3Y2FmXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4Oi0xO3RyYW5zaXRpb246b3BhY2l0eSAuM3M7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOiU/OD8lO2JhY2tncm91bmQ6IzU4NTg1ODtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTolPzI4PyU7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cGFkZGluZzolPzE4PyUgJT80MD8lfS51LXRvYXN0LnUtc2hvd1tkYXRhLXYtMzYzMDdjYWZde29wYWNpdHk6MX0udS1pY29uW2RhdGEtdi0zNjMwN2NhZl17bWFyZ2luLXJpZ2h0OiU/MTA/JTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtsaW5lLWhlaWdodDpub3JtYWx9LnUtcG9zaXRpb24tY2VudGVyW2RhdGEtdi0zNjMwN2NhZl17bGVmdDo1MCU7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7bWF4LXdpZHRoOjcwJX0udS1wb3NpdGlvbi10b3BbZGF0YS12LTM2MzA3Y2FmXXtsZWZ0OjUwJTt0b3A6MjAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKX0udS1wb3NpdGlvbi1ib3R0b21bZGF0YS12LTM2MzA3Y2FmXXtsZWZ0OjUwJTtib3R0b206MjAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKX0udS10eXBlLXByaW1hcnlbZGF0YS12LTM2MzA3Y2FmXXtjb2xvcjojMjk3OWZmO2JhY2tncm91bmQtY29sb3I6I2VjZjVmZjtib3JkZXI6MXB4IHNvbGlkICNkN2VhZmV9LnUtdHlwZS1zdWNjZXNzW2RhdGEtdi0zNjMwN2NhZl17Y29sb3I6IzE5YmU2YjtiYWNrZ3JvdW5kLWNvbG9yOiNkYmYxZTE7Ym9yZGVyOjFweCBzb2xpZCAjYmVmNWM4fS51LXR5cGUtZXJyb3JbZGF0YS12LTM2MzA3Y2FmXXtjb2xvcjojZmEzNTM0O2JhY2tncm91bmQtY29sb3I6I2ZlZjBmMDtib3JkZXI6MXB4IHNvbGlkICNmZGUyZTJ9LnUtdHlwZS13YXJuaW5nW2RhdGEtdi0zNjMwN2NhZl17Y29sb3I6I2Y5MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZGY2ZWM7Ym9yZGVyOjFweCBzb2xpZCAjZmFlY2Q4fS51LXR5cGUtaW5mb1tkYXRhLXYtMzYzMDdjYWZde2NvbG9yOiM5MDkzOTk7YmFja2dyb3VuZC1jb2xvcjojZjRmNGY1O2JvcmRlcjoxcHggc29saWQgI2ViZWVmNX0udS10eXBlLWRlZmF1bHRbZGF0YS12LTM2MzA3Y2FmXXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzU4NTg1OH0nLCIiXSksZS5leHBvcnRzPXR9LGFlMmY6ZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLnIodCk7dmFyIG49bygiNjI0MSIpLGk9bygiMmVjNyIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24oZSl7by5kKHQsZSwoZnVuY3Rpb24oKXtyZXR1cm4gaVtlXX0pKX0oYSk7bygiZDY4YiIpO3ZhciBkPW8oImYwYzUiKSxjPU9iamVjdChkWyJhIl0pKGlbImRlZmF1bHQiXSxuWyJiIl0sblsiYyJdLCExLG51bGwsImU0ZDZkMzYyIixudWxsLCExLG5bImEiXSx2b2lkIDApO3RbImRlZmF1bHQiXT1jLmV4cG9ydHN9LGIwOTA6ZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksby5kKHQsImMiLChmdW5jdGlvbigpe3JldHVybiBhfSkpLG8uZCh0LCJhIiwoZnVuY3Rpb24oKXtyZXR1cm4gbn0pKTt2YXIgbj17dUljb246bygiYWUyZiIpLmRlZmF1bHR9LGk9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS4kY3JlYXRlRWxlbWVudCxvPWUuX3NlbGYuX2N8fHQ7cmV0dXJuIG8oInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoidS10b2FzdCIsY2xhc3M6W2UuaXNTaG93PyJ1LXNob3ciOiIiLCJ1LXR5cGUtIitlLnRtcENvbmZpZy50eXBlLCJ1LXBvc2l0aW9uLSIrZS50bXBDb25maWcucG9zaXRpb25dLHN0eWxlOnt6SW5kZXg6ZS51WkluZGV4fX0sW28oInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoidS1pY29uLXdyYXAifSxbZS50bXBDb25maWcuaWNvbj9vKCJ1LWljb24iLHtzdGF0aWNDbGFzczoidS1pY29uIixhdHRyczp7bmFtZTplLmljb25OYW1lLHNpemU6MzAsY29sb3I6ZS50bXBDb25maWcudHlwZX19KTplLl9lKCldLDEpLG8oInYtdW5pLXRleHQiLHtzdGF0aWNDbGFzczoidS10ZXh0In0sW2UuX3YoZS5fcyhlLnRtcENvbmZpZy50aXRsZSkpXSldLDEpfSxhPVtdfSxjYzI5OmZ1bmN0aW9uKGUsdCxvKXsidXNlIHN0cmljdCI7bygiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwLG8oImE5ZTMiKSxvKCIxNGQ5IiksbygiY2FhZCIpLG8oIjI1MzIiKSxvKCJjOTc1Iik7dmFyIG49e25hbWU6InUtaWNvbiIscHJvcHM6e25hbWU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxzaXplOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OiJpbmhlcml0In0sYm9sZDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LGluZGV4Ont0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OiIifSxob3ZlckNsYXNzOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxjdXN0b21QcmVmaXg6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6InVpY29uIn0sbGFiZWw6e3R5cGU6W1N0cmluZyxOdW1iZXJdLGRlZmF1bHQ6IiJ9LGxhYmVsUG9zOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJyaWdodCJ9LGxhYmVsU2l6ZTp7dHlwZTpbU3RyaW5nLE51bWJlcl0sZGVmYXVsdDoiMjgifSxsYWJlbENvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIjNjA2MjY2In0sbWFyZ2luTGVmdDp7dHlwZTpbU3RyaW5nLE51bWJlcl0sZGVmYXVsdDoiNiJ9LG1hcmdpblRvcDp7dHlwZTpbU3RyaW5nLE51bWJlcl0sZGVmYXVsdDoiNiJ9LG1hcmdpblJpZ2h0Ont0eXBlOltTdHJpbmcsTnVtYmVyXSxkZWZhdWx0OiI2In0sbWFyZ2luQm90dG9tOnt0eXBlOltTdHJpbmcsTnVtYmVyXSxkZWZhdWx0OiI2In0saW1nTW9kZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoid2lkdGhGaXgifSxjdXN0b21TdHlsZTp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybnt9fX0sd2lkdGg6e3R5cGU6W1N0cmluZyxOdW1iZXJdLGRlZmF1bHQ6IiJ9LGhlaWdodDp7dHlwZTpbU3RyaW5nLE51bWJlcl0sZGVmYXVsdDoiIn0sdG9wOnt0eXBlOltTdHJpbmcsTnVtYmVyXSxkZWZhdWx0OjB9LHNob3dEZWNpbWFsSWNvbjp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LGluYWN0aXZlQ29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiNlY2VjZWMifSxwZXJjZW50Ont0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OiI1MCJ9fSxjb21wdXRlZDp7Y3VzdG9tQ2xhc3M6ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gZS5wdXNoKHRoaXMuY3VzdG9tUHJlZml4KyItIit0aGlzLm5hbWUpLCJ1aWNvbiI9PXRoaXMuY3VzdG9tUHJlZml4P2UucHVzaCgidS1pY29uZm9udCIpOmUucHVzaCh0aGlzLmN1c3RvbVByZWZpeCksdGhpcy5zaG93RGVjaW1hbEljb24mJnRoaXMuaW5hY3RpdmVDb2xvciYmdGhpcy4kdS5jb25maWcudHlwZS5pbmNsdWRlcyh0aGlzLmluYWN0aXZlQ29sb3IpP2UucHVzaCgidS1pY29uX19pY29uLS0iK3RoaXMuaW5hY3RpdmVDb2xvcik6dGhpcy5jb2xvciYmdGhpcy4kdS5jb25maWcudHlwZS5pbmNsdWRlcyh0aGlzLmNvbG9yKSYmZS5wdXNoKCJ1LWljb25fX2ljb24tLSIrdGhpcy5jb2xvciksZX0saWNvblN0eWxlOmZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGU9e2ZvbnRTaXplOiJpbmhlcml0Ij09dGhpcy5zaXplPyJpbmhlcml0Ijp0aGlzLiR1LmFkZFVuaXQodGhpcy5zaXplKSxmb250V2VpZ2h0OnRoaXMuYm9sZD8iYm9sZCI6Im5vcm1hbCIsdG9wOnRoaXMuJHUuYWRkVW5pdCh0aGlzLnRvcCl9LHRoaXMuc2hvd0RlY2ltYWxJY29uJiZ0aGlzLmluYWN0aXZlQ29sb3ImJiF0aGlzLiR1LmNvbmZpZy50eXBlLmluY2x1ZGVzKHRoaXMuaW5hY3RpdmVDb2xvcik/ZS5jb2xvcj10aGlzLmluYWN0aXZlQ29sb3I6dGhpcy5jb2xvciYmIXRoaXMuJHUuY29uZmlnLnR5cGUuaW5jbHVkZXModGhpcy5jb2xvcikmJihlLmNvbG9yPXRoaXMuY29sb3IpLGV9LGlzSW1nOmZ1bmN0aW9uKCl7cmV0dXJuLTEhPT10aGlzLm5hbWUuaW5kZXhPZigiLyIpfSxpbWdTdHlsZTpmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBlLndpZHRoPXRoaXMud2lkdGg/dGhpcy4kdS5hZGRVbml0KHRoaXMud2lkdGgpOnRoaXMuJHUuYWRkVW5pdCh0aGlzLnNpemUpLGUuaGVpZ2h0PXRoaXMuaGVpZ2h0P3RoaXMuJHUuYWRkVW5pdCh0aGlzLmhlaWdodCk6dGhpcy4kdS5hZGRVbml0KHRoaXMuc2l6ZSksZX0sZGVjaW1hbEljb25TdHlsZTpmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBlPXtmb250U2l6ZToiaW5oZXJpdCI9PXRoaXMuc2l6ZT8iaW5oZXJpdCI6dGhpcy4kdS5hZGRVbml0KHRoaXMuc2l6ZSksZm9udFdlaWdodDp0aGlzLmJvbGQ/ImJvbGQiOiJub3JtYWwiLHRvcDp0aGlzLiR1LmFkZFVuaXQodGhpcy50b3ApLHdpZHRoOnRoaXMucGVyY2VudCsiJSJ9LHRoaXMuY29sb3ImJiF0aGlzLiR1LmNvbmZpZy50eXBlLmluY2x1ZGVzKHRoaXMuY29sb3IpJiYoZS5jb2xvcj10aGlzLmNvbG9yKSxlfSxkZWNpbWFsSWNvbkNsYXNzOmZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIGUucHVzaCh0aGlzLmN1c3RvbVByZWZpeCsiLSIrdGhpcy5uYW1lKSwidWljb24iPT10aGlzLmN1c3RvbVByZWZpeD9lLnB1c2goInUtaWNvbmZvbnQiKTplLnB1c2godGhpcy5jdXN0b21QcmVmaXgpLHRoaXMuY29sb3ImJnRoaXMuJHUuY29uZmlnLnR5cGUuaW5jbHVkZXModGhpcy5jb2xvcik/ZS5wdXNoKCJ1LWljb25fX2ljb24tLSIrdGhpcy5jb2xvcik6ZS5wdXNoKCJ1LWljb25fX2ljb24tLXByaW1hcnkiKSxlfX0sbWV0aG9kczp7Y2xpY2s6ZnVuY3Rpb24oKXt0aGlzLiRlbWl0KCJjbGljayIsdGhpcy5pbmRleCl9LHRvdWNoc3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLiRlbWl0KCJ0b3VjaHN0YXJ0Iix0aGlzLmluZGV4KX19fTt0LmRlZmF1bHQ9bn0sZDY4YjpmdW5jdGlvbihlLHQsbyl7InVzZSBzdHJpY3QiO3ZhciBuPW8oIjU1YTciKSxpPW8ubihuKTtpLmF9LGZkY2M6ZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLnIodCk7dmFyIG49bygiYjA5MCIpLGk9bygiYTFiYiIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24oZSl7by5kKHQsZSwoZnVuY3Rpb24oKXtyZXR1cm4gaVtlXX0pKX0oYSk7bygiOGE2NSIpO3ZhciBkPW8oImYwYzUiKSxjPU9iamVjdChkWyJhIl0pKGlbImRlZmF1bHQiXSxuWyJiIl0sblsiYyJdLCExLG51bGwsIjM2MzA3Y2FmIixudWxsLCExLG5bImEiXSx2b2lkIDApO3RbImRlZmF1bHQiXT1jLmV4cG9ydHN9fV0pOw=="}},"time_used":277,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":277,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"breeze-shopping.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"breeze-shopping.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/favicon.ico","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://breeze-shopping.com/","date":"2026-07-27T04:15:49.874Z","timestamp":1785125749874,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"breeze-shopping.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 15 Jul 2026 01:06:08 GMT","end":"Tue, 13 Oct 2026 01:06:07 GMT"},"fingerprint":{"sha1":"FC:2A:A7:4D:FF:04:7D:30:4B:17:B3:A5:DB:B5:51:EC:F4:17:89:0B","sha256":"6A:08:9D:6F:EB:0E:C9:60:FA:2A:59:01:4E:AE:44:51:20:B4:4D:8B:55:ED:47:9F:26:7D:74:49:BF:79:D4:02"}}},"request":{"raw":"GET /favicon.ico HTTP/1.1\r\nHost: breeze-shopping.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://breeze-shopping.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 04:15:50 GMT\r\ncontent-type: image/x-icon\r\ncontent-length: 67646\r\nlast-modified: Wed, 15 Jul 2026 02:06:25 GMT\r\netag: \"6a56eb21-1083e\"\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: MISS\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":67646,"size_decoded":68104,"mime_type":"image/x-icon","magic":"MS Windows icon resource - 1 icon, -128x-128, 32 bits/pixel","md5":"85a498d3eb4165d9342fbbb058a591e2","sha1":"7886006fa59ed37b1b73cc4f5844513a40af1ce5","sha256":"94ebbc62c740a5e873efdb246aadd5df4180c171290667e09f13b9a6f87b20bf","sha512":"dd108dd4d9696debb795377acbf023f6432af1eccaae8c1290c8638f0af8a8d35ed2a97d133d962c5dedf664f034ff42c3f8ee092e1afa1affc3a99865760ae0","ssdeep":"384:8aKajaoTaSaUx2aYl78TBS4vEzL/fpCPY:5Jxe5MU4A/fB","tlshash":"e563d7223e98c442f237cab85709d17d4f269e462a1ae507bae4bcd737fd7521439702","first_seen":"2026-07-27T03:26:41.397919Z","last_seen":"2026-07-27T04:16:18.932643Z","times_seen":2,"resource_available":false,"data":"AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAMMOAADDDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/f39AP7+/g/+/v46////fP///6r////R////5f////r///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////z////n////1P///7D///+D////Q////xT8/PwB/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+Bf7+/i7///90////wv///+r////+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////u////y////3////82/v7+CP7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/f39A/7+/jP///+Y////6f////7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+////+o/v7+Qf7+/gX+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8/PwA////AP///x3///+K////5//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////u////mv7+/in5+fkA/f39AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/gP///9M////y/////7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2v///17+/v4I/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD9/f0L////df///+7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9v///4v///8R////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A/v7+Ef///5b////5/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////P///6r+/v4d////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hD///+d/////P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7b+/v4d////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4L////lP////z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6r///8R////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/Pz8Af///3H////5/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////P///4v9/f0H/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP///wD///9E////6v//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9f///17///8A/f39AAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+Gf///8T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2f7+/in+/v4AAAAAAAAAAAAAAAAA/f39AOzs7AD///+A/////v//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////mv7+/gX+/v4AAAAAAAAAAAD///8A////Kv///97////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////t/v7+Qv///wAAAAAA/v7+APHx8QD///+J//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+n/f39B/7+/gD+/v4A/v7+I////93//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7///83////AP///wD///9h/////f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3////8A/v7+CP///67/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yv7+/hT///8n////3v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////u////Q////2L////5//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+D////k////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6////+0////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1P///9T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////m////3P////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v////l/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7f/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7//T09P/09PT/9PT0//T09P/z8/P/8/Pz//T09P/09PT/9PT0//T09P/09PT/9PT0//Pz8//z8/P/8/Pz//X19f/6+vr/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//8/Pz//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////b29v/V1dX/1FRUf9UVFT/VVVV/1VVVf9WVlb/VlZW/1dXV/9YWFj/WFhY/1lZWf9aWlr/W1tb/1tbW/9cXFz/XFxc/2lpaf9ra2v/a2tr/2tra/9ra2v/ampq/2tra/9ra2v/a2tr/2pqav9qamr/ampq/2pqav9paWn/aWlp/2pqav9ycnL/gYGB/5ubm/+4uLj/2tra//j4+P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rq6v89PT3/NDQ0/z8/P/9BQUH/Q0ND/0VFRf9HR0f/SUlJ/0tLS/9NTU3/Tk5O/1BQUP9SUlL/U1NT/1RUVP9NTU3/SEhI/0dHR/9GRkb/RERE/0NDQ/9BQUH/QEBA/z8/P/89PT3/PDw8/zo6Ov85OTn/Nzc3/zY2Nv80NDT/MTEx/ywsLP8qKir/KCgo/ykpKf84ODj/Xl5e/42Njf/MzMz/9/f3///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39/3BwcP8wMDD/RUVF/0dHR/9JSUn/S0tL/01NTf9PT0//UVFR/1RUVP9VVVX/V1dX/1hYWP9aWlr/WFhY/1RUVP9SUlL/UFBQ/09PT/9NTU3/TExM/0pKSv9JSUn/R0dH/0VFRf9ERET/QkJC/0BAQP8/Pz//PT09/zs7O/86Ojr/ODg4/zY2Nv81NTX/MjIy/y4uLv8oKCj/IyMj/zAwMP9iYmL/srKy/+3t7f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////qqqq/ysrK/9DQ0P/RERE/0ZGRv9JSUn/S0tL/01NTf9OTk7/UFBQ/1JSUv9UVFT/VVVV/1ZWVv9UVFT/UlJS/1BQUP9PT0//TU1N/0tLS/9KSkr/SUlJ/0dHR/9GRkb/RERE/0JCQv9AQED/Pz8//z4+Pv88PDz/Ojo6/zk5Of83Nzf/NTU1/zMzM/8xMTH/MDAw/y4uLv8sLCz/KSkp/yIiIv8kJCT/UlJS/7Ozs//39/f/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////a2tr/OTk5/zw8PP9CQkL/RERE/0ZGRv9ISEj/SkpK/0xMTP9OTk7/T09P/1FRUf9TU1P/VFRU/1FRUf9QUFD/T09P/01NTf9MTEz/SkpK/0hISP9HR0f/RkZG/0RERP9DQ0P/QUFB/z8/P/8+Pj7/PDw8/zs7O/85OTn/Nzc3/zU1Nf80NDT/MjIy/zAwMP8vLy//LS0t/ysrK/8pKSn/Jycn/yUlJf8fHx//Jycn/2xsbP/X19f////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////n5+f9eXl7/NDQ0/0BAQP9CQkL/RERE/0ZGRv9ISEj/SkpK/0tLS/9NTU3/Tk5O/1BQUP9SUlL/UFBQ/09PT/9OTk7/TExM/0tLS/9JSUn/R0dH/0ZGRv9FRUX/Q0ND/0FBQf8/Pz//Pj4+/z09Pf87Ozv/OTk5/zg4OP82Njb/NDQ0/zMzM/8xMTH/Ly8v/y4uLv8sLCz/Kioq/ygoKP8nJyf/JSUl/yMjI/8hISH/HBwc/0BAQP+wsLD/+vr6/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4qKiv8rKyv/Pj4+/0BAQP9CQkL/Q0ND/0VFRf9HR0f/SUlJ/0pKSv9MTEz/Tk5O/1BQUP9OTk7/TU1N/0xMTP9KSkr/SUlJ/0dHR/9GRkb/RUVF/0NDQ/9CQkL/QEBA/z8/P/89PT3/Ozs7/zo6Ov84ODj/Nzc3/zU1Nf8zMzP/MTEx/zAwMP8uLi7/LS0t/ysrK/8pKSn/KCgo/yYmJv8kJCT/IyMj/yAgIP8fHx//Gxsb/ycnJ/+MjIz/8/Pz////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wMDA/y8vL/87Ozv/Pj4+/z8/P/9BQUH/Q0ND/0VFRf9GRkb/R0dH/0lJSf9NTU3/Tk5O/01NTf9MTEz/SkpK/0lJSf9ISEj/RkZG/0RERP9DQ0P/QkJC/0BAQP8/Pz//Pj4+/zw8PP86Ojr/OTk5/zc3N/82Njb/NDQ0/zIyMv8wMDD/Ly8v/y0tLf8sLCz/Kioq/ygoKP8nJyf/JSUl/yMjI/8iIiL/Hx8f/x4eHv8cHBz/GRkZ/yAgIP95eXn/7e3t///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////q6ur/RkZG/zQ0NP87Ozv/PT09/z8/P/9BQUH/QkJC/0RERP9FRUX/SEhI/01NTf9MTEz/S0tL/0pKSv9JSUn/SEhI/0ZGRv9ERET/Q0ND/0JCQv9BQUH/Pz8//z09Pf88PDz/Ozs7/zk5Of84ODj/NjY2/zQ0NP8zMzP/MTEx/y8vL/8uLi7/LCws/yoqKv8pKSn/Jycn/yUlJf8kJCT/IyMj/yEhIf8fHx//HR0d/xsbG/8ZGRn/FxcX/xsbG/9zc3P/7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f91dXX/Li4u/zk5Of86Ojr/PDw8/z4+Pv8/Pz//QUFB/0JCQv9HR0f/TExM/0tLS/9JSUn/SEhI/0dHR/9GRkb/RERE/0NDQ/9CQkL/QUFB/z8/P/8+Pj7/PDw8/zs7O/86Ojr/ODg4/zY2Nv80NDT/MzMz/zExMf8wMDD/Li4u/y0tLf8rKyv/KSkp/ygoKP8mJib/JCQk/yIiIv8hISH/ICAg/x4eHv8cHBz/Ghoa/xkZGf8XFxf/FRUV/xsbG/9/f3//9fX1////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////62trf8sLCz/NjY2/zc3N/85OTn/Ozs7/z09Pf8/Pz//Pz8//0hISP9LS0v/SkpK/0hISP9HR0f/RkZG/0VFRf9DQ0P/QkJC/0FBQf8/Pz//Pj4+/z09Pf87Ozv/OTk5/zg4OP82Njb/NTU1/zMzM/8xMTH/MDAw/y8vL/8tLS3/Kysr/yoqKv8oKCj/Jycn/yUlJf8jIyP/ISEh/x8fH/8eHh7/HBwc/xsbG/8ZGRn/GBgY/xYWFv8UFBT/EhIS/x8fH/+dnZ3//v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1tbW/zg4OP8yMjL/NTU1/zc3N/84ODj/Ojo6/zw8PP8+Pj7/SEhI/0lJSf9ISEj/R0dH/0ZGRv9ERET/Q0ND/0JCQv9AQED/Pz8//z4+Pv88PDz/Ozs7/zk5Of84ODj/NjY2/zU1Nf8zMzP/MjIy/zExMf8vLy//LS0t/ywsLP8qKir/KSkp/ycnJ/8mJib/JCQk/yMjI/8hISH/Hx8f/x0dHf8bGxv/Ghoa/xgYGP8WFhb/FRUV/xMTE/8RERH/EBAQ/zExMf/CwsL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////19fX/Xl5e/ywsLP8zMzP/NDQ0/zY2Nv83Nzf/OTk5/z4+Pv9ISEj/R0dH/0ZGRv9FRUX/RERE/0NDQ/9BQUH/QEBA/z8/P/8+Pj7/PDw8/zs7O/86Ojr/ODg4/zY2Nv81NTX/NDQ0/zIyMv8wMDD/Ly8v/y4uLv8sLCz/Kioq/ykpKf8oKCj/JiYm/yQkJP8iIiL/ISEh/x8fH/8eHh7/HBwc/xsbG/8ZGRn/FxcX/xUVFf8TExP/EhIS/xAQEP8ODg7/Dw8P/1RUVP/p6en/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+Pj4//KSkp/zAwMP8yMjL/MzMz/zU1Nf82Njb/Pz8//0dHR/9FRUX/RUVF/0RERP9CQkL/QUFB/0BAQP8/Pz//Pj4+/zw8PP87Ozv/Ojo6/zg4OP83Nzf/NjY2/zQ0NP8zMzP/MTEx/y8vL/8uLi7/LS0t/ysrK/8pKSn/KCgo/yYmJv8lJSX/JCQk/yIiIv8gICD/Hh4e/xwcHP8bGxv/GRkZ/xgYGP8WFhb/FBQU/xISEv8RERH/Dw8P/w0NDf8LCwv/FxcX/46Ojv/9/f3////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8PDw/8zMzP/LS0t/y8vL/8wMDD/MjIy/zMzM/8/Pz//RkZG/0RERP9DQ0P/QkJC/0FBQf8/Pz//Pj4+/z09Pf88PDz/OTk5/zU1Nf8vLy//Li4u/y0tLf8sLCz/Kysr/y4uLv8vLy//Ly8v/y0tLf8rKyv/Kioq/ygoKP8mJib/JSUl/yQkJP8iIiL/ICAg/x8fH/8dHR3/HBwc/xoaGv8YGBj/FxcX/xUVFf8TExP/EhIS/xAQEP8ODg7/DAwM/woKCv8JCQn/NjY2/9bW1v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6+vr/01NTf8pKSn/LCws/y4uLv8wMDD/MTEx/z8/P/9ERET/Q0ND/0FBQf9AQED/QEBA/z4+Pv89PT3/PDw8/zs7O/9QUFD/VFRU/0hISP9GRkb/RkZG/0dHR/9AQED/LS0t/x8fH/8bGxv/Hx8f/yYmJv8pKSn/Jycn/yUlJf8kJCT/IiIi/yEhIf8fHx//Hh4e/xwcHP8bGxv/GRkZ/xcXF/8VFRX/ExMT/xISEv8QEBD/Dw8P/w0NDf8MDAz/CgoK/wgICP8QEBD/gYGB//39/f//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8/Pz/c3Nz/ycnJ/8qKir/LCws/ywsLP8wMDD/QEBA/0JCQv9BQUH/QEBA/z4+Pv8+Pj7/PDw8/zs7O/86Ojr/Nzc3/52dnf/39/f/9fX1//X19f/19fX/9fX1//Dw8P/a2tr/vb29/5aWlv9ZWVn/Kysr/xkZGf8dHR3/IyMj/yMjI/8hISH/Hx8f/x4eHv8cHBz/Gxsb/xkZGf8YGBj/FhYW/xUVFf8TExP/ERER/w8PD/8NDQ3/DAwM/wsLC/8JCQn/BwcH/wYGBv82Njb/1tbW///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+qqqr/Kysr/ycnJ/8pKSn/Kioq/y8vL/8/Pz//QEBA/z8/P/8+Pj7/PT09/zw8PP87Ozv/Ojo6/zg4OP80NDT/fn5+//39/f////////////////////////////////////////////j4+P/e3t7/n5+f/0dHR/8XFxf/GRkZ/yAgIP8eHh7/HBwc/xsbG/8aGhr/GBgY/xYWFv8VFRX/ExMT/xISEv8QEBD/Dg4O/w0NDf8LCwv/CQkJ/wcHB/8GBgb/BAQE/xISEv+ampr//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9jY2P88PDz/JCQk/yYmJv8nJyf/LS0t/z4+Pv8/Pz//Pj4+/zw8PP87Ozv/Ozs7/zo6Ov84ODj/NjY2/zQ0NP9ZWVn/6enp////////////////////////////////////////////////////////////7+/v/6ampv9BQUH/EhIS/xoaGv8bGxv/Ghoa/xgYGP8XFxf/FRUV/xQUFP8SEhL/EBAQ/w8PD/8NDQ3/CwsL/woKCv8ICAj/BgYG/wUFBf8DAwP/BQUF/1VVVf/v7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9PT0/2FhYf8iIiL/IyMj/yQkJP8sLCz/PT09/z09Pf88PDz/Ozs7/zk5Of84ODj/Nzc3/zc3N/81NTX/NDQ0/z4+Pv/Hx8f//////////////////////////////////////////////////////////////////////+fn5/93d3f/GRkZ/xUVFf8YGBj/FxcX/xYWFv8UFBT/EhIS/xEREf8PDw//Dg4O/wwMDP8KCgr/CQkJ/wcHB/8FBQX/BAQE/wICAv8BAQH/Jycn/8rKyv/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////lpaW/yQkJP8gICD/ISEh/ygoKP86Ojr/Ozs7/zo6Ov85OTn/ODg4/zc3N/82Njb/NTU1/zMzM/8yMjL/NjY2/5ycnP////////////////////////////////////////////////////////////////////////////n5+f+jo6P/IyMj/xISEv8WFhb/FBQU/xMTE/8RERH/Dw8P/w4ODv8NDQ3/CwsL/wkJCf8HBwf/BgYG/wQEBP8DAwP/AQEB/wAAAP8SEhL/kpKS/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////BwcH/Li4u/x0dHf8eHh7/JiYm/zk5Of85OTn/OTk5/zc3N/83Nzf/NTU1/zQ0NP8zMzP/MjIy/zExMf8wMDD/bW1t//X19f////////////////////////////////////////////////////////////////////////////////+rq6v/Hh4e/xISEv8TExP/ERER/xAQEP8ODg7/DQ0N/wsLC/8KCgr/CAgI/wcHB/8FBQX/AwMD/wEBAf8AAAD/AAAA/wYGBv9gYGD/9fX1////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+bm5v9OTk7/Gxsb/xsbG/8kJCT/ODg4/zc3N/83Nzf/NjY2/zU1Nf80NDT/MjIy/zExMf8wMDD/Ly8v/y0tLf9RUVH/4uLi//////////////////////////////////////////////////////////////////////////////////39/f+Wlpb/EBAQ/xEREf8QEBD/Dg4O/w0NDf8LCwv/CgoK/wgICP8HBwf/BQUF/wQEBP8CAgL/AQEB/wAAAP8AAAD/AQEB/zo6Ov/c3Nz////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7/3l5ef8cHBz/GBgY/yAgIP81NTX/NjY2/zU1Nf80NDT/MzMz/zIyMv8wMDD/MDAw/y8vL/8uLi7/LCws/zw8PP+/v7////////////////////////////////////////////////////////////////////////////////////////Pz8/9VVVX/CgoK/w8PD/8NDQ3/DAwM/woKCv8JCQn/BwcH/wYGBv8EBAT/AgIC/wEBAf8AAAD/AAAA/wAAAP8AAAD/GRkZ/66urv///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////paWl/yYmJv8WFhb/HBwc/zIyMv80NDT/MzMz/zIyMv8xMTH/MDAw/y8vL/8uLi7/LS0t/ywsLP8qKir/Li4u/46Ojv/+/v7//////////////////////////////////////////////////////////////////////////////////////7y8vP8XFxf/DAwM/wwMDP8KCgr/CQkJ/wcHB/8GBgb/BAQE/wMDA/8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/jIyM////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////U1NT/PT09/xMTE/8YGBj/MDAw/zMzM/8xMTH/MDAw/zAwMP8uLi7/LS0t/ywsLP8rKyv/Kioq/ykpKf8qKir/a2tr//Ly8v//////////////////////////////////////////////////////////////////////////////////////8/Pz/0VFRf8HBwf/CwsL/wkJCf8ICAj/BgYG/wUFBf8DAwP/AgIC/wEBAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP90dHT/+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Ly8v9gYGD/EhIS/xUVFf8tLS3/MTEx/zAwMP8vLy//Li4u/y0tLf8sLCz/Kioq/ykpKf8pKSn/KCgo/yYmJv9ISEj/09PT////////////////////////////////////////////////////////////////////////////////////////////cXFx/wQEBP8KCgr/CAgI/wcHB/8FBQX/AwMD/wICAv8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BQUF/2RkZP/39/f//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/5aWlv8cHBz/EBAQ/yoqKv8vLy//Li4u/y0tLf8sLCz/Kysr/yoqKv8pKSn/KCgo/ycnJ/8mJib/JCQk/zU1Nf+xsbH///////////////////////////////////////////////////////////////////////////////////////////+YmJj/BgYG/wgICP8GBgb/BQUF/wQEBP8CAgL/AQEB/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/X19f//b29v//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////xMTE/y8vL/8LCwv/IyMj/y0tLf8sLCz/Kysr/yoqKv8pKSn/KCgo/ycnJ/8mJib/JSUl/yQkJP8jIyP/KCgo/4uLi//8/Pz//////////////////////////////////////////////////////////////////////////////////////5+fn/8HBwf/BwcH/wUFBf8EBAT/AgIC/wEBAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wUFBf9kZGT/9vb2///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////j4+P/TU1N/wsLC/8dHR3/Kysr/yoqKv8pKSn/KCgo/ygoKP8mJib/JSUl/yQkJP8jIyP/IiIi/yEhIf8hISH/XV1d/+np6f//////////////////////////////////////////////////////////////////////////////////////hoaG/wUFBf8FBQX/BAQE/wICAv8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH/3V1df/6+vr//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////r6+v9+fn7/EhIS/xgYGP8pKSn/KCgo/ygoKP8nJyf/JiYm/yUlJf8kJCT/IyMj/yIiIv8hISH/ICAg/x4eHv9ERET/zs7O//////////////////////////////////////////////////////////////////////////////////z8/P9hYWH/AwMD/wQEBP8DAwP/AQEB/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/i4uL////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6urq/8eHh7/EhIS/ycnJ/8mJib/JiYm/yUlJf8kJCT/IyMj/yIiIv8gICD/ICAg/x8fH/8eHh7/HBwc/zAwMP+hoaH/////////////////////////////////////////////////////////////////////////////////4uLi/zIyMv8DAwP/AwMD/wEBAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xoaGv+qqqr////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1tbW/z4+Pv8ODg7/JCQk/yQkJP8jIyP/IyMj/yEhIf8hISH/ICAg/x8fH/8eHh7/HR0d/xwcHP8bGxv/ISEh/319ff/4+Pj///////////////////////////////////////////////////////////////////////////+RkZH/DQ0N/wICAv8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/Ojo6/9bW1v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////z8/P/Z2dn/xEREf8hISH/IiIi/yEhIf8hISH/ICAg/x8fH/8eHh7/HR0d/xwcHP8cHBz/Gxsb/xoaGv8aGhr/Wlpa/+Xl5f//////////////////////////////////////////////////////////////////////y8vL/zAwMP8DAwP/AQEB/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/woKCv9ra2v/9fX1////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v+QkpL/HB0d/xwcHP8hISH/ICAg/x8fH/8eHh7/HR0d/xwcHP8bGxv/Gxsb/xoaGv8ZGRn/FxcX/xYWFv83Nzf/v7+//////////////////////////////////////////////////////////////////9jY2P9QUFD/CAgI/wEBAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/JiYm/6ysrP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7vKxf8vODX/GBcX/x8fH/8eHh7/HR0d/xwcHP8bGxv/Ghoa/xoaGv8ZGRn/GBgY/xcXF/8WFhb/FBQU/yYmJv+dnZ3///////////////////////////////////////////////////////n5+f/AwMD/TExM/w0NDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJCf9fX1//6+vr/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2vTr/z56af8WFhf/HR0d/xwcHP8cHBz/Gxsb/xoaGv8ZGRn/GBgY/xcXF/8WFhb/FRUV/xQUFP8TExP/GBgY/3l5ef/19fX////////////////////////////////////////////n5+f/e3t7/zAwMP8JCQn/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/MjIy/7m5uf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////x/ff/Wc+u/xM7Nv8aFxb/Ghoa/xoaGv8ZGRn/GBgY/xcXF/8WFhb/FRUV/xQUFP8TExP/ExMT/xISEv8QEBD/TU1N/9vb2////////////////////////////////////////////9vb2/9paWn/OTk5/x4eHv8NDQ3/AwMD/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJCf9RUVH/t7e3//Ly8v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f+I8dD/FK6U/xIiIP8WFRT/GBgY/xcXF/8WFhb/FRUV/xQUFP8TExP/ExMT/xISEv8RERH/EBAQ/w4ODv8zMzP/vb29/////////////////////////////////////////////f39//T09P/d3d3/u7u7/4SEhP9BQUH/FBQU/wICAv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB/xMTE/8zMzP/dHR0/83Nzf/7+/v//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7jx2f8V6rj/GZSN/xEWFv8VERL/FRUV/xQUFP8TExP/EhIS/xISEv8RERH/EBAQ/w8PD/8ODg7/DAwM/x8fH/+RkZH/+vr6/////////////////////////////////////////////////////////////Pz8/+Xl5f+Wlpb/OTk5/wkJCf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB/wgICP8aGhr/SEhI/6Ghof/z8/P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4vjt/zTprv8L8NP/E4J//wwOD/8ODQ3/EhES/xISEv8RERH/EBAQ/w8PD/8ODg7/DQ0N/w0NDf8LCwv/Dw8P/2lpaf/s7Oz///////////////////////////////////////////////////////////////////////7+/v/U1NT/XV1d/w8PD/8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ICAj/ERER/xgYGP8iIiL/PDw8/4uLi//u7u7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7////5/fv/ZOe0/wLwvP8M8OD/En15/w0PD/8LCAn/DQ0N/w8PD/8ODg7/DQ0N/w0NDf8MDAz/CwsL/woKCv8JCQn/S0tL/9fX1//////////////////////////////////////////////////////////////////////////////////p6en/cnJy/w8PD/8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgIC/xAQEP8aGhr/IyMj/ysrK/8zMzP/QkJC/46Ojv/09PT//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+g7sv/C+ur/wX10f8K8+b/GouG/wsUE/8GBAP/CAgI/wsLC/8LCwv/CwsL/woKCv8JCQn/CAgI/wYGBv8mJib/sLCw///////////////////////////////////////////////////////////////////////////////////////r6+v/YGBg/wgICP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8EBAT/GRkZ/yMjI/8sLCz/NTU1/z09Pf9FRUX/TU1N/6ampv/9/f3/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9P15P8e56H/AvC8/wT64f8L+en/FaCV/w0jH/8FAgL/BAQE/wUFBf8HBwf/CAgI/wcHB/8GBgb/BAQE/xISEv+MjIz/+fn5///////////////////////////////////////////////////////////////////////////////////////a2tr/PDw8/wICAv8AAAD/AAAA/wAAAP8AAAD/AAAA/woKCv8iIiL/LCws/zU1Nf8+Pj7/R0dH/09PT/9UVFT/Xl5e/9PT0//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7/r0/0Tlov8A7rL/BPTJ/wP95/8F++f/E8W1/w1BPf8FAwT/AgEB/wICAv8CAgL/AwMD/wMDA/8CAgL/BgYG/2RkZP/k5OT///////////////////////////////////////////////////////////////////////////////////////////+lpaX/FBQU/wAAAP8AAAD/AAAA/wAAAP8AAAD/FRUV/yoqKv80NDT/Pj4+/0hISP9RUVH/WVlZ/2FhYf9dXV3/hYWF//f39////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/f3/fuq3/wLrqP8C7rr/A/fY/wP66P8E/ef/DOHO/xF5bv8JFhX/AwAA/wIBAP8BAQH/AAAA/wAAAP8AAAD/PT09/8vLy/////////////////////////////////////////////////////////////////////////////////////////////Dw8P9SUlL/AgIC/wAAAP8AAAD/AAAA/wYGBv8iIiL/MTEx/zw8PP9GRkb/UFBQ/1lZWf9jY2P/a2tr/3Jycv9kZGT/z8/P////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+//+18dL/D+aZ/wLvtf8D8L//BPrg/wH85f8B/OT/B/ff/xC+rP8SU0z/BwwM/wIAAP8AAAD/AQAA/wAAAP8hISH/q6ur//7+/v///////////////////////////////////////////////////////////////////////////////////////////56env8MDAz/AAAA/wAAAP8AAAD/EhIS/y0tLf84ODj/Q0ND/05OTv9ZWVn/Y2Nj/25ubv90dHT/bm5u/1BQUP+SkpL//v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9z36f8q4ZX/Au6w/wPts/8E88n/Avvk/wH54/8C+eH/A/vf/w3v0/8Trpr/DltQ/wocGf8FAgL/AAAA/wsLC/9+fX7/8/Pz////////////////////////////////////////////////////////////////////////////////////////////1NTU/ycnJ/8AAAD/AAAA/wYGBv8kJCT/NDQ0/z8/P/9JSUj/UVFR/1JSUv9QUFD/R0dH/zY2Nv8eHh7/FRUV/19fX//w8PD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+P37/1/lpf8B66T/Au6z/wLttf8D9tL/Avrj/wL44f8B+Nz/Avja/wT62/8J89T/EM6y/xSRff8MTEH/ByMe/1diYP/h4+L//////////////////////////////////v////7////+/////f////3////+/////v/////+///////////////////29vb/UlFS/wEAAf8BAAH/Dg0O/xsbG/8dHRz/ISEh/x8gIP8fHx//FxcX/xMTE/8QEBD/Dw8O/w8PD/8NDQ3/Pj8+/9jZ2P/////////+//////////////////7//////////v////7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////l+rB/wnnmP8C7bT/Aeyx/wLtt/8E99b/Avng/wH43P8B9tr/AffX/wH31f8B+NT/BPjU/wjuyf8K2LX/HMyu/2Dmz/+W9+b/tfnu/8n68v/e+/b/6f36/+/9+//z/fv/9v38//j9/P/3/fz/9/38//b9/P/3/fz/9/38//j9+//3/fv/9/36//n++/9/goD/CAkI/wQFBf8GBwf/BwgH/wgKCf8JDQv/Cg4N/w0PDv8OEA7/DxEP/w8RD/8PEQ//DhAN/wsOCv8aHBn/pKak//v//P/4/fr/+P36//j9+v/4/Pr/+Pz6//j8+v/5/fr//v79//7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////O9eH/HuKQ/wHtr/8C7LH/Auyu/wPuuf8D+Nf/Avnc/wL32/8A9tj/APfV/wH10/8C9dH/AvXO/wH2zf8B9cr/AfPG/wTxw/8M8cT/F/DE/yjwxf838cj/Q/DH/0vxyP9S8cn/VPHI/1Twx/9T78b/VO7E/1Tuwf9U7r7/VO29/1TsvP9U7Lv/Vu26/zvQnP8Knmr/CJtm/webZP8HnGL/B5xh/widYf8KnV//CZxe/wibXf8Jmlv/CZtZ/wqbV/8Imlb/CZpU/wiXUP8quXH/VuWb/1Xkmf9V45b/VOOU/1Pikv9U4ZD/VOGO/3blo//R9eH//v7///7//v/+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/79/9I45n/Auui/wHusP8B7K7/A+us/wPwuf8D99T/Avfb/wD22P8A99X/APXU/wL10P8C9c3/APTM/wHzyP8B88f/AvLF/wHxw/8B8L7/APC7/wDwuP8A8LX/AO+z/wDtsf8A7a7/AOys/wDqq/8A6qj/AOuk/wDqof8A6aD/AOie/wDnm/8A5pj/AeeX/wLpl/8C6JX/AuiR/wHoj/8A6I3/AeeK/wTmhv8C5YX/AeSD/wLjgP8C43z/AuN7/wHief8C4XX/A+Fz/wHebv8A22r/ANpp/wDZZf8A2WP/ANlg/wHXXv8Z2m3/P+GG/2Tlmv/J89v/+/7+//7//v//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/////P7//47qvP8H447/Au2x/wDtrv8B7K3/Aeyq/wLttv8E9NH/AvfZ/wL31P8A9dP/AvXR/wL1zf8A9Mz/AfTJ/wHzxv8D8sX/AvHD/wHwvv8A8Lz/AfC5/wLwtv8C8LX/Ae2y/wHur/8B7K7/AOus/wDrqP8A66b/AOqi/wHpof8B6J//AOic/wHmmf8D5pf/AeaV/wHkk/8B5Y//AeSN/wDkiv8B44j/BOOE/wLigv8B4IH/At9+/wHgev8B33n/AN53/wLdc/8C3XH/Adxu/wHbbP8B2mv/Adpn/wHZZf8E2mT/I910/0nki/9R5I7/UOSL/2fkmv/B8tb/+/78///////+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7////+/v//2ffp/y7gjP8D66T/AO2v/wDsrf8A7Kz/Aeuo/wPtr/8E88f/AvbU/wD20/8C9NH/AvXO/wD0zP8B9Mn/AfPG/wPyxf8C8cL/AfC+/wDwvf8B8Ln/AvC2/wLwtf8B7bL/Ae6v/wHsrv8A66z/AOuo/wDrpv8A6qL/Aemh/wHon/8A6Jz/AeaZ/wLml/8B5pX/AeST/wHlj/8B5I3/AOSK/wHjiP8E44T/AuKC/wHggP8C337/AeB6/wDfef8A33b/At1z/wPdcf8B3G7/Attt/wHaa/8B2mf/Cdpo/yzgfP9P5ZH/VOWS/1fkkv9Z5JL/WuOR/2jkmP+78ND/+f37/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7/g+q2/wbkif8C7a3/Aeut/wDsq/8A7Kf/AOyl/wLrqP8D7rr/AvTM/wL20P8B9c3/APTL/wH0yP8B88b/A/LF/wLxwv8B8L7/APC9/wHwuf8C8Lb/AvC1/wHtsv8B7q//Aeyu/wDrrP8A66j/AOum/wDqov8B6aH/Aeif/wDonP8B5pn/AuaX/wHmlf8B5JP/AeWP/wHkjf8A5Ir/AeOI/wTjhP8C4oL/AeCA/wLffv8B4Hr/AN95/wDfdv8C3XP/A91y/wHcbv8B223/Atpq/xTccv894on/VOaW/1bmlv9Z5pX/XOaW/17mlv9h5Zb/Y+WV/2zlm/+0787/9v37//3+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////a9+n/M+CO/wLomv8C7K3/AOuq/wDsp/8A7Kb/Aeuk/wHqo/8C7Kn/A/C5/wL0xv8B9Mr/AfTJ/wHzx/8C8sX/AvHD/wHwv/8A8L3/AfC5/wLwtf8C8LT/Ae2y/wHur/8B7K3/AOus/wDrqP8A66b/AOqi/wDpoP8B6J//AOic/wHmmf8C5pf/AeaV/wHkk/8B5Y//AeSN/wDkiv8B44j/BOOE/wLigv8B4ID/At9+/wHfe/8A33n/AN92/wLdc/8C3XL/Adxt/wnccP8p4IH/TOaU/1vmnP9c5pz/XOab/2Dnm/9j55v/Zeeb/2jnm/9q5pz/a+eb/3Tmnv+z7sn/9fz4///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/v+i7cn/Ed+D/wTro/8B66r/AOuo/wDrp/8A6qT/AOqi/wLpoP8C6aD/Aeqk/wTusf8E8Lv/AvHB/wLyw/8C8cP/A/DB/wHwvf8B8Lv/Ae+4/wHvtv8B7bP/Au6w/wHtrv8A7K3/Aeyp/wHrqP8A6qX/Aeqh/wDpnv8A6J3/Aeea/wHnmP8B5pX/AeWU/wHlkf8B5I7/AeSL/wHjif8C44X/AeKD/wHhgf8B4H7/Ad99/wHfe/8A3nf/Atxz/wjddP8f34D/QOWT/1ronv9f6J//X+ef/2LnoP9l56D/Z+if/2non/9q6KD/beeg/3DnoP9z56D/dueg/3vnof+y7cf/8vv3/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f7///P8+v9r5qv/BOKG/wPqpv8C6qn/AOun/wDqpP8A6qL/Aemg/wHon/8A6J7/Auib/wLom/8B6J7/Auqk/wPrqv8D66z/A+ut/wPqq/8C6qj/A+qn/wPppf8D6aL/A+mg/wLonv8C6Jv/Auea/wLmmP8D5pT/A+WS/wPlkf8C5I7/AuSM/wPjif8C44n/AuKG/wLig/8B4oD/AuF+/wLhe/8B33v/Ad55/wLfdf8B3nP/Ad1x/wjccv8f33//QeWQ/1jonv9e6KD/YOif/2Pnn/9k6KD/Z+eg/2roof9t6KH/buih/3Dpof906KL/d+mi/3npo/986KP/fumj/4Hopf+u7sX/8Pv1////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+P68P9S45//BOKK/wPppf8B66b/AOqj/wDqov8B6aD/Aeif/wDonf8A6Jz/Aeea/wHmmP8C5pf/AeaU/wDllP8B5ZL/AOWQ/wHkj/8B5I7/AeON/wDjiv8A44j/AOOG/wDihP8A4YP/AeGB/wHggP8C33//At9+/wDfe/8B33j/Ad53/wDedf8A3XT/Ad1x/wDdb/8B3G7/ANts/wDbbP8A2mr/BNto/xDcbP8m33v/ROOO/1rmmf9i55v/Yuib/2TonP9m6Jz/aeee/2vnn/9u56D/cOih/3PooP906KH/d+ii/3vpo/996qP/f+mk/4Lppv+E6qf/h+qo/4nrqP+t7sP/6/rx//7+///////////////////////////////////////////////////////////////////////////////////////////////////////s///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/////f7//9n26v9G4Zn/AuOH/wTqof8B6qP/AOmi/wLpof8B6J//Aeid/wHonP8B55r/AeaZ/wLmmP8B5pX/AOWU/wHlkf8A5Y//AeSO/wHkjf8B44z/AOOJ/wDkh/8A4oX/AOKD/wDhgv8B4ID/AeB//wLffv8C333/AN95/wDfd/8B3nb/AN51/wHdc/8B3nH/AN1v/wDcbf8C223/Cttx/x3fe/844on/U+aW/2Donf9h6KD/Zeif/2fon/9p6KD/a+ih/2zoof9w6KL/ceij/3Xoo/936aT/euml/3vppf9+6qX/guqm/4TqqP+F6qn/iOmq/4rqrP+N6q3/juyt/5Hsrf+t7sP/6frw/////////////////////////////////////////////////////////////////////////////////////////////////////+z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7//9T26f9R5aL/BuKH/wPom/8B6aL/Aemi/wHpnv8C6J3/Auib/wHnmv8A5pn/AeaY/wHmlv8C5ZT/AeWR/wDlj/8B5I7/AeSN/wHji/8A5Ij/AOSH/wDihf8A4oP/AOGC/wDggP8B33//At9+/wHffP8A33n/AN93/wDedf8A3nP/At5y/wfecv8S3Xf/JOGB/znijf9M5pf/W+mg/2Hoof9l6KH/Zuii/2joov9r6aL/bOmi/27po/9x6aX/c+mm/3fpp/946af/femo/33qqP9/6qn/guqq/4Xrqv+J6qv/i+us/4vrrf+O667/keuw/5Trsf+W7LP/mu21/5vutf+w78f/5vnu//7+////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v7//+P68v9w6bT/FuKM/wnmlv8I6qD/BOmf/wLonP8B6Jv/Aeea/wDmmP8B5pf/AeaV/wHllP8B5ZH/AeWP/wHkjf8B44z/AeOL/wHjif8B44f/AOKF/wDig/8A4YH/AOCA/wHgf/8B333/Ad56/wPfef8K4Hv/E+B//x/hhP8y443/ROaY/1Pnnf9d6aL/Yemk/2TppP9m6qT/Z+qj/2rppP9s6ab/buqm/3Hqpf9z6qb/deqo/3jpqf966qv/fuqs/4DqrP+D6qz/hOqt/4bqr/+J67D/i+uw/47rsP+Q7LD/kuyz/5bstP+Y7bT/mu60/5ztuP+g7rv/o++7/6Pvvf+08Mj/5fjs//7+/v/////////////////////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v////T8+v+n8M//P+Sd/xnllP8W6Z7/Feqj/xDqof8K6J7/Buaa/wPmmP8C5pT/AuWU/wHlkf8A5I7/AeSN/wLkjf8C44v/A+OK/wPjh/8F4oX/COKG/wvhhv8S4Yf/G+SM/yXkjv8v5ZP/OuaY/0npnf9S6aL/W+mm/17qpv9g6ab/Y+mn/2Pqpf9m6qT/aOul/2zrpv9t66b/cOum/3Hsp/907Kj/duuo/3rrq/98663/f+ut/4Hrrf+E6q7/huuv/4nrr/+L67D/jeuy/4/ss/+Q7LT/k+20/5fttP+Z7bf/ne24/5/uuf+g77n/ou69/6Xvv/+o78D/qvDB/63ww/+38sr/5Pnq//3+/v///////////////////////////////////////////////////////////////////////////////+z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7////c+O3/iu3E/zrlnf8f5pn/Iuqf/ybrp/8n66f/Jeuk/yTqov8i6qH/Iumg/yPonv8k6J3/Jumd/yronP8u6Jz/M+ie/znpn/8/6aH/ROii/0rppP9Q6qb/Vuuo/1nrqP9b6qn/XOqp/1/qqP9h6qj/Yuup/2Xrqf9o66n/aeuo/2zsqf9w66n/c+up/3Xrqv937Kr/eeyr/3zsrP997az/ge2u/4Ltr/+F7LD/iOyx/4vssv+M7LL/j+2y/5Pts/+T7bb/l+23/5nuuP+b7rj/nu65/5/uuv+i77v/pvC9/6fwvv+p8MH/q/DD/6/xxP+y8sb/s/LI/7Tyyf++88//5Pnq//3+/v/+//7/////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8/v3/2Pjr/5Puyf9X567/M+Wg/yfmnP8q6aD/MOqm/zXsqP857Kr/Puyr/0DsrP9D7Kz/Ruyt/0rsrv9M7K//Teyw/0/ssP9S7LD/VO2v/1ftr/9Z7bD/Xe2w/17usf9g7rL/Ze+z/2fvs/9m7rP/aO6z/2zts/9v7bP/cO20/3LttP927LT/eey1/3vttf9+7bb/gu23/4Lut/+E7bf/he23/4ftt/+K7Lf/jey4/47tuf+S7rr/l+68/5ruvv+d7r//nu6//6Dvv/+i78D/pPDB/6fwwv+s8cX/rfDH/67xyP+w8sr/tPLK/7nyzP+6887/u/TQ/7700P/F9NT/4vnp//v9/f/////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v////////7///P8+P/O9uj/pPHU/4Xtxv9s7Lz/X+y4/1vst/9e7Lj/X+y6/1/svP9h7L3/Yuy+/2XswP9m7cL/Z+7E/2vwx/9u8cn/cPHK/3Lyy/9z8sz/dPLO/3fy0P9689L/e/PS/3zz0v9889P/fvPU/4Dz1f+C9Nf/g/XY/4X12f+I9dr/ifXb/4v03P+O9d3/j/Xd/5P13f+V9d7/lvTd/5f03f+Z9N//mvTh/5z04v+f9eP/ovXk/6X25f+n9uX/qfbm/6v15v+t9uf/sPfo/7P36P+z9+f/tPfo/7n26f+89+j/v/fp/8T46//E+Ov/xffq/8r36f/P9uf/6fn0//3//////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7///n9/f/0/fv/7/35/+79+P/u/fn/7f34/+39+P/t/fj/7f34/+z8+P/s/Pj/7f35/+79+f/v/fn/7v35/+79+f/u/fr/7/36/+/9+v/v/fr/7/36/+/9+v/v/fv/8P37/+/9+//v/vv/7/37/+/9+//u/fv/7v38//D9/P/x/vz/8f78//H9/P/x/fz/8P38//D9/f/w/f3/8P39//D9/f/v/vz/8P78//H+/P/x/v3/8v38//L9/P/z/v3/8v39//L9/f/x/f3/8/39//P9/f/0/v3/9P7+//T+/v/1/v7/9v3+//f9/f/5/v3//v//////////////////////////////////////////////////////////////////7P////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7f/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////q/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+H/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////n////R////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4////7D////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Q////jP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6n+/v5Y////9v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+////e////yD////Z/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+n+/v46/v7+Bf///6L/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wf7+/hD///8A////VP////r///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9z////AP///wD///8b////0///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////5/7+/i7+/v4A/v7+AP///wD///97//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+X/v7+A/7+/gAAAAAA////AP7+/iD////V////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////5f7+/jP///8AAAAAAAAAAAD9/f0A////AP///23////7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+J////Av///wAAAAAAAAAAAAAAAAD+/v4A/v7+D////7D/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yf///xz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+N////+D//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+3///9L////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8A////Wv////D////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////5////dP7+/gL+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8E////e/////n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f///5X+/v4L/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4K////h/////n///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////z///+c/v7+EP7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4K////ev////D////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4////k////xD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8E////Wv///+H/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6v///3D9/f0K/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/ADy8vIA/v7+Nv///7H////5/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f///8L///9B////Av///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A/v7+D////2z////W/////v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///97///99/v7+F////wD8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A+fn5AP///x////96////0/////r//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////P///9z///+H////J/z8/AH+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP39/QD///8b////VP///6P////b////9//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////5////3v///6z///9f/v7+Ifz8/AL8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A/v7+Bv7+/iD+/v5Y////i////6/////Q////2////+L////p////7f///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7f///+r////h////2v///9P///+z////kf///1////8k////CP///wD9/f0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAD////8AAAAAAAAAAAAAAAAP///8AAAAAAAAAAAAAAAAA///+AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAAAf//AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAAf8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/gAAAAAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAPgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAH//AAAAAAAAAAAAAAAAAAD//4AAAAAAAAAAAAAAAAAB///gAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////wAAAAAAAAAAAAAAAA/////gAAAAAAAAAAAAAAB//8="}},"time_used":367,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":344,"receive":23,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"breeze-shopping.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"breeze-shopping.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T04:15:46.426Z","timestamp":1785125746426,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"breeze-shopping.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 15 Jul 2026 01:06:08 GMT","end":"Tue, 13 Oct 2026 01:06:07 GMT"},"fingerprint":{"sha1":"FC:2A:A7:4D:FF:04:7D:30:4B:17:B3:A5:DB:B5:51:EC:F4:17:89:0B","sha256":"6A:08:9D:6F:EB:0E:C9:60:FA:2A:59:01:4E:AE:44:51:20:B4:4D:8B:55:ED:47:9F:26:7D:74:49:BF:79:D4:02"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: breeze-shopping.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: none\r\nPriority: u=0, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 04:15:47 GMT\r\ncontent-type: text/html\r\ncontent-length: 793\r\nlast-modified: Wed, 15 Jul 2026 02:08:19 GMT\r\netag: \"6a56eb93-319\"\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: MISS\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":793,"size_decoded":1244,"mime_type":"text/html","magic":"HTML document, ASCII text, with very long lines (509)","md5":"3b2220f53cd9cf92fcf1105a5e9d65fe","sha1":"33222cc786824b3de6c83b68f8e089f122d0f3c8","sha256":"5d04ee2fe8f11a9cf61cecb29b4d6b1b6750779cb6a5b1d1050007e1cfe7bbc3","sha512":"7348784fb945694108a7e126168cf84e2f6cfd1f3660c11a94f05aad10097e47d729ebe02daf963c323c3719adda77475adc4519ebcfb2f031a07266c248e0b3","ssdeep":"","tlshash":"a701fdc62c20e54d1710865178b6e51e8aaa4ab5a9918c207ccc2eed5be1b8ede2fc14","first_seen":"2026-07-27T03:26:41.388069Z","last_seen":"2026-07-27T04:16:18.933788Z","times_seen":2,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz1lbj48aGVhZD48bWV0YSBjaGFyc2V0PXV0Zi04PjxtZXRhIGh0dHAtZXF1aXY9WC1VQS1Db21wYXRpYmxlIGNvbnRlbnQ9IklFPWVkZ2UiPjx0aXRsZT5VTklXSURFLVNBTEVTPC90aXRsZT48c2NyaXB0PnZhciBjb3ZlclN1cHBvcnQgPSAnQ1NTJyBpbiB3aW5kb3cgJiYgdHlwZW9mIENTUy5zdXBwb3J0cyA9PT0gJ2Z1bmN0aW9uJyAmJiAoQ1NTLnN1cHBvcnRzKCd0b3A6IGVudihhKScpIHx8IENTUy5zdXBwb3J0cygndG9wOiBjb25zdGFudChhKScpKQogICAgICAgICAgICBkb2N1bWVudC53cml0ZSgnPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgdXNlci1zY2FsYWJsZT1ubywgaW5pdGlhbC1zY2FsZT0xLjAsIG1heGltdW0tc2NhbGU9MS4wLCBtaW5pbXVtLXNjYWxlPTEuMCcgKyAoY292ZXJTdXBwb3J0ID8gJywgdmlld3BvcnQtZml0PWNvdmVyJyA6ICcnKSArICciIC8+Jyk8L3NjcmlwdD48bGluayByZWw9c3R5bGVzaGVldCBocmVmPS9oNS9zdGF0aWMvaW5kZXguOTc0NjVlN2IuY3NzPjwvaGVhZD48Ym9keT48bm9zY3JpcHQ+PHN0cm9uZz5QbGVhc2UgZW5hYmxlIEphdmFTY3JpcHQgdG8gY29udGludWUuPC9zdHJvbmc+PC9ub3NjcmlwdD48ZGl2IGlkPWFwcD48L2Rpdj48c2NyaXB0IHNyYz0vaDUvc3RhdGljL2pzL2NodW5rLXZlbmRvcnMuOTlkNThlZWUuanM+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9L2g1L3N0YXRpYy9qcy9pbmRleC5hODAwZjEyMy5qcz48L3NjcmlwdD48L2JvZHk+PC9odG1sPg=="}},"time_used":1396,"timings":{"blocked":-1,"dns":311,"connect":267,"send":0,"wait":278,"receive":0,"ssl":540},"alerts":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"breeze-shopping.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"breeze-shopping.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/js/chunk-vendors.99d58eee.js","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://breeze-shopping.com/","date":"2026-07-27T04:15:48.004Z","timestamp":1785125748004,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"breeze-shopping.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 15 Jul 2026 01:06:08 GMT","end":"Tue, 13 Oct 2026 01:06:07 GMT"},"fingerprint":{"sha1":"FC:2A:A7:4D:FF:04:7D:30:4B:17:B3:A5:DB:B5:51:EC:F4:17:89:0B","sha256":"6A:08:9D:6F:EB:0E:C9:60:FA:2A:59:01:4E:AE:44:51:20:B4:4D:8B:55:ED:47:9F:26:7D:74:49:BF:79:D4:02"}}},"request":{"raw":"GET /h5/static/js/chunk-vendors.99d58eee.js HTTP/1.1\r\nHost: breeze-shopping.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://breeze-shopping.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 04:15:48 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 15 Jul 2026 02:04:11 GMT\r\nvary: Accept-Encoding, Accept-Encoding\r\netag: W/\"6a56ea9b-977df\"\r\nexpires: Mon, 03 Aug 2026 04:15:48 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\ncontent-encoding: gzip\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":620511,"size_decoded":220780,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65152), with no line terminators","md5":"664996a2203dd9ef5c0ade8f56868c15","sha1":"06186c01c702881b6c931d97121de2b9dd4f3f60","sha256":"beccab3bf55f94c38c11474b2cf160bd1ff9fb145c1eb9d0d74232c8b16d5ab6","sha512":"7a250854f1471e27a5007ce9ef14ce6dff4cd007545561a093400d15794a54fb289130f00b645e21dcafa27a1846186b19d6ffc1ba16b3e31aa3065fd533082d","ssdeep":"6144:a+sqYP0/ytNaP81AhKH+hU1Cd9wKwz2CGXNOdqJZ:aHtQo5bCRwzQ4dqJZ","tlshash":"70d4089cb285b4a607d761f1003f220bb13b6868b40b95d9f27ae4d46e7d94e6127f3c","first_seen":"2024-09-19T20:12:05.640581Z","last_seen":"2026-07-27T14:18:45.067163Z","times_seen":20,"resource_available":true,"data":"KHdpbmRvd1sid2VicGFja0pzb25wIl09d2luZG93WyJ3ZWJwYWNrSnNvbnAiXXx8W10pLnB1c2goW1siY2h1bmstdmVuZG9ycyJdLHsiMDA5NCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcixpPW4oImRhODQiKSxhPW4oImUzMzAiKSxvPW4oIjY5NjQiKSxzPW4oImYxODMiKSxjPW4oIjZkNjEiKSx1PW4oImFjYWMiKSxsPW4oIjg2MWQiKSxmPW4oIjRmYWQiKSxkPW4oIjY5ZjMiKS5lbmZvcmNlLGg9bigiY2RjZSIpLHA9IWkuQWN0aXZlWE9iamVjdCYmIkFjdGl2ZVhPYmplY3QiaW4gaSx2PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0KHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19LGc9YygiV2Vha01hcCIsdix1KTtpZihoJiZwKXtyPXUuZ2V0Q29uc3RydWN0b3IodiwiV2Vha01hcCIsITApLHMuZW5hYmxlKCk7dmFyIG09Zy5wcm90b3R5cGUsYj1hKG1bImRlbGV0ZSJdKSx5PWEobS5oYXMpLF89YShtLmdldCksdz1hKG0uc2V0KTtvKG0se2RlbGV0ZTpmdW5jdGlvbih0KXtpZihsKHQpJiYhZih0KSl7dmFyIGU9ZCh0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgciksYih0aGlzLHQpfHxlLmZyb3plblsiZGVsZXRlIl0odCl9cmV0dXJuIGIodGhpcyx0KX0saGFzOmZ1bmN0aW9uKHQpe2lmKGwodCkmJiFmKHQpKXt2YXIgZT1kKHRoaXMpO3JldHVybiBlLmZyb3plbnx8KGUuZnJvemVuPW5ldyByKSx5KHRoaXMsdCl8fGUuZnJvemVuLmhhcyh0KX1yZXR1cm4geSh0aGlzLHQpfSxnZXQ6ZnVuY3Rpb24odCl7aWYobCh0KSYmIWYodCkpe3ZhciBlPWQodGhpcyk7cmV0dXJuIGUuZnJvemVufHwoZS5mcm96ZW49bmV3IHIpLHkodGhpcyx0KT9fKHRoaXMsdCk6ZS5mcm96ZW4uZ2V0KHQpfXJldHVybiBfKHRoaXMsdCl9LHNldDpmdW5jdGlvbih0LGUpe2lmKGwodCkmJiFmKHQpKXt2YXIgbj1kKHRoaXMpO24uZnJvemVufHwobi5mcm96ZW49bmV3IHIpLHkodGhpcyx0KT93KHRoaXMsdCxlKTpuLmZyb3plbi5zZXQodCxlKX1lbHNlIHcodGhpcyx0LGUpO3JldHVybiB0aGlzfX0pfX0sIjAwYjQiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiYWMxZiIpO3ZhciByPW4oIjIzZTciKSxpPW4oImM2NWIiKSxhPW4oIjE2MjYiKSxvPW4oIjgyNWEiKSxzPW4oIjU3N2UiKSxjPWZ1bmN0aW9uKCl7dmFyIHQ9ITEsZT0vW2FjXS87cmV0dXJuIGUuZXhlYz1mdW5jdGlvbigpe3JldHVybiB0PSEwLC8uLy5leGVjLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sITA9PT1lLnRlc3QoImFiYyIpJiZ0fSgpLHU9Ly4vLnRlc3Q7cih7dGFyZ2V0OiJSZWdFeHAiLHByb3RvOiEwLGZvcmNlZDohY30se3Rlc3Q6ZnVuY3Rpb24odCl7dmFyIGU9byh0aGlzKSxuPXModCkscj1lLmV4ZWM7aWYoIWEocikpcmV0dXJuIGkodSxlLG4pO3ZhciBjPWkocixlLG4pO3JldHVybiBudWxsIT09YyYmKG8oYyksITApfX0pfSwiMDBkZSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZTk3MSIpLGk9bigiZDI1ZSIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sIjAwZWUiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJiNjIyIiksaT1yKCJ0b1N0cmluZ1RhZyIpLGE9e307YVtpXT0ieiIsdC5leHBvcnRzPSJbb2JqZWN0IHpdIj09PVN0cmluZyhhKX0sIjAxMzgiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUsbil7cmV0dXJuIHQ+ZS1uJiZ0PGUrbn1mdW5jdGlvbiBpKHQsZSl7cmV0dXJuIHIodCwwLGUpfWZ1bmN0aW9uIGEodCxlLG4pe3RoaXMuX209dCx0aGlzLl9rPWUsdGhpcy5fYz1uLHRoaXMuX3NvbHV0aW9uPW51bGwsdGhpcy5fZW5kUG9zaXRpb249MCx0aGlzLl9zdGFydFRpbWU9MH1uKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuU3ByaW5nPWEsYS5wcm90b3R5cGUuX3NvbHZlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fYyxyPXRoaXMuX20saT10aGlzLl9rLGE9bipuLTQqcippO2lmKDA9PT1hKXt2YXIgbz0tbi8oMipyKSxzPXQsYz1lLyhvKnQpO3JldHVybnt4OmZ1bmN0aW9uKHQpe3JldHVybihzK2MqdCkqTWF0aC5wb3coTWF0aC5FLG8qdCl9LGR4OmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgucG93KE1hdGguRSxvKnQpO3JldHVybiBvKihzK2MqdCkqZStjKmV9fX1pZihhPjApe3ZhciB1PSgtbi1NYXRoLnNxcnQoYSkpLygyKnIpLGw9KC1uK01hdGguc3FydChhKSkvKDIqciksZj0oZS11KnQpLyhsLXUpLGQ9dC1mO3JldHVybnt4OmZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuIHQ9PT10aGlzLl90JiYoZT10aGlzLl9wb3dFUjFULG49dGhpcy5fcG93RVIyVCksdGhpcy5fdD10LGV8fChlPXRoaXMuX3Bvd0VSMVQ9TWF0aC5wb3coTWF0aC5FLHUqdCkpLG58fChuPXRoaXMuX3Bvd0VSMlQ9TWF0aC5wb3coTWF0aC5FLGwqdCkpLGQqZStmKm59LGR4OmZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuIHQ9PT10aGlzLl90JiYoZT10aGlzLl9wb3dFUjFULG49dGhpcy5fcG93RVIyVCksdGhpcy5fdD10LGV8fChlPXRoaXMuX3Bvd0VSMVQ9TWF0aC5wb3coTWF0aC5FLHUqdCkpLG58fChuPXRoaXMuX3Bvd0VSMlQ9TWF0aC5wb3coTWF0aC5FLGwqdCkpLGQqdSplK2YqbCpufX19dmFyIGg9TWF0aC5zcXJ0KDQqcippLW4qbikvKDIqcikscD0tbi8yKnIsdj10LGc9KGUtcCp0KS9oO3JldHVybnt4OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyhNYXRoLkUscCp0KSoodipNYXRoLmNvcyhoKnQpK2cqTWF0aC5zaW4oaCp0KSl9LGR4OmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgucG93KE1hdGguRSxwKnQpLG49TWF0aC5jb3MoaCp0KSxyPU1hdGguc2luKGgqdCk7cmV0dXJuIGUqKGcqaCpuLXYqaCpyKStwKmUqKGcqcit2Km4pfX19LGEucHJvdG90eXBlLng9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksdGhpcy5fc29sdXRpb24/dGhpcy5fZW5kUG9zaXRpb24rdGhpcy5fc29sdXRpb24ueCh0KTowfSxhLnByb3RvdHlwZS5keD1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9KChuZXcgRGF0ZSkuZ2V0VGltZSgpLXRoaXMuX3N0YXJ0VGltZSkvMWUzKSx0aGlzLl9zb2x1dGlvbj90aGlzLl9zb2x1dGlvbi5keCh0KTowfSxhLnByb3RvdHlwZS5zZXRFbmQ9ZnVuY3Rpb24odCxlLG4pe2lmKG58fChuPShuZXcgRGF0ZSkuZ2V0VGltZSgpKSx0IT09dGhpcy5fZW5kUG9zaXRpb258fCFpKGUsLjQpKXtlPWV8fDA7dmFyIHI9dGhpcy5fZW5kUG9zaXRpb247dGhpcy5fc29sdXRpb24mJihpKGUsLjQpJiYoZT10aGlzLl9zb2x1dGlvbi5keCgobi10aGlzLl9zdGFydFRpbWUpLzFlMykpLHI9dGhpcy5fc29sdXRpb24ueCgobi10aGlzLl9zdGFydFRpbWUpLzFlMyksaShlLC40KSYmKGU9MCksaShyLC40KSYmKHI9MCkscis9dGhpcy5fZW5kUG9zaXRpb24pLHRoaXMuX3NvbHV0aW9uJiZpKHItdCwuNCkmJmkoZSwuNCl8fCh0aGlzLl9lbmRQb3NpdGlvbj10LHRoaXMuX3NvbHV0aW9uPXRoaXMuX3NvbHZlKHItdGhpcy5fZW5kUG9zaXRpb24sZSksdGhpcy5fc3RhcnRUaW1lPW4pfX0sYS5wcm90b3R5cGUuc25hcD1mdW5jdGlvbih0KXt0aGlzLl9zdGFydFRpbWU9KG5ldyBEYXRlKS5nZXRUaW1lKCksdGhpcy5fZW5kUG9zaXRpb249dCx0aGlzLl9zb2x1dGlvbj17eDpmdW5jdGlvbigpe3JldHVybiAwfSxkeDpmdW5jdGlvbigpe3JldHVybiAwfX19LGEucHJvdG90eXBlLmRvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIHR8fCh0PShuZXcgRGF0ZSkuZ2V0VGltZSgpKSxyKHRoaXMueCgpLHRoaXMuX2VuZFBvc2l0aW9uLC40KSYmaSh0aGlzLmR4KCksLjQpfSxhLnByb3RvdHlwZS5yZWNvbmZpZ3VyZT1mdW5jdGlvbih0LGUsbil7dGhpcy5fbT10LHRoaXMuX2s9ZSx0aGlzLl9jPW4sdGhpcy5kb25lKCl8fCh0aGlzLl9zb2x1dGlvbj10aGlzLl9zb2x2ZSh0aGlzLngoKS10aGlzLl9lbmRQb3NpdGlvbix0aGlzLmR4KCkpLHRoaXMuX3N0YXJ0VGltZT0obmV3IERhdGUpLmdldFRpbWUoKSl9LGEucHJvdG90eXBlLnNwcmluZ0NvbnN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2t9LGEucHJvdG90eXBlLmRhbXBpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY30sYS5wcm90b3R5cGUuY29uZmlndXJhdGlvbj1mdW5jdGlvbigpe3JldHVyblt7bGFiZWw6IlNwcmluZyBDb25zdGFudCIscmVhZDp0aGlzLnNwcmluZ0NvbnN0YW50LmJpbmQodGhpcyksd3JpdGU6ZnVuY3Rpb24odCxlKXt0LnJlY29uZmlndXJlKDEsZSx0LmRhbXBpbmcoKSl9LmJpbmQodGhpcyx0aGlzKSxtaW46MTAwLG1heDoxZTN9LHtsYWJlbDoiRGFtcGluZyIscmVhZDp0aGlzLmRhbXBpbmcuYmluZCh0aGlzKSx3cml0ZTpmdW5jdGlvbih0LGUpe3QucmVjb25maWd1cmUoMSx0LnNwcmluZ0NvbnN0YW50KCksZSl9LmJpbmQodGhpcyx0aGlzKSxtaW46MSxtYXg6NTAwfV19fSwiMDE3OSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmxvYWRGb250RmFjZT1mdW5jdGlvbihlKXt2YXIgbj1lLm9wdGlvbnMscj1lLmNhbGxiYWNrSWQsaT1uLmZhbWlseSxhPW4uc291cmNlLG89bi5kZXNjLHM9dm9pZCAwPT09bz97fTpvLGM9ZG9jdW1lbnQuZm9udHM7aWYoYyl7dmFyIHU9bmV3IEZvbnRGYWNlKGksYSxzKTt1LmxvYWQoKS50aGVuKChmdW5jdGlvbigpe2MuYWRkKHUpLHQucHVibGlzaEhhbmRsZXIoIm9uTG9hZEZvbnRGYWNlQ2FsbGJhY2siLHtjYWxsYmFja0lkOnIsZGF0YTp7ZXJyTXNnOiJsb2FkRm9udEZhY2U6b2sifX0pfSkpLmNhdGNoKChmdW5jdGlvbihlKXt0LnB1Ymxpc2hIYW5kbGVyKCJvbkxvYWRGb250RmFjZUNhbGxiYWNrIix7Y2FsbGJhY2tJZDpyLGRhdGE6e2Vyck1zZzoibG9hZEZvbnRGYWNlOmZhaWwgIi5jb25jYXQoZSl9fSl9KSl9ZWxzZXt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2wuaW5uZXJUZXh0PSdAZm9udC1mYWNle2ZvbnQtZmFtaWx5OiInLmNvbmNhdChpLCciO3NyYzonKS5jb25jYXQoYSwiO2ZvbnQtc3R5bGU6IikuY29uY2F0KHMuc3R5bGUsIjtmb250LXdlaWdodDoiKS5jb25jYXQocy53ZWlnaHQsIjtmb250LXN0cmV0Y2g6IikuY29uY2F0KHMuc3RyZXRjaCwiO3VuaWNvZGUtcmFuZ2U6IikuY29uY2F0KHMudW5pY29kZVJhbmdlLCI7Zm9udC12YXJpYW50OiIpLmNvbmNhdChzLnZhcmlhbnQsIjtmb250LWZlYXR1cmUtc2V0dGluZ3M6IikuY29uY2F0KHMuZmVhdHVyZVNldHRpbmdzLCI7fSIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobCksdC5wdWJsaXNoSGFuZGxlcigib25Mb2FkRm9udEZhY2VDYWxsYmFjayIse2NhbGxiYWNrSWQ6cixkYXRhOntlcnJNc2c6ImxvYWRGb250RmFjZTpvayJ9fSl9fSxuKCI5OWFmIil9KS5jYWxsKHRoaXMsbigiYzVjMyIpKX0sIjAxYjQiOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZnVuY3Rpb24oKXt0aGlzLmhlYWQ9bnVsbCx0aGlzLnRhaWw9bnVsbH07bi5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbih0KXt2YXIgZT17aXRlbTp0LG5leHQ6bnVsbH07dGhpcy5oZWFkP3RoaXMudGFpbC5uZXh0PWU6dGhpcy5oZWFkPWUsdGhpcy50YWlsPWV9LGdldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaGVhZDtpZih0KXJldHVybiB0aGlzLmhlYWQ9dC5uZXh0LHRoaXMudGFpbD09PXQmJih0aGlzLnRhaWw9bnVsbCksdC5pdGVtfX0sdC5leHBvcnRzPW59LCIwMjA2IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS51cHgycHg9ZnVuY3Rpb24odCxlKXswPT09aSYmZnVuY3Rpb24oKXt2YXIgdD11bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKSxlPXQucGxhdGZvcm0sbj10LnBpeGVsUmF0aW8sbz10LndpbmRvd1dpZHRoO2k9byxhPW4scj0iaW9zIj09PWV9KCk7aWYodD1OdW1iZXIodCksMD09PXQpcmV0dXJuIDA7dmFyIG49X191bmlDb25maWcuZ2xvYmFsU3R5bGV8fF9fdW5pQ29uZmlnLndpbmRvd3x8e30scz1vKG4ucnB4Q2FsY01heERldmljZVdpZHRoLDk2MCksYz1vKG4ucnB4Q2FsY0Jhc2VEZXZpY2VXaWR0aCwzNzUpLHU9byhuLnJweENhbGNJbmNsdWRlV2lkdGgsNzUwKSxsPWV8fGk7bD10PT09dXx8bDw9cz9sOmM7dmFyIGY9dC83NTAqbDtmPDAmJihmPS1mKTtmPU1hdGguZmxvb3IoZisxZS00KSwwPT09ZiYmKGY9MSE9PWEmJnI/LjU6MSk7cmV0dXJuIHQ8MD8tZjpmfSxuKCJhOWUzIik7dmFyIHI9ITEsaT0wLGE9MDtmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIHQ9TnVtYmVyKHQpLGlzTmFOKHQpP2U6dH19LCIwMjkyIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIHI9bigiZGI2YSIpLGk9e2RhdGE6ZnVuY3Rpb24oKXtyZXR1cm57cHJldmlld0ltYWdlOnt2aXNpYmxlOiExfX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3Qub24oIm9uU2hvd1ByZXZpZXdJbWFnZSIsKGZ1bmN0aW9uKHQsbil7ZS5wcmV2aWV3SW1hZ2U9T2JqZWN0LmFzc2lnbih7fSx0LHt2aXNpYmxlOiEwfSksKDAsci5pc0ZuKShuKSYmZS4kbmV4dFRpY2sobil9KSksdC5vbigib25DbG9zZVByZXZpZXdJbWFnZSIsKGZ1bmN0aW9uKHQpe2UuX29uUHJldmlld0Nsb3NlKCksKDAsci5pc0ZuKSh0KSYmZS4kbmV4dFRpY2sodCl9KSksdC5vbigib25IaWRlUG9wdXAiLChmdW5jdGlvbih0KXtlLnByZXZpZXdJbWFnZS52aXNpYmxlPSExfSkpfSxtZXRob2RzOntfb25QcmV2aWV3Q2xvc2U6ZnVuY3Rpb24odCl7dGhpcy5wcmV2aWV3SW1hZ2UudmlzaWJsZT0hMX19fTtlLmRlZmF1bHQ9aX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiMDJkMiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuc2V0TmF2aWdhdGlvbkJhclRpdGxlPWUuc2V0TmF2aWdhdGlvbkJhckNvbG9yPXZvaWQgMCxuKCJjOTc1Iik7dmFyIHI9WyIjZmZmZmZmIiwiIzAwMDAwMCJdLGk9e2Zyb250Q29sb3I6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpe2lmKC0xPT09ci5pbmRleE9mKHQpKXJldHVybidpbnZhbGlkIGZyb250Q29sb3IgIicuY29uY2F0KHQsJyInKX19LGJhY2tncm91bmRDb2xvcjp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LGFuaW1hdGlvbjp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybntkdXJhdGlvbjowLHRpbWluZ0Z1bmM6ImxpbmVhciJ9fSx2YWxpZGF0b3I6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sZT1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMDtlLmFuaW1hdGlvbj17ZHVyYXRpb246dC5kdXJhdGlvbnx8MCx0aW1pbmdGdW5jOnQudGltaW5nRnVuY3x8ImxpbmVhciJ9fX19O2Uuc2V0TmF2aWdhdGlvbkJhckNvbG9yPWk7dmFyIGE9e3RpdGxlOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH19O2Uuc2V0TmF2aWdhdGlvbkJhclRpdGxlPWF9LCIwMzY2IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNDYyNSIpLGk9bigiNTllZCIpLGE9bigiNDBkNSIpLG89cihyLmJpbmQpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBpKHQpLHZvaWQgMD09PWU/dDphP28odCxlKTpmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KGUsYXJndW1lbnRzKX19fSwiMDRkMSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjM0MmYiKSxpPXIubWF0Y2goL2ZpcmVmb3hcLyhcZCspL2kpO3QuZXhwb3J0cz0hIWkmJitpWzFdfSwiMDRmOCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJkMDAiKSxpPW4oImQwMzkiKTt0LmV4cG9ydHM9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhaSgoZnVuY3Rpb24oKXt2YXIgdD1TeW1ib2woKTtyZXR1cm4hU3RyaW5nKHQpfHwhKE9iamVjdCh0KWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5bWJvbC5zaGFtJiZyJiZyPDQxfSkpfSwiMDU3ZiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImM2YjYiKSxpPW4oImZjNmEiKSxhPW4oIjI0MWMiKS5mLG89bigiNGRhZSIpLHM9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KTpbXTt0LmV4cG9ydHMuZj1mdW5jdGlvbih0KXtyZXR1cm4gcyYmIldpbmRvdyI9PXIodCk/ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBhKHQpfWNhdGNoKGUpe3JldHVybiBvKHMpfX0odCk6YShpKHQpKX19LCIwNmI5IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0LGUscil7dmFyIGk9bigiNGVhNCIpLmRlZmF1bHQ7bigiZDNiNyIpLG4oIjdhODIiKTt2YXIgYT1pKG4oImQ0ZWMiKSksbz1pKG4oImJlZTIiKSkscz1pKG4oImUxNDMiKSksYz1pKG4oIjMxMTciKSksdT1mdW5jdGlvbigpe2Z1bmN0aW9uIGkoKXsoMCxhLmRlZmF1bHQpKHRoaXMsaSksdGhpcy5faW5pdCgpfXJldHVybigwLG8uZGVmYXVsdCkoaSxbe2tleToiX2luaXQiLHZhbHVlOmZ1bmN0aW9uKCl7ZS5VbmlWaWV3SlNCcmlkZ2U9e3N1YnNjcmliZTp0LnN1YnNjcmliZSxwdWJsaXNoSGFuZGxlcjp0LnB1Ymxpc2hIYW5kbGVyLHN1YnNjcmliZUhhbmRsZXI6dC5zdWJzY3JpYmVIYW5kbGVyfSxlLlVuaVNlcnZpY2VKU0JyaWRnZT17c3Vic2NyaWJlOnIuc3Vic2NyaWJlLHB1Ymxpc2hIYW5kbGVyOnIucHVibGlzaEhhbmRsZXIsc3Vic2NyaWJlSGFuZGxlcjpyLnN1YnNjcmliZUhhbmRsZXJ9O3ZhciBpPW4oIjM1ZDAiKSxhPWkuZGVmYXVsdCxvPWkuZ2V0QXBwLHU9aS5nZXRDdXJyZW50UGFnZXM7WyJjaG9vc2VJbWFnZSJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLHQse3dyaXRhYmxlOiExLGNvbmZpZ3VyYWJsZTohMX0pfSkpLGUudW5pPWEsZS53eD1lLnVuaSxlLmdldEFwcD1vLGUuZ2V0Q3VycmVudFBhZ2VzPXUscy5kZWZhdWx0LnVzZShuKCJkNjZkIikuZGVmYXVsdCx7cm91dGVzOl9fdW5pUm91dGVzfSkscy5kZWZhdWx0LnVzZShuKCI3YWJiIikuZGVmYXVsdCx7cm91dGVzOl9fdW5pUm91dGVzfSksKDAsYy5kZWZhdWx0KShzLmRlZmF1bHQpLG4oImQ2NmEiKSxuKCJjMWRkIil9fV0pLGl9KCk7ZS5VbmlBcHA9dSxlLl9fdW5pQ29uZmlnJiZuZXcgdX0pLmNhbGwodGhpcyxuKCJjNWMzIiksbigiYzhiYSIpLG4oImE5YWEiKSl9LCIwNmM1IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuO2lmKCJzdHJpbmciPT09dHlwZW9mIHQpcmV0dXJuKDAsci5kZWZhdWx0KSh0LGUpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTsiT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSk7aWYoIk1hcCI9PT1ufHwiU2V0Ij09PW4pcmV0dXJuIEFycmF5LmZyb20odCk7aWYoIkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4oMCxyLmRlZmF1bHQpKHQsZSl9LG4oImZiNmEiKSxuKCJkM2I3IiksbigiYTYzMCIpLG4oIjNjYTMiKSxuKCJhYzFmIiksbigiMDBiNCIpO3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX0obigiNmI3NSIpKX0sIjA2Y2YiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI4M2FiIiksaT1uKCJjNjViIiksYT1uKCJkMWU3Iiksbz1uKCI1YzZjIikscz1uKCJmYzZhIiksYz1uKCJhMDRiIiksdT1uKCIxYTJkIiksbD1uKCIwY2ZiIiksZj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2UuZj1yP2Y6ZnVuY3Rpb24odCxlKXtpZih0PXModCksZT1jKGUpLGwpdHJ5e3JldHVybiBmKHQsZSl9Y2F0Y2gobil7fWlmKHUodCxlKSlyZXR1cm4gbyghaShhLmYsdCxlKSx0W2VdKX19LCIwNzM1IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zaG93VG9hc3Q9ZS5zaG93TW9kYWw9ZS5zaG93TG9hZGluZz1lLnNob3dBY3Rpb25TaGVldD12b2lkIDAsbigiYzk3NSIpLG4oImE5ZTMiKTt2YXIgaT1uKCI4MWU4IiksYT1yKG4oImYxY2EiKSksbz17dGl0bGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGNvbnRlbnQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LHNob3dDYW5jZWw6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxjYW5jZWxUZXh0Ont0eXBlOlN0cmluZyxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuKDAsaS50KSgidW5pLnNob3dNb2RhbC5jYW5jZWwiKX19LGNhbmNlbENvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIjMDAwIn0sY29uZmlybVRleHQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxpLnQpKCJ1bmkuc2hvd01vZGFsLmNvbmZpcm0iKX19LGNvbmZpcm1Db2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIzAwN2FmZiJ9LHZpc2libGU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfX07ZS5zaG93TW9kYWw9bzt2YXIgcz17dGl0bGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGljb246e2RlZmF1bHQ6InN1Y2Nlc3MiLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpey0xPT09WyJzdWNjZXNzIiwibG9hZGluZyIsImVycm9yIiwibm9uZSJdLmluZGV4T2YodCkmJihlLmljb249InN1Y2Nlc3MiKX19LGltYWdlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIiLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpe3QmJihlLmltYWdlPSgwLGEuZGVmYXVsdCkodCkpfX0sZHVyYXRpb246e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MTUwMH0sbWFzazp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LHZpc2libGU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfX07ZS5zaG93VG9hc3Q9czt2YXIgYz17dGl0bGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGljb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImxvYWRpbmcifSxkdXJhdGlvbjp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxZTh9LG1hc2s6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSx2aXNpYmxlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH19O2Uuc2hvd0xvYWRpbmc9Yzt2YXIgdT17aXRlbUxpc3Q6e3R5cGU6QXJyYXkscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOmZ1bmN0aW9uKHQsZSl7aWYoIXQubGVuZ3RoKXJldHVybiJwYXJhbWV0ZXIuaXRlbUxpc3Qgc2hvdWxkIGhhdmUgYXQgbGVhc3QgMSBpdGVtIn19LGl0ZW1Db2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIzAwMCJ9LHZpc2libGU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxwb3BvdmVyOnt0eXBlOk9iamVjdH19O2Uuc2hvd0FjdGlvblNoZWV0PXV9LCIwN2E2IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuY3JlYXRlU2Nyb2xsTGlzdGVuZXI9ZnVuY3Rpb24oZSxuKXt2YXIgbz1uLmVuYWJsZVBhZ2VTY3JvbGwscz1uLmVuYWJsZVBhZ2VSZWFjaEJvdHRvbSxjPW4ub25SZWFjaEJvdHRvbURpc3RhbmNlLHU9bi5lbmFibGVUcmFuc3BhcmVudFRpdGxlTlZpZXcsbD0hMSxmPSExLGQ9ITA7ZnVuY3Rpb24gaCgpe3ZhciBuPWdldEN1cnJlbnRQYWdlcygpO2lmKG4ubGVuZ3RoJiZuW24ubGVuZ3RoLTFdLiRwYWdlLmlkPT09ZSl7dmFyIGg9d2luZG93LnBhZ2VZT2Zmc2V0O28mJigwLGkucHVibGlzaEhhbmRsZXIpKCJvblBhZ2VTY3JvbGwiLHtzY3JvbGxUb3A6aH0sZSksdSYmdC5lbWl0KCJvblBhZ2VTY3JvbGwiLHtzY3JvbGxUb3A6aH0pLHMmJmQmJihwKCl8fChyPXNldFRpbWVvdXQocCwzMDApKSksbD0hMX1mdW5jdGlvbiBwKCl7aWYoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LGU9d2luZG93LmlubmVySGVpZ2h0LG49d2luZG93LnNjcm9sbFkscj1uPjAmJnQ+ZSYmbitlK2M+PXQsaT1NYXRoLmFicyh0LWEpPmM7cmV0dXJuIXJ8fGYmJiFpPyghciYmZiYmKGY9ITEpLCExKTooYT10LGY9ITAsITApfSgpKXJldHVybigwLGkucHVibGlzaEhhbmRsZXIpKCJvblJlYWNoQm90dG9tIix7fSxlKSxkPSExLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZD0hMH0pLDM1MCksITB9fXJldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChyKSxsfHxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaCksbD0hMH19LGUuZGlzYWJsZVNjcm9sbD1mdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCl9LGUucGFnZVNjcm9sbFRvPWZ1bmN0aW9uKHQpe3ZhciBlPXQuc2Nyb2xsVG9wLG49dC5zZWxlY3RvcixyPXQuZHVyYXRpb247aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgZSl7dmFyIGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihuKTtpZihpKXt2YXIgYT1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89YS50b3Ascz1hLmhlaWdodDtlPW8rd2luZG93LnBhZ2VZT2Zmc2V0LGUtPXN9fXZhciBjPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx1PWMuY2xpZW50SGVpZ2h0LGw9Yy5zY3JvbGxIZWlnaHQ7aWYoZT1NYXRoLm1pbihlLGwtdSksMD09PXIpcmV0dXJuIHZvaWQoYy5zY3JvbGxUb3A9ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A9ZSk7aWYod2luZG93LnNjcm9sbFk9PT1lKXJldHVybjsoZnVuY3Rpb24gdChuKXtpZihuPD0wKXdpbmRvdy5zY3JvbGxUbygwLGUpO2Vsc2V7dmFyIHI9ZS13aW5kb3cuc2Nyb2xsWTtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7d2luZG93LnNjcm9sbFRvKDAsd2luZG93LnNjcm9sbFkrci9uKjEwKSx0KG4tMTApfSkpfX0pKHIpfTt2YXIgcixpPW4oImI2NWUiKTt2YXIgYT0wfSkuY2FsbCh0aGlzLG4oImM1YzMiKSl9LCIwN2FjIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiNmY1MyIpLnZhbHVlcztyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMH0se3ZhbHVlczpmdW5jdGlvbih0KXtyZXR1cm4gaSh0KX19KX0sIjA3ZmEiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI1MGM0Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiByKHQubGVuZ3RoKX19LCIwODNhIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjBkNTEiKSxpPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZighZGVsZXRlIHRbZV0pdGhyb3cgaSgiQ2Fubm90IGRlbGV0ZSBwcm9wZXJ0eSAiK3IoZSkrIiBvZiAiK3IodCkpfX0sIjA4YzUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5lbGVtZW50TWF0Y2hlc1BvbHlmaWxsPWZ1bmN0aW9uKHQpe3QubWF0Y2hlc3x8KHQubWF0Y2hlcz10Lm1hdGNoZXNTZWxlY3Rvcnx8dC5tb3pNYXRjaGVzU2VsZWN0b3J8fHQubXNNYXRjaGVzU2VsZWN0b3J8fHQub01hdGNoZXNTZWxlY3Rvcnx8dC53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fGZ1bmN0aW9uKHQpe3ZhciBlPSh0aGlzLmRvY3VtZW50fHx0aGlzLm93bmVyRG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3JBbGwodCksbj1lLmxlbmd0aDt3aGlsZSgtLW4+PTAmJmUuaXRlbShuKSE9PXRoaXMpO3JldHVybiBuPi0xfSk7cmV0dXJuIHR9LGUuZmluZEVsbT1mdW5jdGlvbihlLG4pe2lmKCFuKXJldHVybiB0LmVycm9yKCJwYWdlIGlzIG5vdCByZWFkeSIpO2lmKCFlKXJldHVybiBuLiRlbDswO3JldHVybiBlLiRlbH0sbigiZDllMiIpLG4oImQ0MDEiKSxuKCI5OWFmIil9KS5jYWxsKHRoaXMsbigiNWE1MiIpWyJkZWZhdWx0Il0pfSwiMDkxYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIG4oInVuaS1yZXNpemUtc2Vuc29yIix7b246eyJ+YW5pbWF0aW9uc3RhcnQiOmZ1bmN0aW9uKGUpe3JldHVybiB0LnVwZGF0ZShlKX19fSxbbigiZGl2Iix7b246e3Njcm9sbDp0LnVwZGF0ZX19LFtuKCJkaXYiKV0pLG4oImRpdiIse29uOntzY3JvbGw6dC51cGRhdGV9fSxbbigiZGl2IildKV0pfSxpPVtdfSwiMDk0ZCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiNmNiZCIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sIjA5YjAiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kY3JlYXRlRWxlbWVudCxlPXRoaXMuX3NlbGYuX2N8fHQ7cmV0dXJuIGUoInVuaS13ZWItdmlldyIsdGhpcy5fZyh7cmVmOiJ3ZWJ2aWV3Q29udGFpbmVyIixjbGFzczp7InVuaS13ZWJ2aWV3LS1mdWxsc2NyZWVuIjp0aGlzLmZ1bGxzY3JlZW59fSx0aGlzLiRsaXN0ZW5lcnMpLFtlKCJ2LXVuaS1yZXNpemUtc2Vuc29yIix7cmVmOiJzZW5zb3IiLG9uOntyZXNpemU6dGhpcy5fcmVzaXplfX0pXSwxKX0saT1bXX0sIjA5ZjAiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1udWxsPT10P251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLGksYSxvLHM9W10sYz0hMCx1PSExO3RyeXtpZihhPShuPW4uY2FsbCh0KSkubmV4dCwwPT09ZSl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihzLnB1c2goci52YWx1ZSkscy5sZW5ndGghPT1lKTtjPSEwKTt9Y2F0Y2gobCl7dT0hMCxpPWx9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW5bInJldHVybiJdJiYobz1uWyJyZXR1cm4iXSgpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKHUpdGhyb3cgaX19cmV0dXJuIHN9fSxuKCJhNGQzIiksbigiZTAxYSIpLG4oImQzYjciKSxuKCJkMjhiIiksbigiM2NhMyIpLG4oImRkYjAiKSxuKCIxNGQ5Iil9LCIwYTcxIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiYzk3NSIpLG4oImNhYWQiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oImM3NDAiKSxuKCI0ZGU0IiksbigiYWMxZiIpLG4oIjAwYjQiKSxuKCJhNDM0Iik7dmFyIGk9cihuKCJmMWNhIikpLGE9bigiZGI2YSIpLG89bigiOWE4OSIpLHM9bigiMDE3OSIpO3ZhciBjPXtuYW1lOiJUYWJCYXIiLHByb3BzOntwb3NpdGlvbjp7ZGVmYXVsdDoiYm90dG9tIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1bImJvdHRvbSIsInRvcCJdLmluZGV4T2YodCl9fSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIzk5OSJ9LHNlbGVjdGVkQ29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiMwMDdhZmYifSxiYWNrZ3JvdW5kQ29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGJvcmRlclN0eWxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJibGFjayJ9LGljb25mb250U3JjOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxsaXN0Ont0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX19LG1hdGNoTWVkaWE6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm57fX19LGJsdXJFZmZlY3Q6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6Im5vbmUifSxmb250U2l6ZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiMTBweCJ9LGljb25XaWR0aDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiMjRweCJ9LHNwYWNpbmc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IjNweCJ9LGhlaWdodDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiNTBweCJ9LG1pZEJ1dHRvbjp7dHlwZTpPYmplY3QsZGVmYXVsdDpudWxsfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzZWxlY3RlZEluZGV4OjAsdmlzaWJsZUxpc3Q6W10saW50ZXJuYWxNaWRCdXR0b246e319fSxjb21wdXRlZDp7dGFiYmFyQmFja2dyb3VuZENvbG9yOmZ1bmN0aW9uKCl7aWYodGhpcy5iYWNrZ3JvdW5kQ29sb3IpcmV0dXJuIHRoaXMuYmFja2dyb3VuZENvbG9yO2lmKGZ1bmN0aW9uKHQpe3JldHVybiB3aW5kb3cuQ1NTJiZDU1Muc3VwcG9ydHMmJihDU1Muc3VwcG9ydHModCl8fENTUy5zdXBwb3J0cy5hcHBseShDU1MsdC5zcGxpdCgiOiIpKSl9KCJiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KSIpJiYibm9uZSIhPT10aGlzLmJsdXJFZmZlY3Qpe2lmKCJkYXJrIj09PXRoaXMuYmx1ckVmZmVjdClyZXR1cm4icmdiKDAsIDAsIDAsIDAuOCkiO2lmKFsibGlnaHQiLCJleHRyYWxpZ2h0Il0uaW5jbHVkZXModGhpcy5ibHVyRWZmZWN0KSlyZXR1cm4icmdiKDI1MCwgMjUwLCAyNTAsIDAuOCkifXJldHVybiIjZjdmN2ZhIn0sYm9yZGVyQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4id2hpdGUiPT09dGhpcy5ib3JkZXJTdHlsZT8icmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMzKSI6ImJsYWNrIj09PXRoaXMuYm9yZGVyU3R5bGU/InJnYmEoMCwgMCwgMCwgMC4zMykiOnRoaXMuYm9yZGVyU3R5bGV9fSx3YXRjaDp7JHJvdXRlOntpbW1lZGlhdGU6ITAsaGFuZGxlcjpmdW5jdGlvbigpe3RoaXMudmlzaWJsZUxpc3QubGVuZ3RofHx0aGlzLl9pbml0VmlzaWJsZUxpc3QoKSx0aGlzLnNldFNlbGVjdGVkSW5kZXgoKX19LGxpc3Q6e2RlZXA6ITAsaGFuZGxlcjpmdW5jdGlvbigpe3RoaXMuX2luaXRWaXNpYmxlTGlzdCgpLHRoaXMuc2V0U2VsZWN0ZWRJbmRleCgpfX0sbWlkQnV0dG9uOmZ1bmN0aW9uKHQpe3RoaXMuX2luaXRWaXNpYmxlTGlzdCgpfX0sY3JlYXRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5saXN0LmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZvaWQgMD09PWUudmlzaWJsZSYmdC4kc2V0KGUsInZpc2libGUiLCEwKX0pKSx0aGlzLmljb25mb250U3JjJiYoMCxzLmxvYWRGb250RmFjZSkoe29wdGlvbnM6e2ZhbWlseToiVW5pVGFiYmFySWNvbkZvbnQiLHNvdXJjZTondXJsKCInLmNvbmNhdCh0aGlzLmljb25mb250U3JjLCciKScpfX0pfSxiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9fcGF0aF9fPXRoaXMuJHJvdXRlLnBhdGh9LG1ldGhvZHM6e2dldEljb25QYXRoOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRJbmRleD09PWUmJnQuc2VsZWN0ZWRJY29uUGF0aHx8dC5pY29uUGF0aHx8IiJ9LHNldFNlbGVjdGVkSW5kZXg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMuJHJvdXRlLm1ldGEuaXNUYWJCYXIpe3RoaXMuX19wYXRoX189dGhpcy4kcm91dGUucGF0aDt2YXIgZT10aGlzLnZpc2libGVMaXN0LmZpbmRJbmRleCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuJHJvdXRlLm1ldGEucGFnZVBhdGg9PT1lLnBhZ2VQYXRofSkpO3RoaXMuc2VsZWN0ZWRJbmRleD1lfX0sX2luaXRWaXNpYmxlTGlzdDpmdW5jdGlvbigpe3RoaXMudmlzaWJsZUxpc3Q9dGhpcy5faW5pdE1pZEJ1dHRvbih0aGlzLmxpc3QuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hMSE9PXQudmlzaWJsZX0pKSl9LF9nZXRSZWFsUGF0aDpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIixlPS9eKFthLXotXSs6KT9cL1wvL2ksbj0vXmRhdGE6LiosLiovO3JldHVybiBlLnRlc3QodCl8fG4udGVzdCh0KXx8MD09PXQuaW5kZXhPZigiLyIpfHwodD0iLyIrdCksKDAsaS5kZWZhdWx0KSh0KX0sX3N3aXRjaFRhYjpmdW5jdGlvbihlLG4pe3ZhciByPWUudGV4dCxpPWUucGFnZVBhdGgsYT1lLmlzTWlkQnV0dG9uLHM9dm9pZCAwIT09YSYmYTtpZihzKSgwLG8ucHVibGlzaCkoIm9uVGFiQmFyTWlkQnV0dG9uVGFwIik7ZWxzZXt0aGlzLnNlbGVjdGVkSW5kZXg9bjt2YXIgYz0iLyIraTtjPT09X191bmlSb3V0ZXNbMF0uYWxpYXMmJihjPSIvIik7dmFyIHU9e2luZGV4Om4sdGV4dDpyLHBhZ2VQYXRoOml9O3RoaXMuJHJvdXRlLnBhdGghPT1jPyh0aGlzLl9fcGF0aF9fPXRoaXMuJHJvdXRlLnBhdGgsdW5pLnN3aXRjaFRhYih7ZnJvbToidGFiQmFyIix1cmw6YyxkZXRhaWw6dX0pKTp0LmVtaXQoIm9uVGFiSXRlbVRhcCIsdSl9fSxfaW5pdE1pZEJ1dHRvbjpmdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gZSUyPT09MCYmKDAsYS5pc1BsYWluT2JqZWN0KSh0aGlzLm1pZEJ1dHRvbikmJih0aGlzLmludGVybmFsTWlkQnV0dG9uPU9iamVjdC5hc3NpZ24oe3dpZHRoOiI1MHB4IixoZWlnaHQ6IjUwcHgiLGljb25XaWR0aDoiMjRweCJ9LHRoaXMuaW50ZXJuYWxNaWRCdXR0b24sdGhpcy5taWRCdXR0b24pLHQuc3BsaWNlKH5+KGUvMiksMCxPYmplY3QuYXNzaWduKHt9LHRoaXMuaW50ZXJuYWxNaWRCdXR0b24se2lzTWlkQnV0dG9uOiEwfSkpKSx0fSxfdW5pVGFiYmFyQmRTdHlsZTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx7d2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHQsYmFja2dyb3VuZEltYWdlOnQuYmFja2dyb3VuZEltYWdlPyJ1cmwoJyIrdGhpcy5fZ2V0UmVhbFBhdGgodC5iYWNrZ3JvdW5kSW1hZ2UpKyInKSI6IiJ9KX19fTtlLmRlZmF1bHQ9Y30pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiMGE3NSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImM5NzUiKSxuKCJhOWUzIik7dmFyIGk9cihuKCI1ODk3IikpLGE9e25hbWU6IlRvYXN0IixtaXhpbnM6W2kuZGVmYXVsdF0scHJvcHM6e3RpdGxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxpY29uOntkZWZhdWx0OiJzdWNjZXNzIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1bInN1Y2Nlc3MiLCJsb2FkaW5nIiwiZXJyb3IiLCJub25lIl0uaW5kZXhPZih0KX19LGltYWdlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxkdXJhdGlvbjp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxNTAwfSxtYXNrOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sdmlzaWJsZTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9fSxjb21wdXRlZDp7aWNvbkNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuInN1Y2Nlc3MiPT09dGhpcy5pY29uPyJ1bmktaWNvbi1zdWNjZXNzLW5vLWNpcmNsZSI6ImxvYWRpbmciPT09dGhpcy5pY29uPyJ1bmktbG9hZGluZyI6ImVycm9yIj09PXRoaXMuaWNvbj8idW5pLWljb24tZXJyb3IiOiIifX0sYmVmb3JlVXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy52aXNpYmxlJiYodGhpcy50aW1lb3V0SWQmJmNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJZCksdGhpcy50aW1lb3V0SWQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0LmVtaXQoIm9uSGlkZVRvYXN0Iil9KSx0aGlzLmR1cmF0aW9uKSl9fTtlLmRlZmF1bHQ9YX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiMGE4NyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiN2UzNiIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sIjBiMjUiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI1OTI2IiksaT1uKCI1MGM0IiksYT1SYW5nZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXJldHVybiAwO3ZhciBlPXIodCksbj1pKGUpO2lmKGUhPT1uKXRocm93IGEoIldyb25nIGxlbmd0aCBvciBpbmRleCIpO3JldHVybiBufX0sIjBiNDIiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlOGI1IiksaT1uKCI2OGVlIiksYT1uKCI4NjFkIiksbz1uKCJiNjIyIikscz1vKCJzcGVjaWVzIiksYz1BcnJheTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIHIodCkmJihlPXQuY29uc3RydWN0b3IsaShlKSYmKGU9PT1jfHxyKGUucHJvdG90eXBlKSk/ZT12b2lkIDA6YShlKSYmKGU9ZVtzXSxudWxsPT09ZSYmKGU9dm9pZCAwKSkpLHZvaWQgMD09PWU/YzplfX0sIjBiNDMiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwNGY4Iik7dC5leHBvcnRzPXImJiEhU3ltYm9sWyJmb3IiXSYmISFTeW1ib2wua2V5Rm9yfSwiMGM0NyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImRhODQiKSxpPW4oImQ0NGUiKTtpKHIuSlNPTiwiSlNPTiIsITApfSwiMGNiMiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImUzMzAiKSxpPW4oIjdiMGIiKSxhPU1hdGguZmxvb3Isbz1yKCIiLmNoYXJBdCkscz1yKCIiLnJlcGxhY2UpLGM9cigiIi5zbGljZSksdT0vXCQoWyQmJ2BdfFxkezEsMn18PFtePl0qPikvZyxsPS9cJChbJCYnYF18XGR7MSwyfSkvZzt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4scixmLGQpe3ZhciBoPW4rdC5sZW5ndGgscD1yLmxlbmd0aCx2PWw7cmV0dXJuIHZvaWQgMCE9PWYmJihmPWkoZiksdj11KSxzKGQsdiwoZnVuY3Rpb24oaSxzKXt2YXIgdTtzd2l0Y2gobyhzLDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiB0O2Nhc2UiYCI6cmV0dXJuIGMoZSwwLG4pO2Nhc2UiJyI6cmV0dXJuIGMoZSxoKTtjYXNlIjwiOnU9ZltjKHMsMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIGw9K3M7aWYoMD09PWwpcmV0dXJuIGk7aWYobD5wKXt2YXIgZD1hKGwvMTApO3JldHVybiAwPT09ZD9pOmQ8PXA/dm9pZCAwPT09cltkLTFdP28ocywxKTpyW2QtMV0rbyhzLDEpOml9dT1yW2wtMV19cmV0dXJuIHZvaWQgMD09PXU/IiI6dX0pKX19LCIwY2NiIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZTMzMCIpLGk9bigiNTBjNCIpLGE9bigiNTc3ZSIpLG89bigiMTE0OCIpLHM9bigiMWQ4MCIpLGM9cihvKSx1PXIoIiIuc2xpY2UpLGw9TWF0aC5jZWlsLGY9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixyKXt2YXIgbyxmLGQ9YShzKGUpKSxoPWkobikscD1kLmxlbmd0aCx2PXZvaWQgMD09PXI/IiAiOmEocik7cmV0dXJuIGg8PXB8fCIiPT12P2Q6KG89aC1wLGY9Yyh2LGwoby92Lmxlbmd0aCkpLGYubGVuZ3RoPm8mJihmPXUoZiwwLG8pKSx0P2QrZjpmK2QpfX07dC5leHBvcnRzPXtzdGFydDpmKCExKSxlbmQ6ZighMCl9fSwiMGNmYiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjgzYWIiKSxpPW4oImQwMzkiKSxhPW4oImNjMTIiKTt0LmV4cG9ydHM9IXImJiFpKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoYSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpfSwiMGQwNCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIGk9cihuKCIyOTA5IikpO24oIjRkZTQiKSxuKCJkM2I3IiksbigiYzc0MCIpLG4oIjE1OWIiKSxuKCJkODFkIiksbigiYzk3NSIpLG4oIjE0ZDkiKTt2YXIgYT1uKCJkYjZhIiksbz17bmFtZToiUGlja2VyVmlldyIscHJvcHM6e3ZhbHVlOnt0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX0sdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0LmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PT10eXBlb2YgdH0pKS5sZW5ndGg9PT10Lmxlbmd0aH19LGluZGljYXRvclN0eWxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxpbmRpY2F0b3JDbGFzczp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sbWFza1N0eWxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxtYXNrQ2xhc3M6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3ZhbHVlU3luYzooMCxpLmRlZmF1bHQpKHRoaXMudmFsdWUpLGhlaWdodDozNCxpdGVtczpbXSxjaGFuZ2VTb3VyY2U6IiJ9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMudmFsdWVTeW5jLmxlbmd0aD10Lmxlbmd0aCx0LmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dCE9PW4udmFsdWVTeW5jW2VdJiZuLiRzZXQobi52YWx1ZVN5bmMsZSx0KX0pKX0sdmFsdWVTeW5jOntkZWVwOiEwLGhhbmRsZXI6ZnVuY3Rpb24odCxlKXtpZigiIj09PXRoaXMuY2hhbmdlU291cmNlKXRoaXMuX3ZhbHVlQ2hhbmdlZCh0KTtlbHNle3RoaXMuY2hhbmdlU291cmNlPSIiO3ZhciBuPXQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKTt0aGlzLiRlbWl0KCJ1cGRhdGU6dmFsdWUiLG4pLHRoaXMuJHRyaWdnZXIoImNoYW5nZSIse30se3ZhbHVlOm59KX19fX0sbWV0aG9kczp7Z2V0SXRlbUluZGV4OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZW1zLmluZGV4T2YodCl9LGdldEl0ZW1WYWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52YWx1ZVN5bmNbdGhpcy5nZXRJdGVtSW5kZXgodC4kdm5vZGUpXXx8MH0sc2V0SXRlbVZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5nZXRJdGVtSW5kZXgodC4kdm5vZGUpLHI9dGhpcy52YWx1ZVN5bmNbbl07ciE9PWUmJih0aGlzLmNoYW5nZVNvdXJjZT0idG91Y2giLHRoaXMuJHNldCh0aGlzLnZhbHVlU3luYyxuLGUpKX0sX3ZhbHVlQ2hhbmdlZDpmdW5jdGlvbih0KXt0aGlzLml0ZW1zLmZvckVhY2goKGZ1bmN0aW9uKGUsbil7ZS5jb21wb25lbnRJbnN0YW5jZS5zZXRDdXJyZW50KHRbbl18fDApfSkpfSxfcmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaGVpZ2h0O3RoaXMuaGVpZ2h0PWV9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9W107cmV0dXJuIHRoaXMuJHNsb3RzLmRlZmF1bHQmJigwLGEuZGVlcENsb25lKSh0aGlzLiRzbG90cy5kZWZhdWx0LHQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY29tcG9uZW50T3B0aW9ucyYmInYtdW5pLXBpY2tlci12aWV3LWNvbHVtbiI9PT10LmNvbXBvbmVudE9wdGlvbnMudGFnJiZlLnB1c2godCl9KSksdGhpcy5pdGVtcz1lLHQoInVuaS1waWNrZXItdmlldyIse29uOnRoaXMuJGxpc3RlbmVyc30sW3QoInYtdW5pLXJlc2l6ZS1zZW5zb3IiLHthdHRyczp7aW5pdGlhbDohMH0sb246e3Jlc2l6ZTp0aGlzLl9yZXNpemV9fSksdCgiZGl2Iix7cmVmOiJ3cmFwcGVyIixjbGFzczoidW5pLXBpY2tlci12aWV3LXdyYXBwZXIifSxlKV0pfX07ZS5kZWZhdWx0PW99LCIwZDIxIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHR9fSwiMGQyNiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImUzMzAiKSxpPUVycm9yLGE9cigiIi5yZXBsYWNlKSxvPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcoaSgienhjYXNkIikuc3RhY2spfSgpLHM9L1xuXHMqYXQgW146XSo6W15cbl0qLyxjPXMudGVzdChvKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihjJiYic3RyaW5nIj09dHlwZW9mIHQmJiFpLnByZXBhcmVTdGFja1RyYWNlKXdoaWxlKGUtLSl0PWEodCxzLCIiKTtyZXR1cm4gdH19LCIwZDUxIjpmdW5jdGlvbih0LGUpe3ZhciBuPVN0cmluZzt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBuKHQpfWNhdGNoKGUpe3JldHVybiJPYmplY3QifX19LCIwZWI2IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oIjdjMzciKSxhPW4oImQwNjYiKSxvPW4oImQwMzkiKSxzPW4oIjdjNzMiKSxjPW4oIjVjNmMiKSx1PW4oIjliZjIiKS5mLGw9bigiY2IyZCIpLGY9bigiZWRkMCIpLGQ9bigiMWEyZCIpLGg9bigiMTlhYSIpLHA9bigiODI1YSIpLHY9bigiYWExZiIpLGc9bigiZTM5MSIpLG09bigiY2Y5OCIpLGI9bigiMGQyNiIpLHk9bigiNjlmMyIpLF89bigiODNhYiIpLHc9bigiYzQzMCIpLHg9YSgiRXJyb3IiKSxTPWEoIkRPTUV4Y2VwdGlvbiIpfHxmdW5jdGlvbigpe3RyeXt2YXIgdD1hKCJNZXNzYWdlQ2hhbm5lbCIpfHxpKCJ3b3JrZXJfdGhyZWFkcyIpLk1lc3NhZ2VDaGFubmVsOyhuZXcgdCkucG9ydDEucG9zdE1lc3NhZ2UobmV3IFdlYWtNYXApfWNhdGNoKGUpe2lmKCJEQVRBX0NMT05FX0VSUiI9PWUubmFtZSYmMjU9PWUuY29kZSlyZXR1cm4gZS5jb25zdHJ1Y3Rvcn19KCksVD1TJiZTLnByb3RvdHlwZSxDPXgucHJvdG90eXBlLGs9eS5zZXQsTz15LmdldHRlckZvcigiRE9NRXhjZXB0aW9uIiksRT0ic3RhY2siaW4geCgiRE9NRXhjZXB0aW9uIiksST1mdW5jdGlvbih0KXtyZXR1cm4gZChtLHQpJiZtW3RdLm0/bVt0XS5jOjB9LFA9ZnVuY3Rpb24oKXtoKHRoaXMsTSk7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxlPWcodDwxP3ZvaWQgMDphcmd1bWVudHNbMF0pLG49Zyh0PDI/dm9pZCAwOmFyZ3VtZW50c1sxXSwiRXJyb3IiKSxyPUkobik7aWYoayh0aGlzLHt0eXBlOiJET01FeGNlcHRpb24iLG5hbWU6bixtZXNzYWdlOmUsY29kZTpyfSksX3x8KHRoaXMubmFtZT1uLHRoaXMubWVzc2FnZT1lLHRoaXMuY29kZT1yKSxFKXt2YXIgaT14KGUpO2kubmFtZT0iRE9NRXhjZXB0aW9uIix1KHRoaXMsInN0YWNrIixjKDEsYihpLnN0YWNrLDEpKSl9fSxNPVAucHJvdG90eXBlPXMoQyksQT1mdW5jdGlvbih0KXtyZXR1cm57ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OnR9fSwkPWZ1bmN0aW9uKHQpe3JldHVybiBBKChmdW5jdGlvbigpe3JldHVybiBPKHRoaXMpW3RdfSkpfTtfJiYoZihNLCJjb2RlIiwkKCJjb2RlIikpLGYoTSwibWVzc2FnZSIsJCgibWVzc2FnZSIpKSxmKE0sIm5hbWUiLCQoIm5hbWUiKSkpLHUoTSwiY29uc3RydWN0b3IiLGMoMSxQKSk7dmFyIEw9bygoZnVuY3Rpb24oKXtyZXR1cm4hKG5ldyBTIGluc3RhbmNlb2YgeCl9KSksaj1MfHxvKChmdW5jdGlvbigpe3JldHVybiBDLnRvU3RyaW5nIT09dnx8IjI6IDEiIT09U3RyaW5nKG5ldyBTKDEsMikpfSkpLFI9THx8bygoZnVuY3Rpb24oKXtyZXR1cm4gMjUhPT1uZXcgUygxLCJEYXRhQ2xvbmVFcnJvciIpLmNvZGV9KSksTj1MfHwyNSE9PVNbIkRBVEFfQ0xPTkVfRVJSIl18fDI1IT09VFsiREFUQV9DTE9ORV9FUlIiXSxCPXc/anx8Unx8TjpMO3Ioe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6Qn0se0RPTUV4Y2VwdGlvbjpCP1A6U30pO3ZhciBEPWEoIkRPTUV4Y2VwdGlvbiIpLEY9RC5wcm90b3R5cGU7Zm9yKHZhciBXIGluIGomJih3fHxTPT09RCkmJmwoRiwidG9TdHJpbmciLHYpLFImJl8mJlM9PT1EJiZmKEYsImNvZGUiLEEoKGZ1bmN0aW9uKCl7cmV0dXJuIEkocCh0aGlzKS5uYW1lKX0pKSksbSlpZihkKG0sVykpe3ZhciBIPW1bV10sVj1ILnMsVT1jKDYsSC5jKTtkKEQsVil8fHUoRCxWLFUpLGQoRixWKXx8dShGLFYsVSl9fSwiMGViYiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuc2V0U3RvcmFnZVN5bmM9ZS5zZXRTdG9yYWdlPWUucmVtb3ZlU3RvcmFnZVN5bmM9ZS5yZW1vdmVTdG9yYWdlPWUuZ2V0U3RvcmFnZVN5bmM9ZS5nZXRTdG9yYWdlPXZvaWQgMDt2YXIgcj17a2V5Ont0eXBlOlN0cmluZyxyZXF1aXJlZDohMH19O2UuZ2V0U3RvcmFnZT1yO3ZhciBpPVt7bmFtZToia2V5Iix0eXBlOlN0cmluZyxyZXF1aXJlZDohMH1dO2UuZ2V0U3RvcmFnZVN5bmM9aTt2YXIgYT17a2V5Ont0eXBlOlN0cmluZyxyZXF1aXJlZDohMH0sZGF0YTp7cmVxdWlyZWQ6ITB9fTtlLnNldFN0b3JhZ2U9YTt2YXIgbz1be25hbWU6ImtleSIsdHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LHtuYW1lOiJkYXRhIixyZXF1aXJlZDohMH1dO2Uuc2V0U3RvcmFnZVN5bmM9bzt2YXIgcz1yO2UucmVtb3ZlU3RvcmFnZT1zO3ZhciBjPWk7ZS5yZW1vdmVTdG9yYWdlU3luYz1jfSwiMGZiZSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuVU5JX1NUT1JBR0VfTE9DQUxFPWUuVEFCQkFSX0hFSUdIVD1lLlJFU1BPTlNJVkVfTUlOX1dJRFRIPWUuT05fVEhFTUVfQ0hBTkdFPWUuTkFWQkFSX0hFSUdIVD12b2lkIDA7ZS5OQVZCQVJfSEVJR0hUPTQ0O2UuVEFCQkFSX0hFSUdIVD01MDtlLlJFU1BPTlNJVkVfTUlOX1dJRFRIPTc2ODtlLlVOSV9TVE9SQUdFX0xPQ0FMRT0iVU5JX0xPQ0FMRSI7ZS5PTl9USEVNRV9DSEFOR0U9Im9uVGhlbWVDaGFuZ2UifSwiMTA3YyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwMzkiKSxpPW4oImRhODQiKSxhPWkuUmVnRXhwO3QuZXhwb3J0cz1yKChmdW5jdGlvbigpe3ZhciB0PWEoIig/PGE+YikiLCJnIik7cmV0dXJuImIiIT09dC5leGVjKCJiIikuZ3JvdXBzLmF8fCJiYyIhPT0iYiIucmVwbGFjZSh0LCIkPGE+YyIpfSkpfSwiMTBkMSI6ZnVuY3Rpb24odCxlLG4pe24oIjAwOTQiKX0sMTEwODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiYTllMyIpLG4oImM3NDAiKSxuKCJhYzFmIiksbigiMDBiNCIpLG4oImM5NzUiKTt2YXIgaT1yKG4oImYxY2EiKSksYT1uKCI2MzFhIiksbz17bmFtZToiQ3VzdG9tVGFiQmFyIixwcm9wczp7c2VsZWN0ZWQ6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH0sc2hvd0ljb246e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxkaXJlY3Rpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6Imhvcml6b250YWwifX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzZWxlY3RlZEluZGV4OnRoaXMuc2VsZWN0ZWR9fSxjb21wdXRlZDp7dGFiQmFyT3B0aW9uczpmdW5jdGlvbigpe3JldHVybiBhLnRhYkJhcn0saGFzVGFiQmFyOmZ1bmN0aW9uKCl7cmV0dXJuIGEudGFiQmFyLmxpc3QmJmEudGFiQmFyLmxpc3QubGVuZ3RofSxzaG93VGFiQmFyOmZ1bmN0aW9uKCl7dmFyIHQ9Z2V0QXBwKCk7cmV0dXJuIXR8fCF0LiRjaGlsZHJlblswXS5oaWRlVGFiQmFyfX0sd2F0Y2g6e3NlbGVjdGVkOmZ1bmN0aW9uKHQpe3RoaXMuc2VsZWN0ZWRJbmRleD10O3ZhciBlPWdldEFwcCgpLiRjaGlsZHJlblswXS4kcmVmcy50YWJCYXI7ZSYmKGUuc2VsZWN0ZWRJbmRleD10KX0sJHJvdXRlOmZ1bmN0aW9uKHQsZSl7aWYodC5tZXRhLmlzVGFiQmFyKXt2YXIgbj1hLnRhYkJhci5saXN0LmZpbmRJbmRleCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQubWV0YS5wYWdlUGF0aD09PWUucGFnZVBhdGh9KSk7bj4tMSYmKHRoaXMuc2VsZWN0ZWRJbmRleD1uKX19fSxtZXRob2RzOntfZ2V0UmVhbFBhdGg6ZnVuY3Rpb24odCl7cmV0dXJuL14oW2Etei1dKzopP1wvXC8vaS50ZXN0KHQpfHwvXmRhdGE6LiosLiovLnRlc3QodCl8fDA9PT10LmluZGV4T2YoIi8iKXx8KHQ9Ii8iK3QpLCgwLGkuZGVmYXVsdCkodCl9LF9zd2l0Y2hUYWI6ZnVuY3Rpb24oZSxuKXt2YXIgcj1lLnRleHQsaT1lLnBhZ2VQYXRoO3RoaXMuc2VsZWN0ZWRJbmRleD1uO3ZhciBhPSIvIitpO2E9PT1fX3VuaVJvdXRlc1swXS5hbGlhcyYmKGE9Ii8iKTt2YXIgbz17aW5kZXg6bix0ZXh0OnIscGFnZVBhdGg6aX07dGhpcy4kZW1pdCgib25UYWJJdGVtVGFwIixvKSx0aGlzLiRyb3V0ZS5wYXRoPT09YSYmdC5lbWl0KCJvblRhYkl0ZW1UYXAiLG8pfX19O2UuZGVmYXVsdD1vfSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LDExNDg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI1OTI2IiksaT1uKCI1NzdlIiksYT1uKCIxZDgwIiksbz1SYW5nZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1pKGEodGhpcykpLG49IiIscz1yKHQpO2lmKHM8MHx8cz09MS8wKXRocm93IG8oIldyb25nIG51bWJlciBvZiByZXBldGl0aW9ucyIpO2Zvcig7cz4wOyhzPj4+PTEpJiYoZSs9ZSkpMSZzJiYobis9ZSk7cmV0dXJuIG59fSwxMjM5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPXIobigiMzM5ZiIpKSxhPXtuYW1lOiJWaWV3IixtaXhpbnM6W2kuZGVmYXVsdF0sbGlzdGVuZXJzOnsibGFiZWwtY2xpY2siOiJjbGlja0hhbmRsZXIifX07ZS5kZWZhdWx0PWF9LDEyNzY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyYmE0IiksaT1uKCJjNjViIiksYT1uKCJlMzMwIiksbz1uKCJkNzg0Iikscz1uKCI4MjVhIiksYz1uKCI3MjM0IiksdT1uKCI0NGU3IiksbD1uKCIxZDgwIiksZj1uKCI0ODQwIiksZD1uKCI4YWE1IiksaD1uKCI1MGM0IikscD1uKCI1NzdlIiksdj1uKCJkYzRhIiksZz1uKCI0ZGFlIiksbT1uKCIxNGMzIiksYj1uKCI5MjYzIikseT1uKCI5ZjdmIiksXz1uKCJkMDM5Iiksdz15LlVOU1VQUE9SVEVEX1kseD1NYXRoLm1pbixTPVtdLnB1c2gsVD1hKC8uLy5leGVjKSxDPWEoUyksaz1hKCIiLnNsaWNlKSxPPSFfKChmdW5jdGlvbigpe3ZhciB0PS8oPzopLyxlPXQuZXhlYzt0LmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBuPSJhYiIuc3BsaXQodCk7cmV0dXJuIDIhPT1uLmxlbmd0aHx8ImEiIT09blswXXx8ImIiIT09blsxXX0pKTtvKCJzcGxpdCIsKGZ1bmN0aW9uKHQsZSxuKXt2YXIgYTtyZXR1cm4gYT0iYyI9PSJhYmJjIi5zcGxpdCgvKGIpKi8pWzFdfHw0IT0idGVzdCIuc3BsaXQoLyg/OikvLC0xKS5sZW5ndGh8fDIhPSJhYiIuc3BsaXQoLyg/OmFiKSovKS5sZW5ndGh8fDQhPSIuIi5zcGxpdCgvKC4/KSguPykvKS5sZW5ndGh8fCIuIi5zcGxpdCgvKCkoKS8pLmxlbmd0aD4xfHwiIi5zcGxpdCgvLj8vKS5sZW5ndGg/ZnVuY3Rpb24odCxuKXt2YXIgYT1wKGwodGhpcykpLG89dm9pZCAwPT09bj80Mjk0OTY3Mjk1Om4+Pj4wO2lmKDA9PT1vKXJldHVybltdO2lmKHZvaWQgMD09PXQpcmV0dXJuW2FdO2lmKCF1KHQpKXJldHVybiBpKGUsYSx0LG8pO3ZhciBzLGMsZixkPVtdLGg9KHQuaWdub3JlQ2FzZT8iaSI6IiIpKyh0Lm11bHRpbGluZT8ibSI6IiIpKyh0LnVuaWNvZGU/InUiOiIiKSsodC5zdGlja3k/InkiOiIiKSx2PTAsbT1uZXcgUmVnRXhwKHQuc291cmNlLGgrImciKTt3aGlsZShzPWkoYixtLGEpKXtpZihjPW0ubGFzdEluZGV4LGM+diYmKEMoZCxrKGEsdixzLmluZGV4KSkscy5sZW5ndGg+MSYmcy5pbmRleDxhLmxlbmd0aCYmcihTLGQsZyhzLDEpKSxmPXNbMF0ubGVuZ3RoLHY9YyxkLmxlbmd0aD49bykpYnJlYWs7bS5sYXN0SW5kZXg9PT1zLmluZGV4JiZtLmxhc3RJbmRleCsrfXJldHVybiB2PT09YS5sZW5ndGg/IWYmJlQobSwiIil8fEMoZCwiIik6QyhkLGsoYSx2KSksZC5sZW5ndGg+bz9nKGQsMCxvKTpkfToiMCIuc3BsaXQodm9pZCAwLDApLmxlbmd0aD9mdW5jdGlvbih0LG4pe3JldHVybiB2b2lkIDA9PT10JiYwPT09bj9bXTppKGUsdGhpcyx0LG4pfTplLFtmdW5jdGlvbihlLG4pe3ZhciByPWwodGhpcyksbz1jKGUpP3ZvaWQgMDp2KGUsdCk7cmV0dXJuIG8/aShvLGUscixuKTppKGEscChyKSxlLG4pfSxmdW5jdGlvbih0LHIpe3ZhciBpPXModGhpcyksbz1wKHQpLGM9bihhLGksbyxyLGEhPT1lKTtpZihjLmRvbmUpcmV0dXJuIGMudmFsdWU7dmFyIHU9ZihpLFJlZ0V4cCksbD1pLnVuaWNvZGUsdj0oaS5pZ25vcmVDYXNlPyJpIjoiIikrKGkubXVsdGlsaW5lPyJtIjoiIikrKGkudW5pY29kZT8idSI6IiIpKyh3PyJnIjoieSIpLGc9bmV3IHUodz8iXig/OiIraS5zb3VyY2UrIikiOmksdiksYj12b2lkIDA9PT1yPzQyOTQ5NjcyOTU6cj4+PjA7aWYoMD09PWIpcmV0dXJuW107aWYoMD09PW8ubGVuZ3RoKXJldHVybiBudWxsPT09bShnLG8pP1tvXTpbXTt2YXIgeT0wLF89MCxTPVtdO3doaWxlKF88by5sZW5ndGgpe2cubGFzdEluZGV4PXc/MDpfO3ZhciBULE89bShnLHc/ayhvLF8pOm8pO2lmKG51bGw9PT1PfHwoVD14KGgoZy5sYXN0SW5kZXgrKHc/XzowKSksby5sZW5ndGgpKT09PXkpXz1kKG8sXyxsKTtlbHNle2lmKEMoUyxrKG8seSxfKSksUy5sZW5ndGg9PT1iKXJldHVybiBTO2Zvcih2YXIgRT0xO0U8PU8ubGVuZ3RoLTE7RSsrKWlmKEMoUyxPW0VdKSxTLmxlbmd0aD09PWIpcmV0dXJuIFM7Xz15PVR9fXJldHVybiBDKFMsayhvLHkpKSxTfV19KSwhTyx3KX0sIjEyOWYiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPU9iamVjdC5pc3x8ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWU/MCE9PXR8fDEvdD09PTEvZTp0IT10JiZlIT1lfX0sIjEzMWEiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyM2U3IiksaT1uKCJkMmJiIik7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITB9LHtzZXRQcm90b3R5cGVPZjppfSl9LDEzODc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3RoaXMuX2RyYWc9dCx0aGlzLl9kcmFnTG9nPU1hdGgubG9nKHQpLHRoaXMuX3g9MCx0aGlzLl92PTAsdGhpcy5fc3RhcnRUaW1lPTB9bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkZyaWN0aW9uPXIsci5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy5feD10LHRoaXMuX3Y9ZSx0aGlzLl9zdGFydFRpbWU9KG5ldyBEYXRlKS5nZXRUaW1lKCl9LHIucHJvdG90eXBlLnNldFZlbG9jaXR5QnlFbmQ9ZnVuY3Rpb24odCl7dGhpcy5fdj0odC10aGlzLl94KSp0aGlzLl9kcmFnTG9nLyhNYXRoLnBvdyh0aGlzLl9kcmFnLDEwMCktMSl9LHIucHJvdG90eXBlLng9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIHZvaWQgMD09PXQmJih0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksZT10PT09dGhpcy5fZHQmJnRoaXMuX3Bvd0RyYWdEdD90aGlzLl9wb3dEcmFnRHQ6dGhpcy5fcG93RHJhZ0R0PU1hdGgucG93KHRoaXMuX2RyYWcsdCksdGhpcy5fZHQ9dCx0aGlzLl94K3RoaXMuX3YqZS90aGlzLl9kcmFnTG9nLXRoaXMuX3YvdGhpcy5fZHJhZ0xvZ30sci5wcm90b3R5cGUuZHg9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIHZvaWQgMD09PXQmJih0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksZT10PT09dGhpcy5fZHQmJnRoaXMuX3Bvd0RyYWdEdD90aGlzLl9wb3dEcmFnRHQ6dGhpcy5fcG93RHJhZ0R0PU1hdGgucG93KHRoaXMuX2RyYWcsdCksdGhpcy5fZHQ9dCx0aGlzLl92KmV9LHIucHJvdG90eXBlLmRvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5hYnModGhpcy5keCgpKTwzfSxyLnByb3RvdHlwZS5yZWNvbmZpZ3VyZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLngoKSxuPXRoaXMuZHgoKTt0aGlzLl9kcmFnPXQsdGhpcy5fZHJhZ0xvZz1NYXRoLmxvZyh0KSx0aGlzLnNldChlLG4pfSxyLnByb3RvdHlwZS5jb25maWd1cmF0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm5be2xhYmVsOiJGcmljdGlvbiIscmVhZDpmdW5jdGlvbigpe3JldHVybiB0Ll9kcmFnfSx3cml0ZTpmdW5jdGlvbihlKXt0LnJlY29uZmlndXJlKGUpfSxtaW46LjAwMSxtYXg6LjEsc3RlcDouMDAxfV19fSwiMTNkMiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwMzkiKSxpPW4oIjE2MjYiKSxhPW4oIjFhMmQiKSxvPW4oIjgzYWIiKSxzPW4oIjVlNzciKS5DT05GSUdVUkFCTEUsYz1uKCI4OTI1IiksdT1uKCI2OWYzIiksbD11LmVuZm9yY2UsZj11LmdldCxkPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxoPW8mJiFyKChmdW5jdGlvbigpe3JldHVybiA4IT09ZCgoZnVuY3Rpb24oKXt9KSwibGVuZ3RoIix7dmFsdWU6OH0pLmxlbmd0aH0pKSxwPVN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKSx2PXQuZXhwb3J0cz1mdW5jdGlvbih0LGUsbil7IlN5bWJvbCgiPT09U3RyaW5nKGUpLnNsaWNlKDAsNykmJihlPSJbIitTdHJpbmcoZSkucmVwbGFjZSgvXlN5bWJvbFwoKFteKV0qKVwpLywiJDEiKSsiXSIpLG4mJm4uZ2V0dGVyJiYoZT0iZ2V0ICIrZSksbiYmbi5zZXR0ZXImJihlPSJzZXQgIitlKSwoIWEodCwibmFtZSIpfHxzJiZ0Lm5hbWUhPT1lKSYmKG8/ZCh0LCJuYW1lIix7dmFsdWU6ZSxjb25maWd1cmFibGU6ITB9KTp0Lm5hbWU9ZSksaCYmbiYmYShuLCJhcml0eSIpJiZ0Lmxlbmd0aCE9PW4uYXJpdHkmJmQodCwibGVuZ3RoIix7dmFsdWU6bi5hcml0eX0pO3RyeXtuJiZhKG4sImNvbnN0cnVjdG9yIikmJm4uY29uc3RydWN0b3I/byYmZCh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pOnQucHJvdG90eXBlJiYodC5wcm90b3R5cGU9dm9pZCAwKX1jYXRjaChpKXt9dmFyIHI9bCh0KTtyZXR1cm4gYShyLCJzb3VyY2UiKXx8KHIuc291cmNlPXAuam9pbigic3RyaW5nIj09dHlwZW9mIGU/ZToiIikpLHR9O0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz12KChmdW5jdGlvbigpe3JldHVybiBpKHRoaXMpJiZmKHRoaXMpLnNvdXJjZXx8Yyh0aGlzKX0pLCJ0b1N0cmluZyIpfSwiMTNkNSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJkNThmIikubGVmdCxhPW4oImE2NDAiKSxvPW4oIjJkMDAiKSxzPW4oIjYwNWQiKSxjPWEoInJlZHVjZSIpLHU9IXMmJm8+NzkmJm88ODM7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFjfHx1fSx7cmVkdWNlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIGkodGhpcyx0LGUsZT4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSwiMTNmMSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZWZkNCIpLGk9bigiZTMzMDEiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LDE0NDg6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImRmYjkiKSxpPW4oImI2YjciKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcihpKHQpLGUpfX0sIjE0NWUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiN2IwYiIpLGk9bigiMjNjYiIpLGE9bigiMDdmYSIpLG89bigiMDgzYSIpLHM9TWF0aC5taW47dC5leHBvcnRzPVtdLmNvcHlXaXRoaW58fGZ1bmN0aW9uKHQsZSl7dmFyIG49cih0aGlzKSxjPWEobiksdT1pKHQsYyksbD1pKGUsYyksZj1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxkPXMoKHZvaWQgMD09PWY/YzppKGYsYykpLWwsYy11KSxoPTE7bDx1JiZ1PGwrZCYmKGg9LTEsbCs9ZC0xLHUrPWQtMSk7d2hpbGUoZC0tID4wKWwgaW4gbj9uW3VdPW5bbF06byhuLHUpLHUrPWgsbCs9aDtyZXR1cm4gbn19LCIxNGJjIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS51bmlJZE1peGluPWZ1bmN0aW9uKHQpe3QucHJvdG90eXBlLnVuaUlESGFzUm9sZT1mdW5jdGlvbih0KXt2YXIgZT1vKCksbj1lLnJvbGU7cmV0dXJuIG4uaW5kZXhPZih0KT4tMX0sdC5wcm90b3R5cGUudW5pSURIYXNQZXJtaXNzaW9uPWZ1bmN0aW9uKHQpe3ZhciBlPW8oKSxuPWUucGVybWlzc2lvbjtyZXR1cm4gdGhpcy51bmlJREhhc1JvbGUoImFkbWluIil8fG4uaW5kZXhPZih0KT4tMX0sdC5wcm90b3R5cGUudW5pSURUb2tlblZhbGlkPWZ1bmN0aW9uKCl7dmFyIHQ9bygpLGU9dC50b2tlbkV4cGlyZWQ7cmV0dXJuIGU+RGF0ZS5ub3coKX19LG4oImQ0MDEiKSxuKCI4MWIyIiksbigiMGViNiIpLG4oImI3ZWYiKSxuKCI4YmQ0IiksbigiYWMxZiIpLG4oIjUzMTkiKSxuKCIwMGI0IiksbigiZDllMiIpLG4oImQ4MWQiKSxuKCJmYjZhIiksbigiZDNiNyIpLG4oIjI1ZjAiKSxuKCJjOTc1Iik7dmFyIGk9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89IixhPS9eKD86W0EtWmEtelxkKy9dezR9KSo/KD86W0EtWmEtelxkKy9dezJ9KD86PT0pP3xbQS1aYS16XGQrL117M309Pyk/JC87ZnVuY3Rpb24gbygpe3ZhciB0LGU9dW5pLmdldFN0b3JhZ2VTeW5jKCJ1bmlfaWRfdG9rZW4iKXx8IiIsbj1lLnNwbGl0KCIuIik7aWYoIWV8fDMhPT1uLmxlbmd0aClyZXR1cm57dWlkOm51bGwscm9sZTpbXSxwZXJtaXNzaW9uOltdLHRva2VuRXhwaXJlZDowfTt0cnl7dD1KU09OLnBhcnNlKGZ1bmN0aW9uKHQpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQocih0KS5zcGxpdCgiIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4iJSIrKCIwMCIrdC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpfSkpLmpvaW4oIiIpKX0oblsxXSkpfWNhdGNoKGkpe3Rocm93IG5ldyBFcnJvcigi6I635Y+W5b2T5YmN55So5oi35L+h5oGv5Ye66ZSZ77yM6K+m57uG6ZSZ6K+v5L+h5oGv5Li677yaIitpLm1lc3NhZ2UpfXJldHVybiB0LnRva2VuRXhwaXJlZD0xZTMqdC5leHAsZGVsZXRlIHQuZXhwLGRlbGV0ZSB0LmlhdCx0fXI9ImZ1bmN0aW9uIiE9PXR5cGVvZiBhdG9iP2Z1bmN0aW9uKHQpe2lmKHQ9U3RyaW5nKHQpLnJlcGxhY2UoL1tcdFxuXGZcciBdKy9nLCIiKSwhYS50ZXN0KHQpKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGV4ZWN1dGUgJ2F0b2InIG9uICdXaW5kb3cnOiBUaGUgc3RyaW5nIHRvIGJlIGRlY29kZWQgaXMgbm90IGNvcnJlY3RseSBlbmNvZGVkLiIpO3ZhciBlO3QrPSI9PSIuc2xpY2UoMi0oMyZ0Lmxlbmd0aCkpO2Zvcih2YXIgbixyLG89IiIscz0wO3M8dC5sZW5ndGg7KWU9aS5pbmRleE9mKHQuY2hhckF0KHMrKykpPDwxOHxpLmluZGV4T2YodC5jaGFyQXQocysrKSk8PDEyfChuPWkuaW5kZXhPZih0LmNoYXJBdChzKyspKSk8PDZ8KHI9aS5pbmRleE9mKHQuY2hhckF0KHMrKykpKSxvKz02ND09PW4/U3RyaW5nLmZyb21DaGFyQ29kZShlPj4xNiYyNTUpOjY0PT09cj9TdHJpbmcuZnJvbUNoYXJDb2RlKGU+PjE2JjI1NSxlPj44JjI1NSk6U3RyaW5nLmZyb21DaGFyQ29kZShlPj4xNiYyNTUsZT4+OCYyNTUsMjU1JmUpO3JldHVybiBvfTphdG9ifSwiMTRjMiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiMDkxYSIpLGk9bigiYTUzYyIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sIjE0YzMiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJjNjViIiksaT1uKCI4MjVhIiksYT1uKCIxNjI2Iiksbz1uKCJjNmI2Iikscz1uKCI5MjYzIiksYz1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5leGVjO2lmKGEobikpe3ZhciB1PXIobix0LGUpO3JldHVybiBudWxsIT09dSYmaSh1KSx1fWlmKCJSZWdFeHAiPT09byh0KSlyZXR1cm4gcihzLHQsZSk7dGhyb3cgYygiUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlciIpfX0sIjE0ZDkiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiN2IwYiIpLGE9bigiMDdmYSIpLG89bigiM2EzNCIpLHM9bigiMzUxMSIpLGM9bigiZDAzOSIpLHU9YygoZnVuY3Rpb24oKXtyZXR1cm4gNDI5NDk2NzI5NyE9PVtdLnB1c2guY2FsbCh7bGVuZ3RoOjQyOTQ5NjcyOTZ9LDEpfSkpLGw9IWZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShbXSwibGVuZ3RoIix7d3JpdGFibGU6ITF9KS5wdXNoKCl9Y2F0Y2godCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGFyaXR5OjEsZm9yY2VkOnV8fGx9LHtwdXNoOmZ1bmN0aW9uKHQpe3ZhciBlPWkodGhpcyksbj1hKGUpLHI9YXJndW1lbnRzLmxlbmd0aDtzKG4rcik7Zm9yKHZhciBjPTA7YzxyO2MrKyllW25dPWFyZ3VtZW50c1tjXSxuKys7cmV0dXJuIG8oZSxuKSxufX0pfSwiMTRlNSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJjNjViIiksYT1uKCI1OWVkIiksbz1uKCJmMDY5Iikscz1uKCJlNjY3IiksYz1uKCIyMjY2IiksdT1uKCI1ZWVkIik7cih7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDp1fSx7YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1vLmYoZSkscj1uLnJlc29sdmUsdT1uLnJlamVjdCxsPXMoKGZ1bmN0aW9uKCl7dmFyIG49YShlLnJlc29sdmUpLG89W10scz0wLGw9MTtjKHQsKGZ1bmN0aW9uKHQpe3ZhciBhPXMrKyxjPSExO2wrKyxpKG4sZSx0KS50aGVuKChmdW5jdGlvbih0KXtjfHwoYz0hMCxvW2FdPXQsLS1sfHxyKG8pKX0pLHUpfSkpLC0tbHx8cihvKX0pKTtyZXR1cm4gbC5lcnJvciYmdShsLnZhbHVlKSxuLnByb21pc2V9fSl9LDE1MjE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiYTllMyIpLG4oImM5NzUiKSxuKCJlMjVlIiksbigiYWNkOCIpO24oImRiNmEiKTt2YXIgaT1yKG4oIjY0YjIiKSk7ZnVuY3Rpb24gYSgpe312YXIgbz17bmFtZToiS2V5Ym9hcmQiLG1peGluczpbaS5kZWZhdWx0XSxwcm9wczp7Y3Vyc29yU3BhY2luZzp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDowfSxzaG93Q29uZmlybUJhcjp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ImF1dG8ifSxhZGp1c3RQb3NpdGlvbjp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITB9LGF1dG9CbHVyOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX19LGNvbXB1dGVkOntpc0FwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT1TdHJpbmcobmF2aWdhdG9yLnZlbmRvcikuaW5kZXhPZigiQXBwbGUiKX19LGRpcmVjdGl2ZXM6e2tleWJvYXJkOntpbnNlcnRlZDpmdW5jdGlvbih0LGUsbil7bi5jb250ZXh0LmluaXRLZXlib2FyZCh0KX19fSxtZXRob2RzOntpbml0S2V5Ym9hcmQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoZnVuY3Rpb24oKXshMCxjbGVhclRpbWVvdXQodm9pZCAwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYSwhMSl9KSk7dC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoZnVuY3Rpb24oKXtlLmlzQXBwbGUmJnQuYmx1cigpLCExLGZ1bmN0aW9uKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLGEsITEpLGUuaXNBcHBsZSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3ApfSgpfSkpfX19O2UuZGVmYXVsdD1vfSwiMTU5YiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImRhODQiKSxpPW4oImZkYmMiKSxhPW4oIjc4NWEiKSxvPW4oIjE3YzIiKSxzPW4oIjkxMTIiKSxjPWZ1bmN0aW9uKHQpe2lmKHQmJnQuZm9yRWFjaCE9PW8pdHJ5e3ModCwiZm9yRWFjaCIsbyl9Y2F0Y2goZSl7dC5mb3JFYWNoPW99fTtmb3IodmFyIHUgaW4gaSlpW3VdJiZjKHJbdV0mJnJbdV0ucHJvdG90eXBlKTtjKGEpfSwxNjI2OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI4ZWExIiksaT1yLmFsbDt0LmV4cG9ydHM9ci5JU19IVE1MRERBP2Z1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fHx0PT09aX06ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9fSwiMTcwZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsZS5zdGFydEFuaW1hdGlvbj1vO3ZhciBpPXIobigiMjkwOSIpKTtmdW5jdGlvbiBhKHQpe3JldHVybi9eLT9cZCtbdXJdcHgkL2kudGVzdCh0KT90LnJlcGxhY2UoLyheLT9cZCspW3VyXXB4JC9pLChmdW5jdGlvbih0LGUpe3JldHVybiIiLmNvbmNhdCh1bmkudXB4MnB4KHBhcnNlRmxvYXQoZSkpLCJweCIpfSkpOi9eLT9bXGRcLl0rJC8udGVzdCh0KT8iIi5jb25jYXQodCwicHgiKTp0fHwiIn1mdW5jdGlvbiBvKHQpe3ZhciBlPXQuYW5pbWF0aW9uO2lmKGUmJmUuYWN0aW9ucyYmZS5hY3Rpb25zLmxlbmd0aCl7dmFyIG49MCxyPWUuYWN0aW9ucyxvPWUuYWN0aW9ucy5sZW5ndGg7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtzKCl9KSwwKX1mdW5jdGlvbiBzKCl7dmFyIGU9cltuXSxjPWUub3B0aW9uLnRyYW5zaXRpb24sdT1mdW5jdGlvbih0KXt2YXIgZT1bIm1hdHJpeCIsIm1hdHJpeDNkIiwic2NhbGUiLCJzY2FsZTNkIiwicm90YXRlM2QiLCJza2V3IiwidHJhbnNsYXRlIiwidHJhbnNsYXRlM2QiXSxuPVsic2NhbGVYIiwic2NhbGVZIiwic2NhbGVaIiwicm90YXRlIiwicm90YXRlWCIsInJvdGF0ZVkiLCJyb3RhdGVaIiwic2tld1giLCJza2V3WSIsInRyYW5zbGF0ZVgiLCJ0cmFuc2xhdGVZIiwidHJhbnNsYXRlWiJdLHI9WyJvcGFjaXR5IiwiYmFja2dyb3VuZC1jb2xvciJdLG89WyJ3aWR0aCIsImhlaWdodCIsImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSJdLHM9dC5hbmltYXRlcyxjPXQub3B0aW9uLHU9Yy50cmFuc2l0aW9uLGw9e30sZj1bXTtyZXR1cm4gcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcz10LnR5cGUsYz0oMCxpLmRlZmF1bHQpKHQuYXJncyk7aWYoZS5jb25jYXQobikuaW5jbHVkZXMocykpcy5zdGFydHNXaXRoKCJyb3RhdGUiKXx8cy5zdGFydHNXaXRoKCJza2V3Iik/Yz1jLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlRmxvYXQodCkrImRlZyJ9KSk6cy5zdGFydHNXaXRoKCJ0cmFuc2xhdGUiKSYmKGM9Yy5tYXAoYSkpLG4uaW5kZXhPZihzKT49MCYmKGMubGVuZ3RoPTEpLGYucHVzaCgiIi5jb25jYXQocywiKCIpLmNvbmNhdChjLmpvaW4oIiwiKSwiKSIpKTtlbHNlIGlmKHIuY29uY2F0KG8pLmluY2x1ZGVzKGNbMF0pKXtzPWNbMF07dmFyIHU9Y1sxXTtsW3NdPW8uaW5jbHVkZXMocyk/YSh1KTp1fX0pKSxsLnRyYW5zZm9ybT1sLndlYmtpdFRyYW5zZm9ybT1mLmpvaW4oIiAiKSxsLnRyYW5zaXRpb249bC53ZWJraXRUcmFuc2l0aW9uPU9iamVjdC5rZXlzKGwpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIiIuY29uY2F0KGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoL1tBLVpdL2csKGZ1bmN0aW9uKHQpe3JldHVybiItIi5jb25jYXQodC50b0xvd2VyQ2FzZSgpKX0pKS5yZXBsYWNlKCJ3ZWJraXQiLCItd2Via2l0Iil9KHQpLCIgIikuY29uY2F0KHUuZHVyYXRpb24sIm1zICIpLmNvbmNhdCh1LnRpbWluZ0Z1bmN0aW9uLCIgIikuY29uY2F0KHUuZGVsYXksIm1zIil9KSkuam9pbigiLCIpLGwudHJhbnNmb3JtT3JpZ2luPWwud2Via2l0VHJhbnNmb3JtT3JpZ2luPWMudHJhbnNmb3JtT3JpZ2luLGx9KGUpO09iamVjdC5rZXlzKHUpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QuJGVsLnN0eWxlW2VdPXVbZV19KSksbis9MSxuPG8mJnNldFRpbWVvdXQocyxjLmR1cmF0aW9uK2MuZGVsYXkpfX1uKCJhYzFmIiksbigiMDBiNCIpLG4oIjUzMTkiKSxuKCJhY2Q4IiksbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJjYWFkIiksbigiMjUzMiIpLG4oIjk5YWYiKSxuKCIyY2EwIiksbigiZDgxZCIpLG4oImM5NzUiKSxuKCIxNGQ5IiksbigiYjY0YiIpO3ZhciBzPXtwcm9wczpbImFuaW1hdGlvbiJdLHdhdGNoOnthbmltYXRpb246ZnVuY3Rpb24oKXtvKHRoaXMpfX0sbW91bnRlZDpmdW5jdGlvbigpe28odGhpcyl9fTtlLmRlZmF1bHQ9c30sMTc0MzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKSxuLmQoZSwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksbi5kKGUsImEiLChmdW5jdGlvbigpe30pKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuJGNyZWF0ZUVsZW1lbnQsZT10aGlzLl9zZWxmLl9jfHx0O3JldHVybiBlKCJ1bmktcGFnZS13cmFwcGVyIixbZSgidW5pLXBhZ2UtYm9keSIsW3RoaXMuX3QoImRlZmF1bHQiKV0sMildLDEpfSxpPVtdfSwiMTdjMiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJiNzI3IikuZm9yRWFjaCxpPW4oImE2NDAiKSxhPWkoImZvckVhY2giKTt0LmV4cG9ydHM9YT9bXS5mb3JFYWNoOmZ1bmN0aW9uKHQpe3JldHVybiByKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSwiMTgyZCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImY4Y2QiKSxpPVJhbmdlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49cih0KTtpZihuJWUpdGhyb3cgaSgiV3Jvbmcgb2Zmc2V0Iik7cmV0dXJuIG59fSwxODc2OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjA5YjAiKSxpPW4oIjI0NTciKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LDE4OTY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZmU4MSIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sIjE5YWEiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIzYTliIiksaT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYocihlLHQpKXJldHVybiB0O3Rocm93IGkoIkluY29ycmVjdCBpbnZvY2F0aW9uIil9fSwiMTliZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbigpe3ZhciB0O3JldHVybnthcmdzOmZ1bmN0aW9uKGUsbil7dD1zKGUuZXZlbnRzKSxlLnVybCYmKGUudXJsPWUudXJsKygtMT09PWUudXJsLmluZGV4T2YoIj8iKT8iPyI6IiYiKSsiX19pZF9fPSIrdC5pZCl9LHJldHVyblZhbHVlOmZ1bmN0aW9uKGUsbil7ZS5ldmVudENoYW5uZWw9dH19fSxlLmdldEV2ZW50Q2hhbm5lbD1mdW5jdGlvbih0KXt2YXIgZT1hW3RdO3JldHVybiBkZWxldGUgYVt0XSxlfSxlLmluaXRFdmVudENoYW5uZWw9cyxuKCJjOTc1Iik7dmFyIGk9cihuKCI1ZTEzIikpLGE9e30sbz0wO2Z1bmN0aW9uIHModCl7dmFyIGU9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXTtvKys7dmFyIG49bmV3IGkuZGVmYXVsdChvLHQpO3JldHVybiBlJiYoYVtvXT1uKSxufX0sIjFhMmQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMzMwIiksaT1uKCI3YjBiIiksYT1yKHt9Lmhhc093blByb3BlcnR5KTt0LmV4cG9ydHM9T2JqZWN0Lmhhc093bnx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gYShpKHQpLGUpfX0sIjFhMzkiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQscil7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlc3Ryb3lDb21wb25lbnRPYnNlcnZlcj1mdW5jdGlvbihlKXt2YXIgbj1lLnJlcUlkLHI9Y1tuXTtyJiYoci5kaXNjb25uZWN0KCksZGVsZXRlIGNbbl0sdC5wdWJsaXNoSGFuZGxlcigib25SZXF1ZXN0Q29tcG9uZW50T2JzZXJ2ZXIiLHtyZXFJZDpuLHJlcUVuZDohMH0pKX0sZS5yZXF1ZXN0Q29tcG9uZW50T2JzZXJ2ZXI9ZnVuY3Rpb24oZSxuKXt2YXIgdSxsPWUucmVxSWQsZj1lLmNvbXBvbmVudCxkPWUub3B0aW9ucztpZihuLl9pc1Z1ZSl1PW47ZWxzZXt2YXIgaD1nZXRDdXJyZW50UGFnZXMoKSxwPWguZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuJHBhZ2UuaWQ9PT1ufSkpO2lmKCFwKXRocm93IG5ldyBFcnJvcigiTm90IEZvdW5k77yaUGFnZVsiLmNvbmNhdChuLCJdIikpO3U9cC4kdm19dmFyIHY9KDAsYS5maW5kRWxtKShmLHUpLGc9ZC5yZWxhdGl2ZVRvU2VsZWN0b3I/di5xdWVyeVNlbGVjdG9yKGQucmVsYXRpdmVUb1NlbGVjdG9yKTpudWxsLG09Y1tsXT1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGZ1bmN0aW9uKGUsbil7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXt0LnB1Ymxpc2hIYW5kbGVyKCJvblJlcXVlc3RDb21wb25lbnRPYnNlcnZlciIse3JlcUlkOmwscmVzOntpbnRlcnNlY3Rpb25SYXRpbzpzKGUpLGludGVyc2VjdGlvblJlY3Q6byhlLmludGVyc2VjdGlvblJlY3QpLGJvdW5kaW5nQ2xpZW50UmVjdDpvKGUuYm91bmRpbmdDbGllbnRSZWN0KSxyZWxhdGl2ZVJlY3Q6byhlLnJvb3RCb3VuZHMpLHRpbWU6RGF0ZS5ub3coKSxkYXRhc2V0OigwLGkuZ2V0VGFyZ2V0RGF0YXNldCkoZS50YXJnZXQpLGlkOmUudGFyZ2V0LmlkfX0pfSkpfSkse3Jvb3Q6Zyxyb290TWFyZ2luOmQucm9vdE1hcmdpbix0aHJlc2hvbGQ6ZC50aHJlc2hvbGRzfSk7aWYoZC5vYnNlcnZlQWxsKW0uVVNFX01VVEFUSU9OX09CU0VSVkVSPSEwLEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbCh2LnF1ZXJ5U2VsZWN0b3JBbGwoZC5zZWxlY3RvciksKGZ1bmN0aW9uKHQpe3Q/bS5vYnNlcnZlKHQpOnIud2FybigiTm9kZSAiLmNvbmNhdChkLnNlbGVjdG9yLCIgaXMgbm90IGZvdW5kLiBJbnRlcnNlY3Rpb24gb2JzZXJ2ZXIgd2lsbCBub3QgdHJpZ2dlci4iKSl9KSk7ZWxzZXttLlVTRV9NVVRBVElPTl9PQlNFUlZFUj0hMTt2YXIgYj12LnF1ZXJ5U2VsZWN0b3IoZC5zZWxlY3Rvcik7aWYoIWIpcmV0dXJuIHZvaWQgci53YXJuKCJOb2RlICIuY29uY2F0KGQuc2VsZWN0b3IsIiBpcyBub3QgZm91bmQuIEludGVyc2VjdGlvbiBvYnNlcnZlciB3aWxsIG5vdCB0cmlnZ2VyLiIpKTttLm9ic2VydmUoYil9fSxuKCI3ZGIwIiksbigiZDNiNyIpLG4oImQ5ZTIiKSxuKCJkNDAxIiksbigiMTU5YiIpLG4oImQ4MWQiKSxuKCI1YWJlIik7dmFyIGk9bigiZjRmMCIpLGE9bigiMDhjNSIpO2Z1bmN0aW9uIG8odCl7cmV0dXJue2JvdHRvbTp0LmJvdHRvbSxoZWlnaHQ6dC5oZWlnaHQsbGVmdDp0LmxlZnQscmlnaHQ6dC5yaWdodCx0b3A6dC50b3Asd2lkdGg6dC53aWR0aH19ZnVuY3Rpb24gcyh0KXt2YXIgZT10LmludGVyc2VjdGlvblJhdGlvLG49dC5ib3VuZGluZ0NsaWVudFJlY3Qscj1uLmhlaWdodCxpPW4ud2lkdGgsYT10LmludGVyc2VjdGlvblJlY3Qsbz1hLmhlaWdodCxzPWEud2lkdGg7cmV0dXJuIDAhPT1lP2U6bz09PXI/cy9pOm8vcn12YXIgYz17fX0pLmNhbGwodGhpcyxuKCJjNWMzIiksbigiNWE1MiIpWyJkZWZhdWx0Il0pfSwiMWIxYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRjcmVhdGVFbGVtZW50LGU9dGhpcy5fc2VsZi5fY3x8dDtyZXR1cm4gZSgidW5pLW1vdmFibGUtdmlldyIsdGhpcy5fZyh7fSx0aGlzLiRsaXN0ZW5lcnMpLFtlKCJ2LXVuaS1yZXNpemUtc2Vuc29yIix7b246e3Jlc2l6ZTp0aGlzLnNldFBhcmVudH19KSx0aGlzLl90KCJkZWZhdWx0IildLDIpfSxpPVtdfSwiMWI3MSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiOTlhZiIpO3ZhciByPW4oImRiNmEiKSxpPW4oIjk4N2QiKTtmdW5jdGlvbiBhKCl7dGhpcy4kZGlzcGF0Y2goIkZvcm0iLCJ1bmktZm9ybS1ncm91cC11cGRhdGUiLHt0eXBlOiJhZGQiLHZtOnRoaXN9KX1mdW5jdGlvbiBvKCl7dGhpcy4kZGlzcGF0Y2goIkZvcm0iLCJ1bmktZm9ybS1ncm91cC11cGRhdGUiLHt0eXBlOiJyZW1vdmUiLHZtOnRoaXN9KX12YXIgcz17bmFtZToidW5pOi8vZm9ybS1maWVsZCIsaW5pdDpmdW5jdGlvbih0LGUpe2UuY29uc3RydWN0b3Iub3B0aW9ucy5wcm9wcyYmZS5jb25zdHJ1Y3Rvci5vcHRpb25zLnByb3BzLm5hbWUmJmUuY29uc3RydWN0b3Iub3B0aW9ucy5wcm9wcy52YWx1ZXx8KGUuY29uc3RydWN0b3Iub3B0aW9ucy5wcm9wc3x8KGUuY29uc3RydWN0b3Iub3B0aW9ucy5wcm9wcz17fSksZS5jb25zdHJ1Y3Rvci5vcHRpb25zLnByb3BzLm5hbWV8fChlLmNvbnN0cnVjdG9yLm9wdGlvbnMucHJvcHMubmFtZT10LnByb3BzLm5hbWU9e3R5cGU6U3RyaW5nfSksZS5jb25zdHJ1Y3Rvci5vcHRpb25zLnByb3BzLnZhbHVlfHwoZS5jb25zdHJ1Y3Rvci5vcHRpb25zLnByb3BzLnZhbHVlPXQucHJvcHMudmFsdWU9e3R5cGU6bnVsbH0pKSx0LnByb3BzRGF0YXx8KHQucHJvcHNEYXRhPXt9KTt2YXIgbj1lLiR2bm9kZTtpZihuJiZuLmRhdGEmJm4uZGF0YS5hdHRycyYmKCgwLHIuaGFzT3duKShuLmRhdGEuYXR0cnMsIm5hbWUiKSYmKHQucHJvcHNEYXRhLm5hbWU9bi5kYXRhLmF0dHJzLm5hbWUpLCgwLHIuaGFzT3duKShuLmRhdGEuYXR0cnMsInZhbHVlIikmJih0LnByb3BzRGF0YS52YWx1ZT1uLmRhdGEuYXR0cnMudmFsdWUpKSwhZS5jb25zdHJ1Y3Rvci5vcHRpb25zLm1ldGhvZHN8fCFlLmNvbnN0cnVjdG9yLm9wdGlvbnMubWV0aG9kcy5fZ2V0Rm9ybURhdGEpe2UuY29uc3RydWN0b3Iub3B0aW9ucy5tZXRob2RzfHwoZS5jb25zdHJ1Y3Rvci5vcHRpb25zLm1ldGhvZHM9e30pLHQubWV0aG9kc3x8KHQubWV0aG9kcz17fSk7dmFyIHM9e19nZXRGb3JtRGF0YTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWU/e2tleTp0aGlzLm5hbWUsdmFsdWU6dGhpcy52YWx1ZX06e319LF9yZXNldEZvcm1EYXRhOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZT0iIn19O09iamVjdC5hc3NpZ24oZS5jb25zdHJ1Y3Rvci5vcHRpb25zLm1ldGhvZHMscyksT2JqZWN0LmFzc2lnbih0Lm1ldGhvZHMscyksT2JqZWN0LmFzc2lnbihlLmNvbnN0cnVjdG9yLm9wdGlvbnMubWV0aG9kcyxpLmVtaXR0ZXIubWV0aG9kcyksT2JqZWN0LmFzc2lnbih0Lm1ldGhvZHMsaS5lbWl0dGVyLm1ldGhvZHMpO3ZhciBjPXQuY3JlYXRlZDtlLmNvbnN0cnVjdG9yLm9wdGlvbnMuY3JlYXRlZD10LmNyZWF0ZWQ9Yz9bXS5jb25jYXQoYSxjKTpbYV07dmFyIHU9dC5iZWZvcmVEZXN0cm95O2UuY29uc3RydWN0b3Iub3B0aW9ucy5iZWZvcmVEZXN0cm95PXQuYmVmb3JlRGVzdHJveT11P1tdLmNvbmNhdChvLHUpOltvXX19fTtlLmRlZmF1bHQ9c30sIjFiOWMiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjNkNDYiKTtmb3IodmFyIGkgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGkpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGkpO3ZhciBhPW4oImYwYzUiKSxvPU9iamVjdChhWyJhIl0pKHJbImRlZmF1bHQiXSx2b2lkIDAsdm9pZCAwLCExLG51bGwsbnVsbCxudWxsLCExLHZvaWQgMCx2b2lkIDApO2VbImRlZmF1bHQiXT1vLmV4cG9ydHN9LCIxYmU0IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZDA2NiIpO3QuZXhwb3J0cz1yKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpfSwiMWMyYyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVxdWVzdD1lLmNvbmZpZ01UTFM9dm9pZCAwLG4oIjRkZTQiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oImU5YzQiKSxuKCJkODFkIiksbigiYjY0YiIpLG4oIjk5YWYiKSxuKCJjOTc1IiksbigiMDdhYyIpLG4oImMxOWYiKSxuKCJhY2U0IiksbigiN2RiMCIpLG4oImE5ZTMiKTt2YXIgcj1uKCJkYjZhIiksaT17T1BUSU9OUzoiT1BUSU9OUyIsR0VUOiJHRVQiLEhFQUQ6IkhFQUQiLFBPU1Q6IlBPU1QiLFBVVDoiUFVUIixERUxFVEU6IkRFTEVURSIsVFJBQ0U6IlRSQUNFIixDT05ORUNUOiJDT05ORUNUIixQQVRDSDoiUEFUQ0gifSxhPXtKU09OOiJqc29uIn0sbz17VEVYVDoidGV4dCIsQVJSQVlCVUZGRVI6ImFycmF5YnVmZmVyIn0scz1lbmNvZGVVUklDb21wb25lbnQ7dmFyIGM9e21ldGhvZDp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQsZSl7dD0odHx8IiIpLnRvVXBwZXJDYXNlKCksZS5tZXRob2Q9T2JqZWN0LnZhbHVlcyhpKS5pbmRleE9mKHQpPDA/aS5HRVQ6dH19LGRhdGE6e3R5cGU6W09iamVjdCxTdHJpbmcsQXJyYXksQXJyYXlCdWZmZXJdLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpe2UuZGF0YT10fHwiIn19LHVybDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOmZ1bmN0aW9uKHQsZSl7ZS5tZXRob2Q9PT1pLkdFVCYmKDAsci5pc1BsYWluT2JqZWN0KShlLmRhdGEpJiZPYmplY3Qua2V5cyhlLmRhdGEpLmxlbmd0aCYmKGUudXJsPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5zcGxpdCgiIyIpLGk9blsxXXx8IiI7bj1uWzBdLnNwbGl0KCI/Iik7dmFyIGE9blsxXXx8IiI7dD1uWzBdO3ZhciBvPWEuc3BsaXQoIiYiKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpO2Zvcih2YXIgYyBpbiBhPXt9LG8uZm9yRWFjaCgoZnVuY3Rpb24odCl7dD10LnNwbGl0KCI9IiksYVt0WzBdXT10WzFdfSkpLGUpaWYoKDAsci5oYXNPd24pKGUsYykpe3ZhciB1PWVbY107InVuZGVmaW5lZCI9PT10eXBlb2YgdXx8bnVsbD09PXU/dT0iIjooMCxyLmlzUGxhaW5PYmplY3QpKHUpJiYodT1KU09OLnN0cmluZ2lmeSh1KSksYVtzKGMpXT1zKHUpfXJldHVybiBhPU9iamVjdC5rZXlzKGEpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIiIuY29uY2F0KHQsIj0iKS5jb25jYXQoYVt0XSl9KSkuam9pbigiJiIpLHQrKGE/Ij8iK2E6IiIpKyhpPyIjIitpOiIiKX0odCxlLmRhdGEpKX19LGhlYWRlcjp7dHlwZTpPYmplY3QsdmFsaWRhdG9yOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5oZWFkZXI9dHx8e307ZS5tZXRob2QhPT1pLkdFVCYmKE9iamVjdC5rZXlzKG4pLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiJjb250ZW50LXR5cGUiPT09dC50b0xvd2VyQ2FzZSgpfSkpfHwoblsiQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2pzb24iKSl9fSxkYXRhVHlwZTp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQsZSl7ZS5kYXRhVHlwZT0odHx8YS5KU09OKS50b0xvd2VyQ2FzZSgpfX0scmVzcG9uc2VUeXBlOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCxlKXt0PSh0fHwiIikudG9Mb3dlckNhc2UoKSxlLnJlc3BvbnNlVHlwZT1PYmplY3QudmFsdWVzKG8pLmluZGV4T2YodCk8MD9vLlRFWFQ6dH19LHdpdGhDcmVkZW50aWFsczp7dHlwZTpCb29sZWFufSx0aW1lb3V0Ont0eXBlOk51bWJlcn19O2UucmVxdWVzdD1jO3ZhciB1PXtjZXJ0aWZpY2F0ZXM6e3R5cGU6QXJyYXkscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe2lmKHQuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIlN0cmluZyIhPT0oMCxyLnRvUmF3VHlwZSkodC5ob3N0KX0pKSlyZXR1cm4i5Y+C5pWw6YWN572u6ZSZ6K+v77yM6K+356Gu6K6k5ZCO6YeN6K+VIn19fTtlLmNvbmZpZ01UTFM9dX0sIjFjN2UiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJiNjIyIiksaT1yKCJpdGVyYXRvciIpLGE9ITE7dHJ5e3ZhciBvPTAscz17bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOiEhbysrfX0scmV0dXJuOmZ1bmN0aW9uKCl7YT0hMH19O3NbaV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sQXJyYXkuZnJvbShzLChmdW5jdGlvbigpe3Rocm93IDJ9KSl9Y2F0Y2goYyl7fXQuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKCFlJiYhYSlyZXR1cm4hMTt2YXIgbj0hMTt0cnl7dmFyIHI9e307cltpXT1mdW5jdGlvbigpe3JldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6bj0hMH19fX0sdChyKX1jYXRjaChjKXt9cmV0dXJuIG59fSwiMWNjYyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIGk9cihuKCI3ZWU3IikpLGE9cihuKCJjZTVjIikpLG89cihuKCI0NTUyIikpLHM9e1RvYXN0OmkuZGVmYXVsdCxQcmV2aWV3SW1hZ2U6YS5kZWZhdWx0LE1vZGFsOm8uZGVmYXVsdH07ZS5kZWZhdWx0PXN9LCIxY2RjIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMzQyZiIpO3QuZXhwb3J0cz0vKD86aXBhZHxpcGhvbmV8aXBvZCkuKmFwcGxld2Via2l0L2kudGVzdChyKX0sIjFkMDIiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiYTI1OCIpLmZpbmRMYXN0SW5kZXgsYT1yLmFUeXBlZEFycmF5LG89ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kO28oImZpbmRMYXN0SW5kZXgiLChmdW5jdGlvbih0KXtyZXR1cm4gaShhKHRoaXMpLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSwiMWQxYyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjIzZTciKSxpPW4oIjgzYWIiKSxhPW4oIjM3ZTgiKS5mO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpPYmplY3QuZGVmaW5lUHJvcGVydGllcyE9PWEsc2hhbTohaX0se2RlZmluZVByb3BlcnRpZXM6YX0pfSwiMWQ4MCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjcyMzQiKSxpPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYocih0KSl0aHJvdyBpKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAiK3QpO3JldHVybiB0fX0sIjFkYTEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUsbixyLGksYSxvKXt0cnl7dmFyIHM9dFthXShvKSxjPXMudmFsdWV9Y2F0Y2godSl7cmV0dXJuIHZvaWQgbih1KX1zLmRvbmU/ZShjKTpQcm9taXNlLnJlc29sdmUoYykudGhlbihyLGkpfW4oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihpLGEpe3ZhciBvPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBzKHQpe3IobyxpLGEscyxjLCJuZXh0Iix0KX1mdW5jdGlvbiBjKHQpe3IobyxpLGEscyxjLCJ0aHJvdyIsdCl9cyh2b2lkIDApfSkpfX0sbigiZDNiNyIpfSwiMWRkZSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwMzkiKSxpPW4oImI2MjIiKSxhPW4oIjJkMDAiKSxvPWkoInNwZWNpZXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGE+PTUxfHwhcigoZnVuY3Rpb24oKXt2YXIgZT1bXSxuPWUuY29uc3RydWN0b3I9e307cmV0dXJuIG5bb109ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09ZVt0XShCb29sZWFuKS5mb299KSl9fSwiMWVhZCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImNhYWQiKSxuKCJhOWUzIiksbigiYzk3NSIpO3ZhciBpPW4oImRiNmEiKSxhPXIobigiNjRiMiIpKSxvPXIobigiMTUyMSIpKSxzPXIobigiNmI4NyIpKTt0LnN1YnNjcmliZSgiZ2V0U2VsZWN0ZWRUZXh0UmFuZ2UiLChmdW5jdGlvbihlKXt2YXIgbj1lLnBhZ2VJZCxyPWUuY2FsbGJhY2tJZCxpPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsYT1pLnRhZ05hbWUudG9Mb3dlckNhc2UoKSxvPXt9O1siaW5wdXQiLCJ0ZXh0YXJlYSJdLmluY2x1ZGVzKGEpPyhvLmVyck1zZz0iZ2V0U2VsZWN0ZWRUZXh0UmFuZ2U6b2siLG8uc3RhcnQ9aS5zZWxlY3Rpb25TdGFydCxvLmVuZD1pLnNlbGVjdGlvbkVuZCk6by5lcnJNc2c9ImdldFNlbGVjdGVkVGV4dFJhbmdlOmZhaWwgbm8gZm9jdXNlZCIsdC5wdWJsaXNoSGFuZGxlcigib25HZXRTZWxlY3RlZFRleHRSYW5nZSIse2NhbGxiYWNrSWQ6cixkYXRhOm99LG4pfSkpO3ZhciBjLHU9e25hbWU6IkZpZWxkIixtaXhpbnM6W2EuZGVmYXVsdCxvLmRlZmF1bHQscy5kZWZhdWx0XSxtb2RlbDp7cHJvcDoidmFsdWUiLGV2ZW50OiJ1cGRhdGU6dmFsdWUifSxwcm9wczp7dmFsdWU6e3R5cGU6W1N0cmluZyxOdW1iZXJdLGRlZmF1bHQ6IiJ9LGF1dG9Gb2N1czp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LGZvY3VzOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sY3Vyc29yOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0Oi0xfSxzZWxlY3Rpb25TdGFydDp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDotMX0sc2VsZWN0aW9uRW5kOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0Oi0xfSxjb25maXJtSG9sZDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LGlnbm9yZUNvbXBvc2l0aW9uRXZlbnQ6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntjb21wb3Npbmc6ITEsdmFsdWVTeW5jOnRoaXMuX2dldFZhbHVlU3RyaW5nKHRoaXMudmFsdWUsdGhpcy50eXBlKSxmb2N1c1N5bmM6dGhpcy5mb2N1cyxmaXhDb2xvcjowPT09U3RyaW5nKG5hdmlnYXRvci52ZW5kb3IpLmluZGV4T2YoIkFwcGxlIikmJkNTUy5zdXBwb3J0cygiaW1hZ2Utb3JpZW50YXRpb246ZnJvbS1pbWFnZSIpfX0sd2F0Y2g6e2ZvY3VzOmZ1bmN0aW9uKHQpe3Q/dGhpcy5fZm9jdXMoKTp0aGlzLl9ibHVyKCl9LGZvY3VzU3luYzpmdW5jdGlvbih0KXt0aGlzLiRlbWl0KCJ1cGRhdGU6Zm9jdXMiLHQpfSxjdXJzb3JOdW1iZXI6ZnVuY3Rpb24oKXt0aGlzLl9jaGVja0N1cnNvcigpfSxzZWxlY3Rpb25TdGFydE51bWJlcjpmdW5jdGlvbigpe3RoaXMuX2NoZWNrU2VsZWN0aW9uKCl9LHNlbGVjdGlvbkVuZE51bWJlcjpmdW5jdGlvbigpe3RoaXMuX2NoZWNrU2VsZWN0aW9uKCl9fSxjb21wdXRlZDp7bmVlZEZvY3VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXV0b0ZvY3VzfHx0aGlzLmZvY3VzfSxjdXJzb3JOdW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD1OdW1iZXIodGhpcy5jdXJzb3IpO3JldHVybiBpc05hTih0KT8tMTp0fSxzZWxlY3Rpb25TdGFydE51bWJlcjpmdW5jdGlvbigpe3ZhciB0PU51bWJlcih0aGlzLnNlbGVjdGlvblN0YXJ0KTtyZXR1cm4gaXNOYU4odCk/LTE6dH0sc2VsZWN0aW9uRW5kTnVtYmVyOmZ1bmN0aW9uKCl7dmFyIHQ9TnVtYmVyKHRoaXMuc2VsZWN0aW9uRW5kKTtyZXR1cm4gaXNOYU4odCk/LTE6dH19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5fX3ZhbHVlQ2hhbmdlPSgwLGkuZGVib3VuY2UpKChmdW5jdGlvbihlKXt0LnZhbHVlU3luYz10Ll9nZXRWYWx1ZVN0cmluZyhlLHQudHlwZSl9KSwxMDApO3RoaXMuJHdhdGNoKCJ2YWx1ZSIsZSksdGhpcy5fX3RyaWdnZXJJbnB1dD0oMCxpLnRocm90dGxlKSgoZnVuY3Rpb24oZSxuKXt0Ll9fdmFsdWVDaGFuZ2UuY2FuY2VsKCksdC4kZW1pdCgidXBkYXRlOnZhbHVlIixuLnZhbHVlKSx0LiR0cmlnZ2VyKCJpbnB1dCIsZSxuKX0pLDEwMCksdGhpcy4kdHJpZ2dlcklucHV0PWZ1bmN0aW9uKGUsbixyKXt0Ll9fdmFsdWVDaGFuZ2UuY2FuY2VsKCksdC5fX3RyaWdnZXJJbnB1dChlLG4pLHImJnQuX190cmlnZ2VySW5wdXQuZmx1c2goKX19LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9fdmFsdWVDaGFuZ2UuY2FuY2VsKCksdGhpcy5fX3RyaWdnZXJJbnB1dC5jYW5jZWwoKX0sZGlyZWN0aXZlczp7ZmllbGQ6e2luc2VydGVkOmZ1bmN0aW9uKHQsZSxuKXtuLmNvbnRleHQuX2luaXRGaWVsZCh0KX19fSxtZXRob2RzOntfZ2V0VmFsdWVTdHJpbmc6ZnVuY3Rpb24odCxlKXtyZXR1cm4ibnVtYmVyIj09PWUmJmlzTmFOKE51bWJlcih0KSkmJih0PSIiKSxudWxsPT09dD8iIjpTdHJpbmcodCl9LF9pbml0RmllbGQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9maWVsZD10LGM9Y3x8RGF0ZS5ub3coKSx0aGlzLm5lZWRGb2N1cyYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLl9mb2N1cygpfSkpfSxfZm9jdXM6ZnVuY3Rpb24oKXtpZih0aGlzLm5lZWRGb2N1cyl7dmFyIHQ9dGhpcy5fZmllbGQ7aWYodCl0LmZvY3VzKCk7ZWxzZSBzZXRUaW1lb3V0KHRoaXMuX2ZvY3VzLmJpbmQodGhpcyksMTAwKX19LF9ibHVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZmllbGQ7dCYmdC5ibHVyKCl9LF9vbkZvY3VzOmZ1bmN0aW9uKHQpe3RoaXMuZm9jdXNTeW5jPSEwLHRoaXMuJHRyaWdnZXIoImZvY3VzIix0LHt2YWx1ZTp0aGlzLnZhbHVlU3luY30pLHRoaXMuX2NoZWNrU2VsZWN0aW9uKCksdGhpcy5fY2hlY2tDdXJzb3IoKX0sX29uQmx1cjpmdW5jdGlvbih0KXt0aGlzLmNvbXBvc2luZyYmKHRoaXMuY29tcG9zaW5nPSExLHRoaXMuX29uSW5wdXQodCwhMCkpLHRoaXMuZm9jdXNTeW5jPSExO3ZhciBlLG49dC50YXJnZXQ7Im51bWJlciI9PT1uLnR5cGU/KG4udHlwZT0idGV4dCIsZT1uLnNlbGVjdGlvbkVuZCxuLnR5cGU9Im51bWJlciIpOmU9bi5zZWxlY3Rpb25FbmQsdGhpcy4kdHJpZ2dlcigiYmx1ciIsdCx7dmFsdWU6dGhpcy52YWx1ZVN5bmMsY3Vyc29yOmV9KX0sX2NoZWNrU2VsZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZmllbGQ7dGhpcy5mb2N1c1N5bmMmJnRoaXMuc2VsZWN0aW9uU3RhcnROdW1iZXI+LTEmJnRoaXMuc2VsZWN0aW9uRW5kTnVtYmVyPi0xJiYibnVtYmVyIiE9PXQudHlwZSYmKHQuc2VsZWN0aW9uU3RhcnQ9dGhpcy5zZWxlY3Rpb25TdGFydE51bWJlcix0LnNlbGVjdGlvbkVuZD10aGlzLnNlbGVjdGlvbkVuZE51bWJlcil9LF9jaGVja0N1cnNvcjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ZpZWxkO3RoaXMuZm9jdXNTeW5jJiZ0aGlzLnNlbGVjdGlvblN0YXJ0TnVtYmVyPDAmJnRoaXMuc2VsZWN0aW9uRW5kTnVtYmVyPDAmJnRoaXMuY3Vyc29yTnVtYmVyPi0xJiYibnVtYmVyIiE9PXQudHlwZSYmKHQuc2VsZWN0aW9uRW5kPXQuc2VsZWN0aW9uU3RhcnQ9dGhpcy5jdXJzb3JOdW1iZXIpfX19O2UuZGVmYXVsdD11fSkuY2FsbCh0aGlzLG4oImM1YzMiKSl9LCIxZWYxIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgaT1yKG4oIjUzY2EiKSk7ZnVuY3Rpb24gYSh0KXtyZXR1cm4oInVuZGVmaW5lZCI9PT10eXBlb2YgbmF2aWdhdG9yfHwoMCxpLmRlZmF1bHQpKG5hdmlnYXRvcikpJiYiR29vZ2xlIEluYy4iPT09bmF2aWdhdG9yLnZlbmRvciYmdD4xMCYmKHQ9MipNYXRoLnJvdW5kKHQvMikpLHR9dmFyIG89e25hbWU6IkltYWdlIixwcm9wczp7c3JjOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxtb2RlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJzY2FsZVRvRmlsbCJ9LGxhenlMb2FkOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sZHJhZ2dhYmxlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57b3JpZ2luYWxXaWR0aDowLG9yaWdpbmFsSGVpZ2h0OjAsb3JpZ2luYWxTdHlsZTp7d2lkdGg6IiIsaGVpZ2h0OiIifSxjb250ZW50UGF0aDoiIn19LGNvbXB1dGVkOntyYXRpbzpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9yaWdpbmFsV2lkdGgmJnRoaXMub3JpZ2luYWxIZWlnaHQ/dGhpcy5vcmlnaW5hbFdpZHRoL3RoaXMub3JpZ2luYWxIZWlnaHQ6MH0sc3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD0iYXV0byIsZT0iIjtzd2l0Y2godGhpcy5tb2RlKXtjYXNlImFzcGVjdEZpdCI6dD0iY29udGFpbiIsZT0iY2VudGVyIGNlbnRlciI7YnJlYWs7Y2FzZSJhc3BlY3RGaWxsIjp0PSJjb3ZlciIsZT0iY2VudGVyIGNlbnRlciI7YnJlYWs7Y2FzZSJ3aWR0aEZpeCI6Y2FzZSJoZWlnaHRGaXgiOnQ9IjEwMCUgMTAwJSI7YnJlYWs7Y2FzZSJ0b3AiOmU9ImNlbnRlciB0b3AiO2JyZWFrO2Nhc2UiYm90dG9tIjplPSJjZW50ZXIgYm90dG9tIjticmVhaztjYXNlImNlbnRlciI6ZT0iY2VudGVyIGNlbnRlciI7YnJlYWs7Y2FzZSJsZWZ0IjplPSJsZWZ0IGNlbnRlciI7YnJlYWs7Y2FzZSJyaWdodCI6ZT0icmlnaHQgY2VudGVyIjticmVhaztjYXNlInRvcCBsZWZ0IjplPSJsZWZ0IHRvcCI7YnJlYWs7Y2FzZSJ0b3AgcmlnaHQiOmU9InJpZ2h0IHRvcCI7YnJlYWs7Y2FzZSJib3R0b20gbGVmdCI6ZT0ibGVmdCBib3R0b20iO2JyZWFrO2Nhc2UiYm90dG9tIHJpZ2h0IjplPSJyaWdodCBib3R0b20iO2JyZWFrO2RlZmF1bHQ6dD0iMTAwJSAxMDAlIixlPSIwJSAwJSI7YnJlYWt9cmV0dXJueyJiYWNrZ3JvdW5kLWltYWdlIjp0aGlzLmNvbnRlbnRQYXRoPyd1cmwoIicuY29uY2F0KHRoaXMuY29udGVudFBhdGgsJyIpJyk6Im5vbmUiLCJiYWNrZ3JvdW5kLXBvc2l0aW9uIjplLCJiYWNrZ3JvdW5kLXNpemUiOnQsImJhY2tncm91bmQtcmVwZWF0Ijoibm8tcmVwZWF0In19fSx3YXRjaDp7c3JjOmZ1bmN0aW9uKHQsZSl7dGhpcy5fbG9hZEltYWdlKCl9LG1vZGU6ZnVuY3Rpb24odCxlKXsid2lkdGhGaXgiIT09ZSYmImhlaWdodEZpeCIhPT1lfHx0aGlzLl9yZXNldFNpemUoKSwid2lkdGhGaXgiIT09dCYmImhlaWdodEZpeCIhPT10fHx0aGlzLl9maXhTaXplKCl9LGNvbnRlbnRQYXRoOmZ1bmN0aW9uKHQpeyF0JiZ0aGlzLl9faW1nJiYodGhpcy5fX2ltZy5yZW1vdmUoKSxkZWxldGUgdGhpcy5fX2ltZyl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5vcmlnaW5hbFN0eWxlLndpZHRoPXRoaXMuJGVsLnN0eWxlLndpZHRofHwiIix0aGlzLm9yaWdpbmFsU3R5bGUuaGVpZ2h0PXRoaXMuJGVsLnN0eWxlLmhlaWdodHx8IiIsdGhpcy5fbG9hZEltYWdlKCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9jbGVhckltYWdlKCl9LG1ldGhvZHM6e19maXhTaXplOmZ1bmN0aW9uKCl7aWYodGhpcy5yYXRpbyl7dmFyIHQ9dGhpcy4kZWw7aWYoIndpZHRoRml4Ij09PXRoaXMubW9kZSl7dmFyIGU9dC5vZmZzZXRXaWR0aDtlJiYodC5zdHlsZS5oZWlnaHQ9YShlL3RoaXMucmF0aW8pKyJweCIpfWVsc2UgaWYoImhlaWdodEZpeCI9PT10aGlzLm1vZGUpe3ZhciBuPXQub2Zmc2V0SGVpZ2h0O24mJih0LnN0eWxlLndpZHRoPWEobip0aGlzLnJhdGlvKSsicHgiKX19d2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ1cGRhdGV2aWV3IikpfSxfcmVzZXRTaXplOmZ1bmN0aW9uKCl7dGhpcy4kZWwuc3R5bGUud2lkdGg9dGhpcy5vcmlnaW5hbFN0eWxlLndpZHRoLHRoaXMuJGVsLnN0eWxlLmhlaWdodD10aGlzLm9yaWdpbmFsU3R5bGUuaGVpZ2h0fSxfcmVzZXREYXRhOmZ1bmN0aW9uKCl7dGhpcy5vcmlnaW5hbFdpZHRoPTAsdGhpcy5vcmlnaW5hbEhlaWdodD0wLHRoaXMuY29udGVudFBhdGg9IiJ9LF9sb2FkSW1hZ2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy4kZ2V0UmVhbFBhdGgodGhpcy5zcmMpO2lmKGUpe3ZhciBuPXRoaXMuX2ltZz10aGlzLl9pbWd8fG5ldyBJbWFnZTtuLm9ubG9hZD1mdW5jdGlvbihyKXt0Ll9pbWc9bnVsbDt2YXIgaT10Lm9yaWdpbmFsV2lkdGg9bi53aWR0aCxhPXQub3JpZ2luYWxIZWlnaHQ9bi5oZWlnaHQ7dC5fZml4U2l6ZSgpLHQuY29udGVudFBhdGg9ZSxuLmRyYWdnYWJsZT10LmRyYWdnYWJsZSx0Ll9faW1nJiZ0Ll9faW1nLnJlbW92ZSgpLHQuX19pbWc9bix0LiRlbC5hcHBlbmRDaGlsZChuKSx0LiR0cmlnZ2VyKCJsb2FkIixyLHt3aWR0aDppLGhlaWdodDphfSl9LG4ub25lcnJvcj1mdW5jdGlvbihlKXt0Ll9pbWc9bnVsbCx0Ll9yZXNldERhdGEoKSx0LiR0cmlnZ2VyKCJlcnJvciIsZSx7ZXJyTXNnOiJHRVQgIi5jb25jYXQodC5zcmMsIiA0MDQgKE5vdCBGb3VuZCkiKX0pfSxuLnNyYz1lfWVsc2UgdGhpcy5fY2xlYXJJbWFnZSgpLHRoaXMuX3Jlc2V0RGF0YSgpfSxfY2xlYXJJbWFnZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ltZzt0JiYodC5vbmxvYWQ9bnVsbCx0Lm9uZXJyb3I9bnVsbCx0aGlzLl9pbWc9bnVsbCl9fX07ZS5kZWZhdWx0PW99LCIyMGIxIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgcj1uKCI4MWU4IiksaT17bmFtZToiQXN5bmNFcnJvciIsbWl4aW5zOltyLmkxOG5NaXhpbl0sbWV0aG9kczp7X29uQ2xpY2s6ZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9fX07ZS5kZWZhdWx0PWl9LCIyMTljIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImRhODQiKSxpPW4oIjQ2MjUiKSxhPW4oImQwMzkiKSxvPW4oIjU5ZWQiKSxzPW4oImFkZGIiKSxjPW4oImViYjUiKSx1PW4oIjA0ZDEiKSxsPW4oImQ5OTgiKSxmPW4oIjJkMDAiKSxkPW4oIjUxMmMiKSxoPWMuYVR5cGVkQXJyYXkscD1jLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Qsdj1yLlVpbnQxNkFycmF5LGc9diYmaSh2LnByb3RvdHlwZS5zb3J0KSxtPSEhZyYmIShhKChmdW5jdGlvbigpe2cobmV3IHYoMiksbnVsbCl9KSkmJmEoKGZ1bmN0aW9uKCl7ZyhuZXcgdigyKSx7fSl9KSkpLGI9ISFnJiYhYSgoZnVuY3Rpb24oKXtpZihmKXJldHVybiBmPDc0O2lmKHUpcmV0dXJuIHU8Njc7aWYobClyZXR1cm4hMDtpZihkKXJldHVybiBkPDYwMjt2YXIgdCxlLG49bmV3IHYoNTE2KSxyPUFycmF5KDUxNik7Zm9yKHQ9MDt0PDUxNjt0KyspZT10JTQsblt0XT01MTUtdCxyW3RdPXQtMiplKzM7Zm9yKGcobiwoZnVuY3Rpb24odCxlKXtyZXR1cm4odC80fDApLShlLzR8MCl9KSksdD0wO3Q8NTE2O3QrKylpZihuW3RdIT09clt0XSlyZXR1cm4hMH0pKTtwKCJzb3J0IiwoZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PXQmJm8odCksYj9nKHRoaXMsdCk6cyhoKHRoaXMpLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiB2b2lkIDAhPT10Pyt0KGUsbil8fDA6biE9PW4/LTE6ZSE9PWU/MTowPT09ZSYmMD09PW4/MS9lPjAmJjEvbjwwPzE6LTE6ZT5ufX0odCkpfSksIWJ8fG0pfSwyMjY2OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwMzY2IiksaT1uKCJjNjViIiksYT1uKCI4MjVhIiksbz1uKCIwZDUxIikscz1uKCJlOTVhIiksYz1uKCIwN2ZhIiksdT1uKCIzYTliIiksbD1uKCI5YTFmIiksZj1uKCIzNWExIiksZD1uKCIyYTYyIiksaD1UeXBlRXJyb3IscD1mdW5jdGlvbih0LGUpe3RoaXMuc3RvcHBlZD10LHRoaXMucmVzdWx0PWV9LHY9cC5wcm90b3R5cGU7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgZyxtLGIseSxfLHcseCxTPW4mJm4udGhhdCxUPSEoIW58fCFuLkFTX0VOVFJJRVMpLEM9ISghbnx8IW4uSVNfUkVDT1JEKSxrPSEoIW58fCFuLklTX0lURVJBVE9SKSxPPSEoIW58fCFuLklOVEVSUlVQVEVEKSxFPXIoZSxTKSxJPWZ1bmN0aW9uKHQpe3JldHVybiBnJiZkKGcsIm5vcm1hbCIsdCksbmV3IHAoITAsdCl9LFA9ZnVuY3Rpb24odCl7cmV0dXJuIFQ/KGEodCksTz9FKHRbMF0sdFsxXSxJKTpFKHRbMF0sdFsxXSkpOk8/RSh0LEkpOkUodCl9O2lmKEMpZz10Lml0ZXJhdG9yO2Vsc2UgaWYoaylnPXQ7ZWxzZXtpZihtPWYodCksIW0pdGhyb3cgaChvKHQpKyIgaXMgbm90IGl0ZXJhYmxlIik7aWYocyhtKSl7Zm9yKGI9MCx5PWModCk7eT5iO2IrKylpZihfPVAodFtiXSksXyYmdSh2LF8pKXJldHVybiBfO3JldHVybiBuZXcgcCghMSl9Zz1sKHQsbSl9dz1DP3QubmV4dDpnLm5leHQ7d2hpbGUoISh4PWkodyxnKSkuZG9uZSl7dHJ5e189UCh4LnZhbHVlKX1jYXRjaChNKXtkKGcsInRocm93IixNKX1pZigib2JqZWN0Ij09dHlwZW9mIF8mJl8mJnUodixfKSlyZXR1cm4gX31yZXR1cm4gbmV3IHAoITEpfX0sMjM5ODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuRWRpdG9yQ29udGV4dD12b2lkIDAsbigiZDNiNyIpO3ZhciBpPXIobigiZDRlYyIpKSxhPXIobigiYmVlMiIpKSxvPW4oImRiNmEiKTtmdW5jdGlvbiBzKGUsbixyLGkpe3QucHVibGlzaEhhbmRsZXIobisiLWVkaXRvci0iK2Use2NvbXBvbmVudElkOmUsdHlwZTpyLGRhdGE6aX0sbil9dC5zdWJzY3JpYmUoIm9uRWRpdG9yTWV0aG9kQ2FsbGJhY2siLChmdW5jdGlvbih0KXt2YXIgZT10LmNhbGxiYWNrSWQsbj10LmRhdGE7by5jYWxsYmFjay5pbnZva2UoZSxuKX0pKTt2YXIgYz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXsoMCxpLmRlZmF1bHQpKHRoaXMsdCksdGhpcy5pZD1lLHRoaXMucGFnZUlkPW59cmV0dXJuKDAsYS5kZWZhdWx0KSh0LFt7a2V5OiJmb3JtYXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cyh0aGlzLmlkLHRoaXMucGFnZUlkLCJmb3JtYXQiLHtvcHRpb25zOntuYW1lOnQsdmFsdWU6ZX19KX19XSksdH0oKTtlLkVkaXRvckNvbnRleHQ9YyxbImluc2VydERpdmlkZXIiLCJpbnNlcnRJbWFnZSIsImluc2VydFRleHQiLCJzZXRDb250ZW50cyIsImdldENvbnRlbnRzIiwiY2xlYXIiLCJyZW1vdmVGb3JtYXQiLCJ1bmRvIiwicmVkbyIsImJsdXIiLCJnZXRTZWxlY3Rpb25UZXh0Iiwic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChmdW5jdGlvbih0KXtjLnByb3RvdHlwZVt0XT1vLmNhbGxiYWNrLndhcnAoKGZ1bmN0aW9uKGUsbil7cyh0aGlzLmlkLHRoaXMucGFnZUlkLHQse29wdGlvbnM6ZSxjYWxsYmFja0lkOm59KX0pKX0pKX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiMjNjYiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjU5MjYiKSxpPU1hdGgubWF4LGE9TWF0aC5taW47dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49cih0KTtyZXR1cm4gbjwwP2kobitlLDApOmEobixlKX19LCIyM2RjIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZDQ0ZSIpO3IoTWF0aCwiTWF0aCIsITApfSwiMjNlNyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImRhODQiKSxpPW4oIjA2Y2YiKS5mLGE9bigiOTExMiIpLG89bigiY2IyZCIpLHM9bigiNjM3NCIpLGM9bigiZTg5MyIpLHU9bigiOTRjYSIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuLGwsZixkLGgscCx2PXQudGFyZ2V0LGc9dC5nbG9iYWwsbT10LnN0YXQ7aWYobD1nP3I6bT9yW3ZdfHxzKHYse30pOihyW3ZdfHx7fSkucHJvdG90eXBlLGwpZm9yKGYgaW4gZSl7aWYoaD1lW2ZdLHQuZG9udENhbGxHZXRTZXQ/KHA9aShsLGYpLGQ9cCYmcC52YWx1ZSk6ZD1sW2ZdLG49dShnP2Y6disobT8iLiI6IiMiKStmLHQuZm9yY2VkKSwhbiYmdm9pZCAwIT09ZCl7aWYodHlwZW9mIGg9PXR5cGVvZiBkKWNvbnRpbnVlO2MoaCxkKX0odC5zaGFtfHxkJiZkLnNoYW0pJiZhKGgsInNoYW0iLCEwKSxvKGwsZixoLHQpfX19LDI0MTI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldEN1cnJlbnRQYWdlSWQ9ZnVuY3Rpb24oKXt2YXIgdD1nZXRDdXJyZW50UGFnZXMoKSxlPXRbdC5sZW5ndGgtMV07cmV0dXJuIGUmJmUuJHBhZ2UuaWR9LGUuZ2V0Q3VycmVudFBhZ2VWbT1mdW5jdGlvbihlKXt2YXIgbj1nZXRDdXJyZW50UGFnZXMoKSxyPW4ubGVuZ3RoO3J8fHQuZW1pdCgib25FcnJvciIsIiIuY29uY2F0KGUsIjpmYWlsIikpO3ZhciBpPW5bci0xXTtyZXR1cm4gaS4kdm19LGUuaW52b2tlTWV0aG9kPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGU+MT9lLTE6MCkscj0xO3I8ZTtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTtyZXR1cm4gaS5kZWZhdWx0W3RdLmFwcGx5KG51bGwsbil9LGUub25NZXRob2Q9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC5vbigiYXBpLiIrZSxuKX07dmFyIGk9cihuKCJiMDFiIikpfSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LCIyNDFjIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiY2E4NCIpLGk9bigiNzgzOSIpLGE9aS5jb25jYXQoImxlbmd0aCIsInByb3RvdHlwZSIpO2UuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24odCl7cmV0dXJuIHIodCxhKX19LDI0NTc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiOTE3ZiIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sIjI0ZmIiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKChmdW5jdGlvbihlKXt2YXIgbj1mdW5jdGlvbih0LGUpe3ZhciBuPXRbMV18fCIiLHI9dFszXTtpZighcilyZXR1cm4gbjtpZihlJiYiZnVuY3Rpb24iPT09dHlwZW9mIGJ0b2Epe3ZhciBpPWZ1bmN0aW9uKHQpe3ZhciBlPWJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHQpKSkpLG49InNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIuY29uY2F0KGUpO3JldHVybiIvKiMgIi5jb25jYXQobiwiICovIil9KHIpLGE9ci5zb3VyY2VzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIi8qIyBzb3VyY2VVUkw9Ii5jb25jYXQoci5zb3VyY2VSb290fHwiIikuY29uY2F0KHQsIiAqLyIpfSkpO3JldHVybltuXS5jb25jYXQoYSkuY29uY2F0KFtpXSkuam9pbigiXG4iKX1yZXR1cm5bbl0uam9pbigiXG4iKX0oZSx0KTtyZXR1cm4gZVsyXT8iQG1lZGlhICIuY29uY2F0KGVbMl0sIiB7IikuY29uY2F0KG4sIn0iKTpufSkpLmpvaW4oIiIpfSxlLmk9ZnVuY3Rpb24odCxuLHIpeyJzdHJpbmciPT09dHlwZW9mIHQmJih0PVtbbnVsbCx0LCIiXV0pO3ZhciBpPXt9O2lmKHIpZm9yKHZhciBhPTA7YTx0aGlzLmxlbmd0aDthKyspe3ZhciBvPXRoaXNbYV1bMF07bnVsbCE9byYmKGlbb109ITApfWZvcih2YXIgcz0wO3M8dC5sZW5ndGg7cysrKXt2YXIgYz1bXS5jb25jYXQodFtzXSk7ciYmaVtjWzBdXXx8KG4mJihjWzJdP2NbMl09IiIuY29uY2F0KG4sIiBhbmQgIikuY29uY2F0KGNbMl0pOmNbMl09biksZS5wdXNoKGMpKX19LGV9fSwyNTI2OmZ1bmN0aW9uKHQpe3QuZXhwb3J0cz1KU09OLnBhcnNlKCd7InVuaS5hcHAucXVpdCI6IuWGjeaMieS4gOasoemAgOWHuuaHieeUqCIsInVuaS5hc3luYy5lcnJvciI6IumAo+aOpeacjeWLmeWZqOi2heaZgu+8jOm7nuaTiuWxj+W5lemHjeippiIsInVuaS5zaG93QWN0aW9uU2hlZXQuY2FuY2VsIjoi5Y+W5raIIiwidW5pLnNob3dUb2FzdC51bnBhaXJlZCI6Iuiri+azqOaEjyBzaG93VG9hc3Qg6IiHIGhpZGVUb2FzdCDlv4XpoIjphY3lsI3kvb/nlKgiLCJ1bmkuc2hvd0xvYWRpbmcudW5wYWlyZWQiOiLoq4vms6jmhI8gc2hvd0xvYWRpbmcg6IiHIGhpZGVMb2FkaW5nIOW/hemgiOmFjeWwjeS9v+eUqCIsInVuaS5zaG93TW9kYWwuY2FuY2VsIjoi5Y+W5raIIiwidW5pLnNob3dNb2RhbC5jb25maXJtIjoi56K65a6aIiwidW5pLmNob29zZUltYWdlLmNhbmNlbCI6IuWPlua2iCIsInVuaS5jaG9vc2VJbWFnZS5zb3VyY2VUeXBlLmFsYnVtIjoi5b6e55u45YaK6YG45pOHIiwidW5pLmNob29zZUltYWdlLnNvdXJjZVR5cGUuY2FtZXJhIjoi5ouN5pSdIiwidW5pLmNob29zZVZpZGVvLmNhbmNlbCI6IuWPlua2iCIsInVuaS5jaG9vc2VWaWRlby5zb3VyY2VUeXBlLmFsYnVtIjoi5b6e55u45YaK6YG45pOHIiwidW5pLmNob29zZVZpZGVvLnNvdXJjZVR5cGUuY2FtZXJhIjoi5ouN5pSdIiwidW5pLmNob29zZUZpbGUubm90VXNlckFjdGl2YXRpb24iOiLmlofku7bpgbjmk4flmajlsI3oqbHmoYblj6rog73lnKjnlLHnlKjmiLbmv4DmtLvmmYLpoa/npLoiLCJ1bmkucHJldmlld0ltYWdlLmNhbmNlbCI6IuWPlua2iCIsInVuaS5wcmV2aWV3SW1hZ2UuYnV0dG9uLnNhdmUiOiLkv53lrZjlnJblg48iLCJ1bmkucHJldmlld0ltYWdlLnNhdmUuc3VjY2VzcyI6IuS/neWtmOWcluWDj+WIsOebuOWGiuaIkOWKnyIsInVuaS5wcmV2aWV3SW1hZ2Uuc2F2ZS5mYWlsIjoi5L+d5a2Y5ZyW5YOP5Yiw55u45YaK5aSx5pWXIiwidW5pLnNldENsaXBib2FyZERhdGEuc3VjY2VzcyI6IuWFp+WuueW3suW+qeWItiIsInVuaS5zY2FuQ29kZS50aXRsZSI6IuaOg+eivCIsInVuaS5zY2FuQ29kZS5hbGJ1bSI6IuebuOWGiiIsInVuaS5zY2FuQ29kZS5mYWlsIjoi6K2Y5Yil5aSx5pWXIiwidW5pLnNjYW5Db2RlLmZsYXNoLm9uIjoi6LyV6Ke454Wn5LquIiwidW5pLnNjYW5Db2RlLmZsYXNoLm9mZiI6Iui8leinuOmXnOmWiSIsInVuaS5zdGFydFNvdGVyQXV0aGVudGljYXRpb24uYXV0aENvbnRlbnQiOiLmjIfntIvorZjliKXkuK0uLi4iLCJ1bmkuc3RhcnRTb3RlckF1dGhlbnRpY2F0aW9uLndhaXRpbmdDb250ZW50Ijoi54Sh5rOV6K2Y5YilIiwidW5pLnBpY2tlci5kb25lIjoi5a6M5oiQIiwidW5pLnBpY2tlci5jYW5jZWwiOiLlj5bmtogiLCJ1bmkudmlkZW8uZGFubXUiOiLlvYjluZUiLCJ1bmkudmlkZW8udm9sdW1lIjoi6Z+z6YePIiwidW5pLmJ1dHRvbi5mZWVkYmFjay50aXRsZSI6IuWVj+mhjOWPjemliyIsInVuaS5idXR0b24uZmVlZGJhY2suc2VuZCI6IueZvOmAgSIsInVuaS5jaG9vc2VMb2NhdGlvbi5zZWFyY2giOiLmkJzntKLlnLDpu54iLCJ1bmkuY2hvb3NlTG9jYXRpb24uY2FuY2VsIjoi5Y+W5raIIn0nKX0sMjUzMjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImUzMzAiKSxhPW4oIjVhMzQiKSxvPW4oIjFkODAiKSxzPW4oIjU3N2UiKSxjPW4oImFiMTMiKSx1PWkoIiIuaW5kZXhPZik7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohYygiaW5jbHVkZXMiKX0se2luY2x1ZGVzOmZ1bmN0aW9uKHQpe3JldHVybiEhfnUocyhvKHRoaXMpKSxzKGEodCkpLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sIjI1YTEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiZDU4ZiIpLnJpZ2h0LGE9ci5hVHlwZWRBcnJheSxvPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtvKCJyZWR1Y2VSaWdodCIsKGZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIGkoYSh0aGlzKSx0LGUsZT4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSwiMjVmMCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI1ZTc3IikuUFJPUEVSLGk9bigiY2IyZCIpLGE9bigiODI1YSIpLG89bigiNTc3ZSIpLHM9bigiZDAzOSIpLGM9bigiOTBkOCIpLHU9UmVnRXhwLnByb3RvdHlwZSxsPXVbInRvU3RyaW5nIl0sZj1zKChmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9bC5jYWxsKHtzb3VyY2U6ImEiLGZsYWdzOiJiIn0pfSkpLGQ9ciYmInRvU3RyaW5nIiE9bC5uYW1lOyhmfHxkKSYmaShSZWdFeHAucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7dmFyIHQ9YSh0aGlzKSxlPW8odC5zb3VyY2UpLG49byhjKHQpKTtyZXR1cm4iLyIrZSsiLyIrbn0pLHt1bnNhZmU6ITB9KX0sMjYyNjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImQwNjYiKSxpPW4oIjliZjIiKSxhPW4oImI2MjIiKSxvPW4oIjgzYWIiKSxzPWEoInNwZWNpZXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cih0KSxuPWkuZjtvJiZlJiYhZVtzXSYmbihlLHMse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319KX19LCIyNjZlIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJhOWUzIiksbigiYzk3NSIpLG4oIjk5YWYiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oImI2NGIiKTtuKCI4MWU4Iik7dmFyIHI9bigiOTg3ZCIpLGk9e25hbWU6IkJ1dHRvbiIsbWl4aW5zOltyLmhvdmVyLHIuZW1pdHRlcixyLmxpc3RlbmVyc10scHJvcHM6e2hvdmVyQ2xhc3M6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImJ1dHRvbi1ob3ZlciJ9LGRpc2FibGVkOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0saWQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGhvdmVyU3RvcFByb3BhZ2F0aW9uOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0saG92ZXJTdGFydFRpbWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MjB9LGhvdmVyU3RheVRpbWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NzB9LGZvcm1UeXBlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5+WyIiLCJzdWJtaXQiLCJyZXNldCJdLmluZGV4T2YodCl9fSxvcGVuVHlwZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57Y2xpY2tGdW5jdGlvbjpudWxsfX0sbWV0aG9kczp7X29uQ2xpY2s6ZnVuY3Rpb24odCxlKXt0aGlzLmRpc2FibGVkfHwoZSYmdGhpcy4kZWwuY2xpY2soKSx0aGlzLmZvcm1UeXBlP3RoaXMuJGRpc3BhdGNoKCJGb3JtIiwic3VibWl0Ij09PXRoaXMuZm9ybVR5cGU/InVuaS1mb3JtLXN1Ym1pdCI6InVuaS1mb3JtLXJlc2V0Iix7dHlwZTp0aGlzLmZvcm1UeXBlfSk6dGhpcy5vcGVuVHlwZSl9LF9iaW5kT2JqZWN0TGlzdGVuZXJzOmZ1bmN0aW9uKHQsZSl7aWYoZSlmb3IodmFyIG4gaW4gZSl7dmFyIHI9dC5vbltuXSxpPWVbbl07dC5vbltuXT1yP1tdLmNvbmNhdChyLGkpOml9cmV0dXJuIHR9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIHRoaXMuJGxpc3RlbmVycyYmT2JqZWN0LmtleXModGhpcy4kbGlzdGVuZXJzKS5mb3JFYWNoKChmdW5jdGlvbih0KXsoIWUuZGlzYWJsZWR8fCJjbGljayIhPT10JiYidGFwIiE9PXQpJiYoblt0XT1lLiRsaXN0ZW5lcnNbdF0pfSkpLHRoaXMuaG92ZXJDbGFzcyYmIm5vbmUiIT09dGhpcy5ob3ZlckNsYXNzP3QoInVuaS1idXR0b24iLHRoaXMuX2JpbmRPYmplY3RMaXN0ZW5lcnMoe2NsYXNzOlt0aGlzLmhvdmVyaW5nP3RoaXMuaG92ZXJDbGFzczoiIl0sYXR0cnM6e2Rpc2FibGVkOnRoaXMuZGlzYWJsZWR9LG9uOnt0b3VjaHN0YXJ0OnRoaXMuX2hvdmVyVG91Y2hTdGFydCx0b3VjaGVuZDp0aGlzLl9ob3ZlclRvdWNoRW5kLHRvdWNoY2FuY2VsOnRoaXMuX2hvdmVyVG91Y2hDYW5jZWwsbW91c2Vkb3duOnRoaXMuX2hvdmVyTW91c2Vkb3duLG1vdXNldXA6dGhpcy5faG92ZXJNb3VzZXVwLGNsaWNrOnRoaXMuX29uQ2xpY2t9fSxuKSx0aGlzLiRzbG90cy5kZWZhdWx0KTp0KCJ1bmktYnV0dG9uIix0aGlzLl9iaW5kT2JqZWN0TGlzdGVuZXJzKHtjbGFzczpbdGhpcy5ob3ZlcmluZz90aGlzLmhvdmVyQ2xhc3M6IiJdLGF0dHJzOntkaXNhYmxlZDp0aGlzLmRpc2FibGVkfSxvbjp7Y2xpY2s6dGhpcy5fb25DbGlja319LG4pLHRoaXMuJHNsb3RzLmRlZmF1bHQpfSxsaXN0ZW5lcnM6eyJsYWJlbC1jbGljayI6Il9vbkNsaWNrIiwiQGxhYmVsLWNsaWNrIjoiX29uQ2xpY2sifX07ZS5kZWZhdWx0PWl9LCIyNmU5IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImUzMzAiKSxhPW4oImU4YjUiKSxvPWkoW10ucmV2ZXJzZSkscz1bMSwyXTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6U3RyaW5nKHMpPT09U3RyaW5nKHMucmV2ZXJzZSgpKX0se3JldmVyc2U6ZnVuY3Rpb24oKXtyZXR1cm4gYSh0aGlzKSYmKHRoaXMubGVuZ3RoPXRoaXMubGVuZ3RoKSxvKHRoaXMpfX0pfSwyODYxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5oaWRlTG9hZGluZz1mdW5jdGlvbigpe3JldHVybiBpKCJvbkhpZGVMb2FkaW5nIikse319LGUuaGlkZVRvYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIGkoIm9uSGlkZVRvYXN0Iikse319LGUuc2hvd0FjdGlvblNoZWV0PWZ1bmN0aW9uKHQsZSl7aSgib25TaG93QWN0aW9uU2hlZXQiLHQsKGZ1bmN0aW9uKHQpe2EoZSwtMT09PXQ/e2Vyck1zZzoic2hvd0FjdGlvblNoZWV0OmZhaWwgY2FuY2VsIn06e3RhcEluZGV4OnR9KX0pKX0sZS5zaG93TG9hZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gaSgib25TaG93TG9hZGluZyIsdCkse319LGUuc2hvd01vZGFsPWZ1bmN0aW9uKHQsZSl7aSgib25TaG93TW9kYWwiLHQsKGZ1bmN0aW9uKHQpe2EoZSx0KX0pKX0sZS5zaG93VG9hc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIGkoIm9uU2hvd1RvYXN0Iix0KSx7fX07dmFyIHI9dCxpPXIuZW1pdCxhPXIuaW52b2tlQ2FsbGJhY2tIYW5kbGVyfSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LCIyODliIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtmdW5jdGlvbiByKHQsZSxuKXt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LmNoYW5nZWRUb3VjaGVzKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkZW50aWZpZXI9PT1lfSkpWzBdO3JldHVybiEhciYmKHQuZGVsdGFZPXIucGFnZVktbiwhMCl9bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oIjRkZTQiKSxuKCJkM2I3IiksbigiZmI2YSIpLG4oImM5NzUiKTt2YXIgaT0iYWJvcnRpbmciLGE9InJlZnJlc2hpbmciLG89InJlc3RvcmluZyIscz17bW91bnRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5lbmFibGVQdWxsRG93blJlZnJlc2gmJih0aGlzLnJlZnJlc2hDb250YWluZXJFbGVtPXRoaXMuJHJlZnMucmVmcmVzaC4kZWwsdGhpcy5yZWZyZXNoQ29udHJvbGxlckVsZW09dGhpcy5yZWZyZXNoQ29udGFpbmVyRWxlbS5xdWVyeVNlbGVjdG9yKCIudW5pLXBhZ2UtcmVmcmVzaCIpLHRoaXMucmVmcmVzaElubmVyRWxlbVN0eWxlPXRoaXMucmVmcmVzaENvbnRyb2xsZXJFbGVtLnF1ZXJ5U2VsZWN0b3IoIi51bmktcGFnZS1yZWZyZXNoLWlubmVyIikuc3R5bGUsdC5vbih0aGlzLiRyb3V0ZS5wYXJhbXMuX19pZF9fKyIuc3RhcnRQdWxsRG93blJlZnJlc2giLChmdW5jdGlvbigpe2Uuc3RhdGV8fChlLnN0YXRlPWEsZS5fYWRkQ2xhc3MoKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2UuX3JlZnJlc2hpbmcoKX0pLDUwKSl9KSksdC5vbih0aGlzLiRyb3V0ZS5wYXJhbXMuX19pZF9fKyIuc3RvcFB1bGxEb3duUmVmcmVzaCIsKGZ1bmN0aW9uKCl7ZS5zdGF0ZT09PWEmJihlLl9yZW1vdmVDbGFzcygpLGUuc3RhdGU9byxlLl9hZGRDbGFzcygpLGUuX3Jlc3RvcmluZygoZnVuY3Rpb24oKXtlLl9yZW1vdmVDbGFzcygpLGUuc3RhdGU9ZS5kaXN0YW5jZT1lLm9mZnNldD1udWxsfSkpKX0pKSl9LG1ldGhvZHM6e190b3VjaHN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuY2hhbmdlZFRvdWNoZXNbMF07dGhpcy50b3VjaElkPWUuaWRlbnRpZmllcix0aGlzLnN0YXJ0WT1lLnBhZ2VZLFtpLGEsb10uaW5kZXhPZih0aGlzLnN0YXRlKT49MD90aGlzLmNhblJlZnJlc2g9ITE6dGhpcy5jYW5SZWZyZXNoPSEwfSxfdG91Y2htb3ZlOmZ1bmN0aW9uKHQpe2lmKHRoaXMuY2FuUmVmcmVzaCYmcih0LHRoaXMudG91Y2hJZCx0aGlzLnN0YXJ0WSkpe3ZhciBlPXQuZGVsdGFZO2lmKDA9PT0oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApKXtpZighKGU8MCl8fHRoaXMuc3RhdGUpe3QucHJldmVudERlZmF1bHQoKSxudWxsPT10aGlzLmRpc3RhbmNlJiYodGhpcy5vZmZzZXQ9ZSx0aGlzLnN0YXRlPSJwdWxsaW5nIix0aGlzLl9hZGRDbGFzcygpKSxlLT10aGlzLm9mZnNldCxlPDAmJihlPTApLHRoaXMuZGlzdGFuY2U9ZTt2YXIgbj1lPj10aGlzLnJlZnJlc2hPcHRpb25zLnJhbmdlJiYicmVhY2hlZCIhPT10aGlzLnN0YXRlLGk9ZTx0aGlzLnJlZnJlc2hPcHRpb25zLnJhbmdlJiYicHVsbGluZyIhPT10aGlzLnN0YXRlOyhufHxpKSYmKHRoaXMuX3JlbW92ZUNsYXNzKCksdGhpcy5zdGF0ZT0icmVhY2hlZCI9PT10aGlzLnN0YXRlPyJwdWxsaW5nIjoicmVhY2hlZCIsdGhpcy5fYWRkQ2xhc3MoKSksdGhpcy5fcHVsbGluZyhlKX19ZWxzZSB0aGlzLnRvdWNoSWQ9bnVsbH19LF90b3VjaGVuZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3IodCx0aGlzLnRvdWNoSWQsdGhpcy5zdGFydFkpJiZudWxsIT09dGhpcy5zdGF0ZSYmKCJwdWxsaW5nIj09PXRoaXMuc3RhdGU/KHRoaXMuX3JlbW92ZUNsYXNzKCksdGhpcy5zdGF0ZT1pLHRoaXMuX2FkZENsYXNzKCksdGhpcy5fYWJvcnRpbmcoKGZ1bmN0aW9uKCl7ZS5fcmVtb3ZlQ2xhc3MoKSxlLnN0YXRlPWUuZGlzdGFuY2U9ZS5vZmZzZXQ9bnVsbH0pKSk6InJlYWNoZWQiPT09dGhpcy5zdGF0ZSYmKHRoaXMuX3JlbW92ZUNsYXNzKCksdGhpcy5zdGF0ZT1hLHRoaXMuX2FkZENsYXNzKCksdGhpcy5fcmVmcmVzaGluZygpKSl9LF90b2dnbGVDbGFzczpmdW5jdGlvbih0KXtpZih0aGlzLnN0YXRlKXt2YXIgZT10aGlzLnJlZnJlc2hDb250YWluZXJFbGVtO2UmJmUuY2xhc3NMaXN0W3RdKCJ1bmktcGFnZS1yZWZyZXNoLS0iK3RoaXMuc3RhdGUpfX0sX2FkZENsYXNzOmZ1bmN0aW9uKCl7dGhpcy5fdG9nZ2xlQ2xhc3MoImFkZCIpfSxfcmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oKXt0aGlzLl90b2dnbGVDbGFzcygicmVtb3ZlIil9LF9wdWxsaW5nOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucmVmcmVzaENvbnRyb2xsZXJFbGVtO2lmKGUpe3ZhciBuPWUuc3R5bGUscj10L3RoaXMucmVmcmVzaE9wdGlvbnMucmFuZ2U7cj4xP3I9MTpyKj1yKnI7dmFyIGk9TWF0aC5yb3VuZCh0Lyh0aGlzLnJlZnJlc2hPcHRpb25zLnJhbmdlL3RoaXMucmVmcmVzaE9wdGlvbnMuaGVpZ2h0KSksYT1pPyJ0cmFuc2xhdGUzZCgtNTAlLCAiK2krInB4LCAwKSI6MDtuLndlYmtpdFRyYW5zZm9ybT1hLG4uY2xpcD0icmVjdCgiKyg0NS1pKSsicHgsNDVweCw0NXB4LC01cHgpIix0aGlzLnJlZnJlc2hJbm5lckVsZW1TdHlsZS53ZWJraXRUcmFuc2Zvcm09InJvdGF0ZSgiKzM2MCpyKyJkZWcpIn19LF9hYm9ydGluZzpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnJlZnJlc2hDb250cm9sbGVyRWxlbTtpZihlKXt2YXIgbj1lLnN0eWxlO2lmKG4ud2Via2l0VHJhbnNmb3JtKXtuLndlYmtpdFRyYW5zaXRpb249Ii13ZWJraXQtdHJhbnNmb3JtIDAuM3MiLG4ud2Via2l0VHJhbnNmb3JtPSJ0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKSI7dmFyIHI9ZnVuY3Rpb24gcigpe2kmJmNsZWFyVGltZW91dChpKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLHIpLG4ud2Via2l0VHJhbnNpdGlvbj0iIix0KCl9O2UuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIscik7dmFyIGk9c2V0VGltZW91dChyLDM1MCl9ZWxzZSB0KCl9fSxfcmVmcmVzaGluZzpmdW5jdGlvbigpe3ZhciBlPXRoaXMucmVmcmVzaENvbnRyb2xsZXJFbGVtO2lmKGUpe3ZhciBuPWUuc3R5bGU7bi53ZWJraXRUcmFuc2l0aW9uPSItd2Via2l0LXRyYW5zZm9ybSAwLjJzIixuLndlYmtpdFRyYW5zZm9ybT0idHJhbnNsYXRlM2QoLTUwJSwgIit0aGlzLnJlZnJlc2hPcHRpb25zLmhlaWdodCsicHgsIDApIix0LmVtaXQoIm9uUHVsbERvd25SZWZyZXNoIix7fSx0aGlzLiRyb3V0ZS5wYXJhbXMuX19pZF9fKX19LF9yZXN0b3Jpbmc6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5yZWZyZXNoQ29udHJvbGxlckVsZW07aWYoZSl7dmFyIG49ZS5zdHlsZTtuLndlYmtpdFRyYW5zaXRpb249Ii13ZWJraXQtdHJhbnNmb3JtIDAuM3MiLG4ud2Via2l0VHJhbnNmb3JtKz0iIHNjYWxlKDAuMDEpIjt2YXIgcj1mdW5jdGlvbiByKCl7aSYmY2xlYXJUaW1lb3V0KGkpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsciksbi53ZWJraXRUcmFuc2l0aW9uPSIiLG4ud2Via2l0VHJhbnNmb3JtPSJ0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKSIsdCgpfTtlLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLHIpO3ZhciBpPXNldFRpbWVvdXQociwzNTApfX19fTtlLmRlZmF1bHQ9c30pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwyOTA5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCl7cmV0dXJuKDAsci5kZWZhdWx0KSh0KXx8KDAsaS5kZWZhdWx0KSh0KXx8KDAsYS5kZWZhdWx0KSh0KXx8KDAsby5kZWZhdWx0KSgpfTt2YXIgcj1zKG4oIjYwMDUiKSksaT1zKG4oImRiOTAiKSksYT1zKG4oIjA2YzUiKSksbz1zKG4oIjM0MjciKSk7ZnVuY3Rpb24gcyh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19fSwyOTU0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiYjZiNyIpLGE9bigiZDAzOSIpLG89bigiZjM2YSIpLHM9ci5hVHlwZWRBcnJheSxjPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCx1PWEoKGZ1bmN0aW9uKCl7bmV3IEludDhBcnJheSgxKS5zbGljZSgpfSkpO2MoInNsaWNlIiwoZnVuY3Rpb24odCxlKXt2YXIgbj1vKHModGhpcyksdCxlKSxyPWkodGhpcyksYT0wLGM9bi5sZW5ndGgsdT1uZXcgcihjKTt3aGlsZShjPmEpdVthXT1uW2ErK107cmV0dXJuIHV9KSx1KX0sIjJhNjIiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJjNjViIiksaT1uKCI4MjVhIiksYT1uKCJkYzRhIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbyxzO2kodCk7dHJ5e2lmKG89YSh0LCJyZXR1cm4iKSwhbyl7aWYoInRocm93Ij09PWUpdGhyb3cgbjtyZXR1cm4gbn1vPXIobyx0KX1jYXRjaChjKXtzPSEwLG89Y31pZigidGhyb3ciPT09ZSl0aHJvdyBuO2lmKHMpdGhyb3cgbztyZXR1cm4gaShvKSxufX0sIjJhYmUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNhbklVc2U9ZnVuY3Rpb24odCl7aWYoKDAsaS5oYXNPd24pKGEuZGVmYXVsdCx0KSlyZXR1cm4gYS5kZWZhdWx0W3RdO2lmKCgwLGkuaGFzT3duKShvLmRlZmF1bHQsdCkpcmV0dXJuITA7cmV0dXJuITF9O3ZhciBpPW4oImRiNmEiKSxhPXIobigiMmVlMiIpKSxvPXIobigiODMzMCIpKX0sIjJiM2QiOmZ1bmN0aW9uKHQsZSxuKXtuKCI0MDAyIil9LCIyYmE0IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNDBkNSIpLGk9RnVuY3Rpb24ucHJvdG90eXBlLGE9aS5hcHBseSxvPWkuY2FsbDt0LmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmFwcGx5fHwocj9vLmJpbmQoYSk6ZnVuY3Rpb24oKXtyZXR1cm4gby5hcHBseShhLGFyZ3VtZW50cyl9KX0sIjJjMjciOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjkxMmYiKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LCIyYzNlIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiOWY3ZiIpLk1JU1NFRF9TVElDS1ksYT1uKCJjNmI2Iiksbz1uKCJlZGQwIikscz1uKCI2OWYzIikuZ2V0LGM9UmVnRXhwLnByb3RvdHlwZSx1PVR5cGVFcnJvcjtyJiZpJiZvKGMsInN0aWNreSIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZih0aGlzIT09Yyl7aWYoIlJlZ0V4cCI9PT1hKHRoaXMpKXJldHVybiEhcyh0aGlzKS5zdGlja3k7dGhyb3cgdSgiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCBSZWdFeHAgcmVxdWlyZWQiKX19fSl9LCIyY2EwIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oIjQ2MjUiKSxhPW4oIjA2Y2YiKS5mLG89bigiNTBjNCIpLHM9bigiNTc3ZSIpLGM9bigiNWEzNCIpLHU9bigiMWQ4MCIpLGw9bigiYWIxMyIpLGY9bigiYzQzMCIpLGQ9aSgiIi5zdGFydHNXaXRoKSxoPWkoIiIuc2xpY2UpLHA9TWF0aC5taW4sdj1sKCJzdGFydHNXaXRoIiksZz0hZiYmIXYmJiEhZnVuY3Rpb24oKXt2YXIgdD1hKFN0cmluZy5wcm90b3R5cGUsInN0YXJ0c1dpdGgiKTtyZXR1cm4gdCYmIXQud3JpdGFibGV9KCk7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohZyYmIXZ9LHtzdGFydHNXaXRoOmZ1bmN0aW9uKHQpe3ZhciBlPXModSh0aGlzKSk7Yyh0KTt2YXIgbj1vKHAoYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsZS5sZW5ndGgpKSxyPXModCk7cmV0dXJuIGQ/ZChlLHIsbik6aChlLG4sbityLmxlbmd0aCk9PT1yfX0pfSwiMmNhMyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuaW5pdEV2ZW50cz1mdW5jdGlvbigpe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixnLGYpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLG0sZiksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixoLGYpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsaCxmKX0sZS5wcm9jZXNzRXZlbnQ9ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9LHI9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOnt9LGk9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOnt9O2lmKGUuX3Byb2Nlc3NlZClyZXR1cm4gZS50eXBlPW4udHlwZXx8dCxlO2lmKCJjbGljayI9PT10KXt2YXIgYT0oMCxzLmRlZmF1bHQpKCksZj1hLnRvcDtuPXt4OmUueCx5OmUueS1mfSxlLnRvdWNoZXM9ZS5jaGFuZ2VkVG91Y2hlcz1be2ZvcmNlOjEsaWRlbnRpZmllcjowLGNsaWVudFg6ZS5jbGllbnRYLGNsaWVudFk6ZS5jbGllbnRZLHBhZ2VYOmUucGFnZVgscGFnZVk6ZS5wYWdlWX1dfXZhciBkPSgwLG8ud3JhcHBlck1QRXZlbnQpKHt0eXBlOm4udHlwZXx8dCx0aW1lU3RhbXA6ZS50aW1lU3RhbXB8fDAsZGV0YWlsOm4sdGFyZ2V0OmMocixuKSxjdXJyZW50VGFyZ2V0OmMoaSwhMSwhMCksdG91Y2hlczplIGluc3RhbmNlb2YgRXZlbnR8fGUgaW5zdGFuY2VvZiBDdXN0b21FdmVudD91KGUudG91Y2hlcyk6ZS50b3VjaGVzLGNoYW5nZWRUb3VjaGVzOmUgaW5zdGFuY2VvZiBFdmVudHx8ZSBpbnN0YW5jZW9mIEN1c3RvbUV2ZW50P3UoZS5jaGFuZ2VkVG91Y2hlcyk6ZS5jaGFuZ2VkVG91Y2hlcyxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe30sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7fX0pO2lmKGwodCkpe3ZhciBoPSgwLHMuZGVmYXVsdCkoKSxwPWgudG9wO2QucGFnZVg9ZS5wYWdlWCxkLnBhZ2VZPWUucGFnZVktcCxkLmNsaWVudFg9ZS5jbGllbnRYLGQuY2xpZW50WT1lLmNsaWVudFktcH0wO3JldHVybiBkfSxuKCIxNGQ5IiksbigiMmNhMCIpLG4oImNhYWQiKTt2YXIgaT1uKCJkYjZhIiksYT1uKCJmNGYwIiksbz1uKCI2MGY2Iikscz1yKG4oIjRmY2IiKSk7ZnVuY3Rpb24gYyh0LGUpe3ZhciBuPXtpZDp0LmlkLG9mZnNldExlZnQ6dC5vZmZzZXRMZWZ0LG9mZnNldFRvcDp0Lm9mZnNldFRvcCxkYXRhc2V0OigwLGEuZ2V0VGFyZ2V0RGF0YXNldCkodCl9O3JldHVybiBlJiZPYmplY3QuYXNzaWduKG4sZSksbn1mdW5jdGlvbiB1KHQpe2lmKHQpe2Zvcih2YXIgZT1bXSxuPSgwLHMuZGVmYXVsdCkoKSxyPW4udG9wLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXTtlLnB1c2goe2lkZW50aWZpZXI6YS5pZGVudGlmaWVyLHBhZ2VYOmEucGFnZVgscGFnZVk6YS5wYWdlWS1yLGNsaWVudFg6YS5jbGllbnRYLGNsaWVudFk6YS5jbGllbnRZLXIsZm9yY2U6YS5mb3JjZXx8MH0pfXJldHVybiBlfXJldHVybltdfWZ1bmN0aW9uIGwodCl7cmV0dXJuIHQuc3RhcnRzV2l0aCgibW91c2UiKXx8WyJjb250ZXh0bWVudSJdLmluY2x1ZGVzKHQpfXZhciBmPSEhaS5zdXBwb3J0c1Bhc3NpdmUmJntwYXNzaXZlOiEwfSxkPSExO2Z1bmN0aW9uIGgoKXtkJiYoY2xlYXJUaW1lb3V0KGQpLGQ9ITEpfXZhciBwPTAsdj0wO2Z1bmN0aW9uIGcodCl7aWYoaCgpLDE9PT10LnRvdWNoZXMubGVuZ3RoKXt2YXIgZT10LnRvdWNoZXNbMF0sbj1lLnBhZ2VYLHI9ZS5wYWdlWTtwPW4sdj1yLGQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgZT1uZXcgQ3VzdG9tRXZlbnQoImxvbmdwcmVzcyIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCx0YXJnZXQ6dC50YXJnZXQsY3VycmVudFRhcmdldDp0LmN1cnJlbnRUYXJnZXR9KTtlLnRvdWNoZXM9dC50b3VjaGVzLGUuY2hhbmdlZFRvdWNoZXM9dC5jaGFuZ2VkVG91Y2hlcyx0LnRhcmdldC5kaXNwYXRjaEV2ZW50KGUpfSksMzUwKX19ZnVuY3Rpb24gbSh0KXtpZihkKXtpZigxIT09dC50b3VjaGVzLmxlbmd0aClyZXR1cm4gaCgpO3ZhciBlPXQudG91Y2hlc1swXSxuPWUucGFnZVgscj1lLnBhZ2VZO3JldHVybiBNYXRoLmFicyhuLXApPjEwfHxNYXRoLmFicyhyLXYpPjEwP2goKTp2b2lkIDB9fX0sIjJjZWEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlLG4pe3ZhciByPWVbdF0saT0hKDAsYS5oYXNPd24pKG4sdCksbz1uW3RdLGM9ZnVuY3Rpb24odCxlKXtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gdShlLHQpPzA6LTE7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKWlmKHUoZVtuXSx0KSlyZXR1cm4gbjtyZXR1cm4tMX0oQm9vbGVhbixyLnR5cGUpO2M+LTEmJmkmJiEoMCxhLmhhc093bikociwiZGVmYXVsdCIpJiYobz0hMSk7aWYodm9pZCAwPT09byYmKDAsYS5oYXNPd24pKHIsImRlZmF1bHQiKSl7dmFyIGY9ci5kZWZhdWx0O289KDAsYS5pc0ZuKShmKT9mKCk6ZixuW3RdPW99cmV0dXJuIGZ1bmN0aW9uKHQsZSxuLHIsaSl7aWYodC5yZXF1aXJlZCYmcilyZXR1cm4iTWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXIgYCIuY29uY2F0KGUsImAiKTtpZihudWxsPT1uJiYhdC5yZXF1aXJlZCl7dmFyIG89dC52YWxpZGF0b3I7cmV0dXJuIG8/byhuLGkpOnZvaWQgMH12YXIgYz10LnR5cGUsdT0hY3x8ITA9PT1jLGY9W107aWYoYyl7QXJyYXkuaXNBcnJheShjKXx8KGM9W2NdKTtmb3IodmFyIGg9MDtoPGMubGVuZ3RoJiYhdTtoKyspe3ZhciBwPXMobixjW2hdKTtmLnB1c2gocC5leHBlY3RlZFR5cGV8fCIiKSx1PXAudmFsaWR9fWlmKCF1KXJldHVybiBmdW5jdGlvbih0LGUsbil7dmFyIHI9InBhcmFtZXRlciBgIi5jb25jYXQodCwiYC4iKSsiIEV4cGVjdGVkICIuY29uY2F0KG4uam9pbigiLCAiKSksaT1uWzBdLG89KDAsYS50b1Jhd1R5cGUpKGUpLHM9bChlLGkpLGM9bChlLG8pOzE9PT1uLmxlbmd0aCYmZChpKSYmIWZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCksbj0wO248dDtuKyspZVtuXT1hcmd1bWVudHNbbl07cmV0dXJuIGUuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuImJvb2xlYW4iPT09dC50b0xvd2VyQ2FzZSgpfSkpfShpLG8pJiYocis9IiB3aXRoIHZhbHVlICIuY29uY2F0KHMpKTtyKz0iLCBnb3QgIi5jb25jYXQobywiICIpLGQobykmJihyKz0id2l0aCB2YWx1ZSAiLmNvbmNhdChjLCIuIikpO3JldHVybiByfShlLG4sZik7dmFyIHY9dC52YWxpZGF0b3I7aWYodilyZXR1cm4gdihuLGkpfShyLHQsbyxpLG4pfTt2YXIgaT1yKG4oIjUzY2EiKSk7bigiMTRkOSIpLG4oImFjMWYiKSxuKCIwMGI0IiksbigiNDY2ZCIpLG4oImQ0MDEiKSxuKCJkM2I3IiksbigiMjVmMCIpLG4oImE5ZTMiKTt2YXIgYT1uKCJkYjZhIik7dmFyIG89L14oU3RyaW5nfE51bWJlcnxCb29sZWFufEZ1bmN0aW9ufFN5bWJvbCkkLztmdW5jdGlvbiBzKHQsZSl7dmFyIG4scj1jKGUpO2lmKG8udGVzdChyKSl7dmFyIHM9KDAsaS5kZWZhdWx0KSh0KTtuPXM9PT1yLnRvTG93ZXJDYXNlKCksbnx8Im9iamVjdCIhPT1zfHwobj10IGluc3RhbmNlb2YgZSl9ZWxzZSBuPXQuYnl0ZUxlbmd0aD49MHx8KCJPYmplY3QiPT09cj8oMCxhLmlzUGxhaW5PYmplY3QpKHQpOiJBcnJheSI9PT1yP0FycmF5LmlzQXJyYXkodCk6dCBpbnN0YW5jZW9mIGV8fCgwLGEudG9SYXdUeXBlKSh0KT09PWMoZSkpO3JldHVybnt2YWxpZDpuLGV4cGVjdGVkVHlwZTpyfX1mdW5jdGlvbiBjKHQpe3ZhciBlPXQmJnQudG9TdHJpbmcoKS5tYXRjaCgvXlxzKmZ1bmN0aW9uIChcdyspLyk7cmV0dXJuIGU/ZVsxXToiIn1mdW5jdGlvbiB1KHQsZSl7cmV0dXJuIGModCk9PT1jKGUpfWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4iU3RyaW5nIj09PWU/JyInLmNvbmNhdCh0LCciJyk6IiIuY29uY2F0KCJOdW1iZXIiPT09ZT9OdW1iZXIodCk6dCl9dmFyIGY9WyJzdHJpbmciLCJudW1iZXIiLCJib29sZWFuIl07ZnVuY3Rpb24gZCh0KXtyZXR1cm4gZi5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpPT09ZX0pKX19LCIyY2Y0IjpmdW5jdGlvbih0LGUsbil7dmFyIHIsaSxhLG8scz1uKCJkYTg0IiksYz1uKCIyYmE0IiksdT1uKCIwMzY2IiksbD1uKCIxNjI2IiksZj1uKCIxYTJkIiksZD1uKCJkMDM5IiksaD1uKCIxYmU0IikscD1uKCJmMzZhIiksdj1uKCJjYzEyIiksZz1uKCJkNmQ2IiksbT1uKCIxY2RjIiksYj1uKCI2MDVkIikseT1zLnNldEltbWVkaWF0ZSxfPXMuY2xlYXJJbW1lZGlhdGUsdz1zLnByb2Nlc3MseD1zLkRpc3BhdGNoLFM9cy5GdW5jdGlvbixUPXMuTWVzc2FnZUNoYW5uZWwsQz1zLlN0cmluZyxrPTAsTz17fTt0cnl7cj1zLmxvY2F0aW9ufWNhdGNoKEEpe312YXIgRT1mdW5jdGlvbih0KXtpZihmKE8sdCkpe3ZhciBlPU9bdF07ZGVsZXRlIE9bdF0sZSgpfX0sST1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtFKHQpfX0sUD1mdW5jdGlvbih0KXtFKHQuZGF0YSl9LE09ZnVuY3Rpb24odCl7cy5wb3N0TWVzc2FnZShDKHQpLHIucHJvdG9jb2wrIi8vIityLmhvc3QpfTt5JiZffHwoeT1mdW5jdGlvbih0KXtnKGFyZ3VtZW50cy5sZW5ndGgsMSk7dmFyIGU9bCh0KT90OlModCksbj1wKGFyZ3VtZW50cywxKTtyZXR1cm4gT1srK2tdPWZ1bmN0aW9uKCl7YyhlLHZvaWQgMCxuKX0saShrKSxrfSxfPWZ1bmN0aW9uKHQpe2RlbGV0ZSBPW3RdfSxiP2k9ZnVuY3Rpb24odCl7dy5uZXh0VGljayhJKHQpKX06eCYmeC5ub3c/aT1mdW5jdGlvbih0KXt4Lm5vdyhJKHQpKX06VCYmIW0/KGE9bmV3IFQsbz1hLnBvcnQyLGEucG9ydDEub25tZXNzYWdlPVAsaT11KG8ucG9zdE1lc3NhZ2UsbykpOnMuYWRkRXZlbnRMaXN0ZW5lciYmbChzLnBvc3RNZXNzYWdlKSYmIXMuaW1wb3J0U2NyaXB0cyYmciYmImZpbGU6IiE9PXIucHJvdG9jb2wmJiFkKE0pPyhpPU0scy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixQLCExKSk6aT0ib25yZWFkeXN0YXRlY2hhbmdlImluIHYoInNjcmlwdCIpP2Z1bmN0aW9uKHQpe2guYXBwZW5kQ2hpbGQodigic2NyaXB0IikpWyJvbnJlYWR5c3RhdGVjaGFuZ2UiXT1mdW5jdGlvbigpe2gucmVtb3ZlQ2hpbGQodGhpcyksRSh0KX19OmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQoSSh0KSwwKX0pLHQuZXhwb3J0cz17c2V0OnksY2xlYXI6X319LCIyZDAwIjpmdW5jdGlvbih0LGUsbil7dmFyIHIsaSxhPW4oImRhODQiKSxvPW4oIjM0MmYiKSxzPWEucHJvY2VzcyxjPWEuRGVubyx1PXMmJnMudmVyc2lvbnN8fGMmJmMudmVyc2lvbixsPXUmJnUudjg7bCYmKHI9bC5zcGxpdCgiLiIpLGk9clswXT4wJiZyWzBdPDQ/MTorKHJbMF0rclsxXSkpLCFpJiZvJiYocj1vLm1hdGNoKC9FZGdlXC8oXGQrKS8pLCghcnx8clsxXT49NzQpJiYocj1vLm1hdGNoKC9DaHJvbWVcLyhcZCspLyksciYmKGk9K3JbMV0pKSksdC5leHBvcnRzPWl9LCIyZWUyIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHdpbmRvdy5DU1MmJkNTUy5zdXBwb3J0cyYmKENTUy5zdXBwb3J0cyh0KXx8Q1NTLnN1cHBvcnRzLmFwcGx5KENTUyx0LnNwbGl0KCI6IikpKX1uKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIGk9eyJjc3MudmFyIjpyKCItLWE6MCIpLCJjc3MuZW52IjpyKCJ0b3A6ZW52KGEpIiksImNzcy5jb25zdGFudCI6cigidG9wOmNvbnN0YW50KGEpIil9O2UuZGVmYXVsdD1pfSwiMzAxYiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZGRhZCIpLGk9bigiOWFkZiIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sMzExNzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihlKXtlLmNvbmZpZy5lcnJvckhhbmRsZXI9ZnVuY3Rpb24obixyLGkpe3ZhciBzPSgwLG8udG9SYXdUeXBlKShuKTtlLnV0aWwud2FybigiRXJyb3IgaW4gIi5jb25jYXQoaSwnOiAiJykuY29uY2F0KCJFcnJvciI9PT1zP24udG9TdHJpbmcoKTpuLCciJykscik7dmFyIGM9ImZ1bmN0aW9uIj09PXR5cGVvZiBnZXRBcHAmJmdldEFwcCgpO2MmJigwLGEuaGFzTGlmZWN5Y2xlSG9vaykoYy4kb3B0aW9ucywib25FcnJvciIpP2MuX19jYWxsX2hvb2soIm9uRXJyb3IiLG4pOnQuZXJyb3Iobil9O3ZhciBuPWUuY29uZmlnLmlzUmVzZXJ2ZWRUYWc7ZS5jb25maWcuaXNSZXNlcnZlZFRhZz1mdW5jdGlvbih0KXtyZXR1cm4tMSE9PWkuZGVmYXVsdC5pbmRleE9mKHQpfHxuKHQpfSxlLmNvbmZpZy5pZ25vcmVkRWxlbWVudHM9aS5kZWZhdWx0O3ZhciByPWUuY29uZmlnLmdldFRhZ05hbWVzcGFjZSxzPVsic3dpdGNoIiwiaW1hZ2UiLCJ0ZXh0IiwidmlldyJdO2UuY29uZmlnLmdldFRhZ05hbWVzcGFjZT1mdW5jdGlvbih0KXtyZXR1cm4hfnMuaW5kZXhPZih0KSYmcih0KX19LG4oIjk5YWYiKSxuKCJkNDAxIiksbigiZDNiNyIpLG4oIjI1ZjAiKSxuKCJjOTc1Iik7dmFyIGk9cihuKCI0Y2FjIikpLGE9bigiZjRmMCIpLG89bigiZGI2YSIpfSkuY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sMzE1MjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJhOWUzIik7dmFyIHI9e25hbWU6IlBhZ2VSZWZyZXNoIixwcm9wczp7Y29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiMyQkQwMDkifSxvZmZzZXQ6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH19fTtlLmRlZmF1bHQ9cn0sMzE5MzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI3NjY2IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiMzIwZCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCl7dmFyIGU9ITEsbj0hMTt0KCJvblBhZ2VMb2FkIiwoZnVuY3Rpb24odCl7Yyh0KX0pKSx0KCJvblBhZ2VTaG93IiwoZnVuY3Rpb24odCl7dmFyIGE9dC4kcGFyZW50LiRwYXJlbnQ7dC5faXNNb3VudGVkJiZjKHQpLG4mJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsbixzKSxhLmRpc2FibGVTY3JvbGwmJihuPW8uZGlzYWJsZVNjcm9sbCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLG4scykpO3ZhciB1PSgwLGkuaGFzTGlmZWN5Y2xlSG9vaykodC4kb3B0aW9ucywib25QYWdlU2Nyb2xsIiksbD0oMCxpLmhhc0xpZmVjeWNsZUhvb2spKHQuJG9wdGlvbnMsIm9uUmVhY2hCb3R0b20iKSxmPWEub25SZWFjaEJvdHRvbURpc3RhbmNlLGQ9KDAsci5pc1BsYWluT2JqZWN0KShhLnRpdGxlTlZpZXcpJiYidHJhbnNwYXJlbnQiPT09YS50aXRsZU5WaWV3LnR5cGV8fCgwLHIuaXNQbGFpbk9iamVjdCkoYS5uYXZpZ2F0aW9uQmFyKSYmInRyYW5zcGFyZW50Ij09PWEubmF2aWdhdGlvbkJhci50eXBlO2UmJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsZSksKGR8fHV8fGwpJiYoZT0oMCxvLmNyZWF0ZVNjcm9sbExpc3RlbmVyKSh0LiRwYWdlLmlkLHtlbmFibGVQYWdlU2Nyb2xsOnUsZW5hYmxlUGFnZVJlYWNoQm90dG9tOmwsb25SZWFjaEJvdHRvbURpc3RhbmNlOmYsZW5hYmxlVHJhbnNwYXJlbnRUaXRsZU5WaWV3OmR9KSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixlKX0pKSl9KSl9LG4oImFjZDgiKSxuKCI5OWFmIik7dmFyIHI9bigiZGI2YSIpLGk9bigiZjRmMCIpLGE9bigiMGZiZSIpLG89bigiMDdhNiIpLHM9ISFyLnN1cHBvcnRzUGFzc2l2ZSYme3Bhc3NpdmU6ITF9O2Z1bmN0aW9uIGMoZSl7aWYodW5pLmNhbklVc2UoImNzcy52YXIiKSl7dmFyIG49cGFyc2VGbG9hdChfX3VuaUNvbmZpZy50YWJCYXIuaGVpZ2h0KSxyPWUuJHBhcmVudC4kcGFyZW50LGk9ci5uYXZpZ2F0aW9uQmFyLnR5cGUsbz0iZGVmYXVsdCI9PT1pfHwiZmxvYXQiPT09aT9hLk5BVkJBUl9IRUlHSFQ6MCxzPWdldEFwcCgpLiRjaGlsZHJlblswXS5zaG93VGFiQmFyP2lzTmFOKG4pP2EuVEFCQkFSX0hFSUdIVDpuOjAsYz11bmkuY2FuSVVzZSgiY3NzLmVudiIpPyJlbnYiOnVuaS5jYW5JVXNlKCJjc3MuY29uc3RhbnQiKT8iY29uc3RhbnQiOiIiLHU9byYmYz8iY2FsYygiLmNvbmNhdChvLCJweCArICIpLmNvbmNhdChjLCIoc2FmZS1hcmVhLWluc2V0LXRvcCkpIik6IiIuY29uY2F0KG8sInB4IiksbD1zJiZjPyJjYWxjKCIuY29uY2F0KHMsInB4ICsgIikuY29uY2F0KGMsIihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSkiKToiIi5jb25jYXQocywicHgiKSxmPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZTtmLnNldFByb3BlcnR5KCItLXdpbmRvdy10b3AiLCJjYWxjKHZhcigtLXRvcC13aW5kb3ctaGVpZ2h0KSArICIuY29uY2F0KHUsIikiKSksZi5zZXRQcm9wZXJ0eSgiLS13aW5kb3ctYm90dG9tIixsKSx0LmRlYnVnKCIiLmNvbmNhdChlLiRwYWdlLnJvdXRlLCJbIikuY29uY2F0KGUuJHBhZ2UuaWQsIl3vvJotLXdpbmRvdy10b3A9IikuY29uY2F0KHUpKSx0LmRlYnVnKCIiLmNvbmNhdChlLiRwYWdlLnJvdXRlLCJbIikuY29uY2F0KGUuJHBhZ2UuaWQsIl3vvJotLXdpbmRvdy1ib3R0b209IikuY29uY2F0KGwpKX19fSkuY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sMzI4MDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImViYjUiKSxpPW4oIjJiYTQiKSxhPW4oImU1OGMiKSxvPXIuYVR5cGVkQXJyYXkscz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7cygibGFzdEluZGV4T2YiLChmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoO3JldHVybiBpKGEsbyh0aGlzKSxlPjE/W3QsYXJndW1lbnRzWzFdXTpbdF0pfSkpfSwzMzE5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnByZXZpZXdJbWFnZT12b2lkIDAsbigiZDgxZCIpLG4oImE5ZTMiKTt2YXIgaT1yKG4oImYxY2EiKSksYT17dXJsczp7dHlwZTpBcnJheSxyZXF1aXJlZDohMCx2YWxpZGF0b3I6ZnVuY3Rpb24odCxlKXt2YXIgbjtpZihlLnVybHM9dC5tYXAoKGZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT09dHlwZW9mIHQpcmV0dXJuKDAsaS5kZWZhdWx0KSh0KTtuPSEwfSkpLG4pcmV0dXJuInVybCBpcyBub3Qgc3RyaW5nIn19LGN1cnJlbnQ6e3R5cGU6W1N0cmluZyxOdW1iZXJdLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpeyJudW1iZXIiPT09dHlwZW9mIHQ/ZS5jdXJyZW50PXQ+MCYmdDxlLnVybHMubGVuZ3RoP3Q6MDoic3RyaW5nIj09PXR5cGVvZiB0JiZ0JiYoZS5jdXJyZW50PSgwLGkuZGVmYXVsdCkodCkpfSxkZWZhdWx0OjB9fTtlLnByZXZpZXdJbWFnZT1hfSwzMzc3OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oImZhMjEiKTtmb3IodmFyIGkgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGkpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGkpO3ZhciBhPW4oImYwYzUiKSxvPU9iamVjdChhWyJhIl0pKHJbImRlZmF1bHQiXSx2b2lkIDAsdm9pZCAwLCExLG51bGwsbnVsbCxudWxsLCExLHZvaWQgMCx2b2lkIDApO2VbImRlZmF1bHQiXT1vLmV4cG9ydHN9LCIzMzlmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJhOWUzIik7dmFyIHI9e2RhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aG92ZXJpbmc6ITF9fSxwcm9wczp7aG92ZXJDbGFzczp7dHlwZTpTdHJpbmcsZGVmYXVsdDoibm9uZSJ9LGhvdmVyU3RvcFByb3BhZ2F0aW9uOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0saG92ZXJTdGFydFRpbWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NTB9LGhvdmVyU3RheVRpbWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NDAwfX0sbWV0aG9kczp7X2hvdmVyVG91Y2hTdGFydDpmdW5jdGlvbih0KXt0LnRvdWNoZXMubGVuZ3RoPjF8fHRoaXMuX2hhbmRsZUhvdmVyU3RhcnQodCl9LF9ob3Zlck1vdXNlZG93bjpmdW5jdGlvbih0KXt0aGlzLl9ob3ZlclRvdWNofHwodGhpcy5faGFuZGxlSG92ZXJTdGFydCh0KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5faG92ZXJNb3VzZXVwKSl9LF9oYW5kbGVIb3ZlclN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dC5faG92ZXJQcm9wYWdhdGlvblN0b3BwZWR8fHRoaXMuaG92ZXJDbGFzcyYmIm5vbmUiIT09dGhpcy5ob3ZlckNsYXNzJiYhdGhpcy5kaXNhYmxlZCYmKHRoaXMuaG92ZXJTdG9wUHJvcGFnYXRpb24mJih0Ll9ob3ZlclByb3BhZ2F0aW9uU3RvcHBlZD0hMCksdGhpcy5faG92ZXJUb3VjaD0hMCx0aGlzLl9ob3ZlclN0YXJ0VGltZXI9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLmhvdmVyaW5nPSEwLGUuX2hvdmVyVG91Y2h8fGUuX2hvdmVyUmVzZXQoKX0pLHRoaXMuaG92ZXJTdGFydFRpbWUpKX0sX2hvdmVyTW91c2V1cDpmdW5jdGlvbigpe3RoaXMuX2hvdmVyVG91Y2gmJih0aGlzLl9oYW5kbGVIb3ZlckVuZCgpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9ob3Zlck1vdXNldXApKX0sX2hvdmVyVG91Y2hFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9oYW5kbGVIb3ZlckVuZCgpfSxfaGFuZGxlSG92ZXJFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9ob3ZlclRvdWNoPSExLHRoaXMuaG92ZXJpbmcmJnRoaXMuX2hvdmVyUmVzZXQoKX0sX2hvdmVyUmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodC5faG92ZXJTdGF5VGltZXIpLHQuX2hvdmVyU3RheVRpbWVyPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dC5ob3ZlcmluZz0hMX0pLHQuaG92ZXJTdGF5VGltZSl9KSl9LF9ob3ZlclRvdWNoQ2FuY2VsOmZ1bmN0aW9uKCl7dGhpcy5faG92ZXJUb3VjaD0hMSx0aGlzLmhvdmVyaW5nPSExLGNsZWFyVGltZW91dCh0aGlzLl9ob3ZlclN0YXJ0VGltZXIpfX19O2UuZGVmYXVsdD1yfSwzNDEwOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyM2U3IiksaT1uKCJkMDM5IiksYT1uKCI3YjBiIiksbz1uKCJlMTYzIikscz1uKCJlMTc3IiksYz1pKChmdW5jdGlvbigpe28oMSl9KSk7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOmMsc2hhbTohc30se2dldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiBvKGEodCkpfX0pfSwzNDI3OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0sbigiZDllMiIpLG4oImQ0MDEiKX0sIjM0MmYiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDY2Iik7dC5leHBvcnRzPXIoIm5hdmlnYXRvciIsInVzZXJBZ2VudCIpfHwiIn0sIjM1MGEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPXIobigiNTUzMCIpKSxhPXIobigiZjE5ZSIpKSxvPXIobigiYTUyNCIpKSxzPXIobigiMWNjYyIpKSxjPSgwLGkuZGVmYXVsdCkoe1RhYkJhcjphLmRlZmF1bHQsTGF5b3V0Om8uZGVmYXVsdH0scy5kZWZhdWx0KTtlLmRlZmF1bHQ9Y30sMzUxMTpmdW5jdGlvbih0LGUpe3ZhciBuPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYodD45MDA3MTk5MjU0NzQwOTkxKXRocm93IG4oIk1heGltdW0gYWxsb3dlZCBpbmRleCBleGNlZWRlZCIpO3JldHVybiB0fX0sMzUyOTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImM2NWIiKSxhPW4oIjU5ZWQiKSxvPW4oImYwNjkiKSxzPW4oImU2NjciKSxjPW4oIjIyNjYiKSx1PW4oIjVlZWQiKTtyKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITAsZm9yY2VkOnV9LHtyYWNlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1vLmYoZSkscj1uLnJlamVjdCx1PXMoKGZ1bmN0aW9uKCl7dmFyIG89YShlLnJlc29sdmUpO2ModCwoZnVuY3Rpb24odCl7aShvLGUsdCkudGhlbihuLnJlc29sdmUscil9KSl9KSk7cmV0dXJuIHUuZXJyb3ImJnIodS52YWx1ZSksbi5wcm9taXNlfX0pfSwiMzVhMSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImY1ZGYiKSxpPW4oImRjNGEiKSxhPW4oIjcyMzQiKSxvPW4oIjNmOGMiKSxzPW4oImI2MjIiKSxjPXMoIml0ZXJhdG9yIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCFhKHQpKXJldHVybiBpKHQsYyl8fGkodCwiQEBpdGVyYXRvciIpfHxvW3IodCldfX0sIjM1YmUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT17ZXh0ZW5kOiEwLGlzRm46ITAsaXNTdHI6ITAsaXNTdHJpbmc6ITAsaXNPYmplY3Q6ITAsaXNQbGFpbk9iamVjdDohMCxoYXNPd246ITAsbm9vcDohMCx0b1Jhd1R5cGU6ITAsY2FjaGVkOiEwLGNhbWVsaXplOiEwLGNhcGl0YWxpemU6ITAsc2V0UHJvcGVydGllczohMCxnZXRMZW46ITAsZm9ybWF0RGF0ZVRpbWU6ITAsdXBkYXRlRWxlbWVudFN0eWxlOiEwLGd1aWQ6ITAsZGVib3VuY2U6ITAsdGhyb3R0bGU6ITAsa2ViYWJDYXNlOiEwLGxvb3NlRXF1YWw6ITAsZGVlcENsb25lOiEwLHNvcnRPYmplY3Q6ITB9O2UuY2FjaGVkPWcsZS5jYXBpdGFsaXplPWUuY2FtZWxpemU9dm9pZCAwLGUuZGVib3VuY2U9ZnVuY3Rpb24odCxlKXt2YXIgbixyPWZ1bmN0aW9uKCl7dmFyIHI9YXJndW1lbnRzLGk9dGhpcztjbGVhclRpbWVvdXQobik7dmFyIGE9ZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShpLHIpfTtuPXNldFRpbWVvdXQoYSxlKX07cmV0dXJuIHIuY2FuY2VsPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KG4pfSxyfSxlLmRlZXBDbG9uZT1mdW5jdGlvbih0LGUpe3JldHVybiB0Lm1hcCgoZnVuY3Rpb24gdChuKXt2YXIgcj1uLmNoaWxkcmVuJiZuLmNoaWxkcmVuLm1hcCh0KSxpPWUobi50YWcsbi5kYXRhLHIpO3JldHVybiBpLnRleHQ9bi50ZXh0LGkuaXNDb21tZW50PW4uaXNDb21tZW50LGkuY29tcG9uZW50T3B0aW9ucz1uLmNvbXBvbmVudE9wdGlvbnMsaS5lbG09bi5lbG0saS5jb250ZXh0PW4uY29udGV4dCxpLm5zPW4ubnMsaS5pc1N0YXRpYz1uLmlzU3RhdGljLGkua2V5PW4ua2V5LGl9KSl9LGUuZXh0ZW5kPXZvaWQgMCxlLmZvcm1hdERhdGVUaW1lPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZGF0ZSxuPXZvaWQgMD09PWU/bmV3IERhdGU6ZSxyPXQubW9kZSxpPXZvaWQgMD09PXI/ImRhdGUiOnI7cmV0dXJuInRpbWUiPT09aT91KG4uZ2V0SG91cnMoKSkrIjoiK3Uobi5nZXRNaW51dGVzKCkpOm4uZ2V0RnVsbFllYXIoKSsiLSIrdShuLmdldE1vbnRoKCkrMSkrIi0iK3Uobi5nZXREYXRlKCkpfSxlLmdldExlbj1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIjtyZXR1cm4oIiIrdCkucmVwbGFjZSgvW15ceDAwLVx4ZmZdL2csIioqIikubGVuZ3RofSxlLmd1aWQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcig0Mjk0OTY3Mjk2KigxK01hdGgucmFuZG9tKCkpKS50b1N0cmluZygxNikuc2xpY2UoMSl9LGUuaGFzT3duPXYsZS5pc0ZuPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PT10eXBlb2YgdH0sZS5pc09iamVjdD1oLGUuaXNQbGFpbk9iamVjdD1wLGUuaXNTdHI9ZixlLmlzU3RyaW5nPXZvaWQgMCxlLmtlYmFiQ2FzZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKC9bQS1aXS9nLChmdW5jdGlvbih0KXtyZXR1cm4iLSIrdC50b0xvd2VyQ2FzZSgpfSkpfSxlLmxvb3NlRXF1YWw9ZnVuY3Rpb24gdChlLG4pe2lmKGU9PT1uKXJldHVybiEwO3ZhciByPWgoZSksaT1oKG4pO2lmKCFyfHwhaSlyZXR1cm4hciYmIWkmJlN0cmluZyhlKT09PVN0cmluZyhuKTt0cnl7dmFyIGE9QXJyYXkuaXNBcnJheShlKSxvPUFycmF5LmlzQXJyYXkobik7aWYoYSYmbylyZXR1cm4gZS5sZW5ndGg9PT1uLmxlbmd0aCYmZS5ldmVyeSgoZnVuY3Rpb24oZSxyKXtyZXR1cm4gdChlLG5bcl0pfSkpO2lmKGUgaW5zdGFuY2VvZiBEYXRlJiZuIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gZS5nZXRUaW1lKCk9PT1uLmdldFRpbWUoKTtpZihhfHxvKXJldHVybiExO3ZhciBzPU9iamVjdC5rZXlzKGUpLGM9T2JqZWN0LmtleXMobik7cmV0dXJuIHMubGVuZ3RoPT09Yy5sZW5ndGgmJnMuZXZlcnkoKGZ1bmN0aW9uKHIpe3JldHVybiB0KGVbcl0sbltyXSl9KSl9Y2F0Y2godSl7cmV0dXJuITF9fSxlLm5vb3A9ZnVuY3Rpb24oKXt9LGUuc2V0UHJvcGVydGllcz1mdW5jdGlvbih0LGUsbil7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXt2KG4sZSkmJih0W2VdPW5bZV0pfSkpfSxlLnNvcnRPYmplY3Q9ZnVuY3Rpb24odCl7dmFyIGU9e307cCh0KSYmT2JqZWN0LmtleXModCkuc29ydCgpLmZvckVhY2goKGZ1bmN0aW9uKG4pe2Vbbl09dFtuXX0pKTtyZXR1cm4gT2JqZWN0LmtleXMoZSk/ZTp0fSxlLnRocm90dGxlPWZ1bmN0aW9uKHQsZSl7dmFyIG4scixpPTAsYT1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLG89YXJndW1lbnRzLmxlbmd0aCxzPW5ldyBBcnJheShvKSxjPTA7YzxvO2MrKylzW2NdPWFyZ3VtZW50c1tjXTt2YXIgdT1EYXRlLm5vdygpO2NsZWFyVGltZW91dChuKSxyPWZ1bmN0aW9uKCl7cj1udWxsLGk9dSx0LmFwcGx5KGEscyl9LHUtaTxlP249c2V0VGltZW91dChyLGUtKHUtaSkpOnIoKX07cmV0dXJuIGEuY2FuY2VsPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KG4pLHI9bnVsbH0sYS5mbHVzaD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChuKSxyJiZyKCl9LGF9LGUudG9SYXdUeXBlPWZ1bmN0aW9uKHQpe3JldHVybiBzLmNhbGwodCkuc2xpY2UoOCwtMSl9LGUudXBkYXRlRWxlbWVudFN0eWxlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpdC5zdHlsZVtuXT1lW25dfTt2YXIgYT1yKG4oIjUzY2EiKSk7bigiZDNiNyIpLG4oImZiNmEiKSxuKCJhYzFmIiksbigiNTMxOSIpLG4oIjE1OWIiKSxuKCJkNDAxIiksbigiMjVmMCIpLG4oImI2NGIiKSxuKCJkODFkIiksbigiNGU4MiIpO3ZhciBvPW4oIjE0YmMiKTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKChmdW5jdGlvbih0KXsiZGVmYXVsdCIhPT10JiYiX19lc01vZHVsZSIhPT10JiYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksdCl8fHQgaW4gZSYmZVt0XT09PW9bdF18fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG9bdF19fSkpfSkpO3ZhciBzPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsYz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHU9ZnVuY3Rpb24odCl7cmV0dXJuIHQ+OT90OiIwIit0fSxsPU9iamVjdC5hc3NpZ247ZnVuY3Rpb24gZih0KXtyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiB0fWUuZXh0ZW5kPWw7dmFyIGQ9ZjtmdW5jdGlvbiBoKHQpe3JldHVybiBudWxsIT09dCYmIm9iamVjdCI9PT0oMCxhLmRlZmF1bHQpKHQpfWZ1bmN0aW9uIHAodCl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1zLmNhbGwodCl9ZnVuY3Rpb24gdih0LGUpe3JldHVybiBjLmNhbGwodCxlKX1mdW5jdGlvbiBnKHQpe3ZhciBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciByPWVbbl07cmV0dXJuIHJ8fChlW25dPXQobikpfX1lLmlzU3RyaW5nPWQ7dmFyIG09Ly0oXHcpL2csYj1nKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKG0sKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/ZS50b1VwcGVyQ2FzZSgpOiIifSkpfSkpO2UuY2FtZWxpemU9Yjt2YXIgeT1nKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpfSkpO2UuY2FwaXRhbGl6ZT15fSwiMzVkMCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJnZXRBcHAiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmdldEFwcH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiZ2V0Q3VycmVudFBhZ2VzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5nZXRDdXJyZW50UGFnZXN9fSk7dmFyIGk9cihuKCI5NDVjIikpLGE9cihuKCJiNDZmIikpLG89bigiYzU1OCIpLHM9bigiNDFhZSIpOygwLGkuZGVmYXVsdCkodC5vbix7Z2V0QXBwOnMuZ2V0QXBwLGdldEN1cnJlbnRQYWdlczpzLmdldEN1cnJlbnRQYWdlc30pLCgwLGEuZGVmYXVsdCkodC5zdWJzY3JpYmUse2dldEFwcDpzLmdldEFwcCxnZXRDdXJyZW50UGFnZXM6cy5nZXRDdXJyZW50UGFnZXN9KTt2YXIgYz1vLnVuaTtlLmRlZmF1bHQ9Y30pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiMzVkMDYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oImZjMzUiKSxpPW4oImMyYjEiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LCIzNmVmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuY3JlYXRlTWVkaWFRdWVyeU9ic2VydmVyPWZ1bmN0aW9uKHQsZSl7dC5faXNWdWV8fChlPXQsdD1udWxsKTtpZih0KXJldHVybiBuZXcgbCh0LGUpO3JldHVybiBuZXcgbCgoMCxzLmdldEN1cnJlbnRQYWdlVm0pKCJjcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXIiKSxlKX0sbigiMTRkOSIpO3ZhciBpPXIobigiZDRlYyIpKSxhPXIobigiYmVlMiIpKSxvPXIobigiZmYyMiIpKSxzPW4oIjI0MTIiKSxjPW4oIjlkOGMiKSx1PSgwLG8uZGVmYXVsdCkoInJlcXVlc3RNZWRpYVF1ZXJ5T2JzZXJ2ZXIiKSxsPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LG4peygwLGkuZGVmYXVsdCkodGhpcyxlKSx0aGlzLnBhZ2VJZD10LiRwYWdlJiZ0LiRwYWdlLmlkLHRoaXMuY29tcG9uZW50PXQuXyRpZHx8dCx0aGlzLm9wdGlvbnM9bn1yZXR1cm4oMCxhLmRlZmF1bHQpKGUsW3trZXk6Im9ic2VydmUiLHZhbHVlOmZ1bmN0aW9uKGUsbil7ImZ1bmN0aW9uIj09PXR5cGVvZiBuJiYodGhpcy5vcHRpb25zPWUsdGhpcy5yZXFJZD11LnB1c2gobiksdC5wdWJsaXNoSGFuZGxlcigicmVxdWVzdE1lZGlhUXVlcnlPYnNlcnZlciIse3JlcUlkOnRoaXMucmVxSWQsY29tcG9uZW50OnRoaXMuY29tcG9uZW50LG9wdGlvbnM6dGhpcy5vcHRpb25zfSwoMCxjLmNoZWNrSW5XaW5kb3dzKSh0aGlzLmNvbXBvbmVudCk/dGhpcy5jb21wb25lbnQ6dGhpcy5wYWdlSWQpKX19LHtrZXk6ImRpc2Nvbm5lY3QiLHZhbHVlOmZ1bmN0aW9uKCl7dC5wdWJsaXNoSGFuZGxlcigiZGVzdHJveU1lZGlhUXVlcnlPYnNlcnZlciIse3JlcUlkOnRoaXMucmVxSWR9LCgwLGMuY2hlY2tJbldpbmRvd3MpKHRoaXMuY29tcG9uZW50KT90aGlzLmNvbXBvbmVudDp0aGlzLnBhZ2VJZCl9fV0pLGV9KCl9KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sIjM3N2UiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5jbG9zZVByZXZpZXdJbWFnZT1mdW5jdGlvbih0LGUpe2koIm9uQ2xvc2VQcmV2aWV3SW1hZ2UiLChmdW5jdGlvbigpe2EoZSx7ZXJyTXNnOiJjbG9zZVByZXZpZXdJbWFnZTpvayJ9KX0pKX0sZS5wcmV2aWV3SW1hZ2U9ZnVuY3Rpb24odCxlKXtpKCJvblNob3dQcmV2aWV3SW1hZ2UiLHQsKGZ1bmN0aW9uKHQpe2EoZSx7ZXJyTXNnOiJwcmV2aWV3SW1hZ2U6b2sifSl9KSl9O3ZhciByPXQsaT1yLmVtaXQsYT1yLmludm9rZUNhbGxiYWNrSGFuZGxlcn0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiMzdkYyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCxyKXtuKCI3YTgyIik7dmFyIGk9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuTE9DQUxFX1pIX0hBTlQ9ZS5MT0NBTEVfWkhfSEFOUz1lLkxPQ0FMRV9GUj1lLkxPQ0FMRV9FUz1lLkxPQ0FMRV9FTj1lLkkxOG49ZS5Gb3JtYXR0ZXI9dm9pZCAwLGUuY29tcGlsZUkxOG5Kc29uU3RyPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5sb2NhbGUscj1lLmxvY2FsZXMsaT1lLmRlbGltaXRlcnM7aWYoIUModCxpKSlyZXR1cm4gdDtTfHwoUz1uZXcgZik7dmFyIGE9W107T2JqZWN0LmtleXMocikuZm9yRWFjaCgoZnVuY3Rpb24odCl7dCE9PW4mJmEucHVzaCh7bG9jYWxlOnQsdmFsdWVzOnJbdF19KX0pKSxhLnVuc2hpZnQoe2xvY2FsZTpuLHZhbHVlczpyW25dfSk7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShPKEpTT04ucGFyc2UodCksYSxpKSxudWxsLDIpfWNhdGNoKG8pe31yZXR1cm4gdH0sZS5oYXNJMThuSnNvbj1mdW5jdGlvbiB0KGUsbil7U3x8KFM9bmV3IGYpO3JldHVybiBFKGUsKGZ1bmN0aW9uKGUscil7dmFyIGk9ZVtyXTtyZXR1cm4gVChpKT8hIUMoaSxuKXx8dm9pZCAwOnQoaSxuKX0pKX0sZS5pbml0VnVlSTE4bj1mdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxyPWFyZ3VtZW50cy5sZW5ndGg+Mz9hcmd1bWVudHNbM106dm9pZCAwO2lmKCJzdHJpbmciIT09dHlwZW9mIHQpe3ZhciBpPVtlLHRdO3Q9aVswXSxlPWlbMV19InN0cmluZyIhPT10eXBlb2YgdCYmKHQ9eCgpKTsic3RyaW5nIiE9PXR5cGVvZiBuJiYobj0idW5kZWZpbmVkIiE9PXR5cGVvZiBfX3VuaUNvbmZpZyYmX191bmlDb25maWcuZmFsbGJhY2tMb2NhbGV8fCJlbiIpO3ZhciBhPW5ldyBfKHtsb2NhbGU6dCxmYWxsYmFja0xvY2FsZTpuLG1lc3NhZ2VzOmUsd2F0Y2hlcjpyfSksbz1mdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgZ2V0QXBwKW89ZnVuY3Rpb24odCxlKXtyZXR1cm4gYS50KHQsZSl9O2Vsc2V7dmFyIG49ITE7bz1mdW5jdGlvbih0LGUpe3ZhciByPWdldEFwcCgpLiR2bTtyZXR1cm4gciYmKHIuJGxvY2FsZSxufHwobj0hMCx3KHIsYSkpKSxhLnQodCxlKX19cmV0dXJuIG8odCxlKX07cmV0dXJue2kxOG46YSxmOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gYS5mKHQsZSxuKX0sdDpmdW5jdGlvbih0LGUpe3JldHVybiBvKHQsZSl9LGFkZDpmdW5jdGlvbih0LGUpe3ZhciBuPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl07cmV0dXJuIGEuYWRkKHQsZSxuKX0sd2F0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIGEud2F0Y2hMb2NhbGUodCl9LGdldExvY2FsZTpmdW5jdGlvbigpe3JldHVybiBhLmdldExvY2FsZSgpfSxzZXRMb2NhbGU6ZnVuY3Rpb24odCl7cmV0dXJuIGEuc2V0TG9jYWxlKHQpfX19LGUuaXNJMThuU3RyPUMsZS5pc1N0cmluZz12b2lkIDAsZS5ub3JtYWxpemVMb2NhbGU9eSxlLnBhcnNlSTE4bkpzb249ZnVuY3Rpb24gdChlLG4scil7U3x8KFM9bmV3IGYpO3JldHVybiBFKGUsKGZ1bmN0aW9uKGUsaSl7dmFyIGE9ZVtpXTtUKGEpP0MoYSxyKSYmKGVbaV09ayhhLG4scikpOnQoYSxuLHIpfSkpLGV9LGUucmVzb2x2ZUxvY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGU/KGU9eShlKXx8ZSxmdW5jdGlvbih0KXt2YXIgZT1bXSxuPXQuc3BsaXQoIi0iKTt3aGlsZShuLmxlbmd0aCllLnB1c2gobi5qb2luKCItIikpLG4ucG9wKCk7cmV0dXJuIGV9KGUpLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmluZGV4T2YoZSk+LTF9KSkpOmV9fSxuKCIxNGQ5IiksbigiYWMxZiIpLG4oIjAwYjQiKSxuKCJlMjVlIiksbigiOTlhZiIpLG4oIjdkYjAiKSxuKCJkM2I3IiksbigiYzk3NSIpLG4oIjUzMTkiKSxuKCI0OThhIiksbigiYjY0YiIpLG4oIjE1OWIiKSxuKCJhNDM0IiksbigiM2M2NSIpLG4oImU5YzQiKSxuKCJkZGIwIik7dmFyIGE9aShuKCIzODM1IikpLG89aShuKCJkNGVjIikpLHM9aShuKCJiZWUyIikpLGM9aShuKCI1M2NhIikpLHU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPT10JiYib2JqZWN0Ij09PSgwLGMuZGVmYXVsdCkodCl9LGw9WyJ7IiwifSJdLGY9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAsby5kZWZhdWx0KSh0aGlzLHQpLHRoaXMuX2NhY2hlcz1PYmplY3QuY3JlYXRlKG51bGwpfXJldHVybigwLHMuZGVmYXVsdCkodCxbe2tleToiaW50ZXJwb2xhdGUiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOmw7aWYoIWUpcmV0dXJuW3RdO3ZhciByPXRoaXMuX2NhY2hlc1t0XTtyZXR1cm4gcnx8KHI9cCh0LG4pLHRoaXMuX2NhY2hlc1t0XT1yKSx2KHIsZSl9fV0pLHR9KCk7ZS5Gb3JtYXR0ZXI9Zjt2YXIgZD0vXig/OlxkKSsvLGg9L14oPzpcdykrLztmdW5jdGlvbiBwKHQsZSl7dmFyIG49KDAsYS5kZWZhdWx0KShlLDIpLHI9blswXSxpPW5bMV0sbz1bXSxzPTAsYz0iIjt3aGlsZShzPHQubGVuZ3RoKXt2YXIgdT10W3MrK107aWYodT09PXIpe2MmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6Y30pLGM9IiI7dmFyIGw9IiI7dT10W3MrK107d2hpbGUodm9pZCAwIT09dSYmdSE9PWkpbCs9dSx1PXRbcysrXTt2YXIgZj11PT09aSxwPWQudGVzdChsKT8ibGlzdCI6ZiYmaC50ZXN0KGwpPyJuYW1lZCI6InVua25vd24iO28ucHVzaCh7dmFsdWU6bCx0eXBlOnB9KX1lbHNlIGMrPXV9cmV0dXJuIGMmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6Y30pLG99ZnVuY3Rpb24gdih0LGUpe3ZhciBuPVtdLHI9MCxpPUFycmF5LmlzQXJyYXkoZSk/Imxpc3QiOnUoZSk/Im5hbWVkIjoidW5rbm93biI7aWYoInVua25vd24iPT09aSlyZXR1cm4gbjt3aGlsZShyPHQubGVuZ3RoKXt2YXIgYT10W3JdO3N3aXRjaChhLnR5cGUpe2Nhc2UidGV4dCI6bi5wdXNoKGEudmFsdWUpO2JyZWFrO2Nhc2UibGlzdCI6bi5wdXNoKGVbcGFyc2VJbnQoYS52YWx1ZSwxMCldKTticmVhaztjYXNlIm5hbWVkIjoibmFtZWQiPT09aSYmbi5wdXNoKGVbYS52YWx1ZV0pO2JyZWFrO2Nhc2UidW5rbm93biI6MDticmVha31yKyt9cmV0dXJuIG59ZS5MT0NBTEVfWkhfSEFOUz0iemgtSGFucyI7ZS5MT0NBTEVfWkhfSEFOVD0iemgtSGFudCI7ZS5MT0NBTEVfRU49ImVuIjtlLkxPQ0FMRV9GUj0iZnIiO2UuTE9DQUxFX0VTPSJlcyI7dmFyIGc9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxtPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGcuY2FsbCh0LGUpfSxiPW5ldyBmO2Z1bmN0aW9uIHkodCxlKXtpZih0KXtpZih0PXQudHJpbSgpLnJlcGxhY2UoL18vZywiLSIpLGUmJmVbdF0pcmV0dXJuIHQ7aWYodD10LnRvTG93ZXJDYXNlKCksImNoaW5lc2UiPT09dClyZXR1cm4iemgtSGFucyI7aWYoMD09PXQuaW5kZXhPZigiemgiKSlyZXR1cm4gdC5pbmRleE9mKCItaGFucyIpPi0xPyJ6aC1IYW5zIjp0LmluZGV4T2YoIi1oYW50Iik+LTF8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuISFlLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybi0xIT09dC5pbmRleE9mKGUpfSkpfSh0LFsiLXR3IiwiLWhrIiwiLW1vIiwiLWNodCJdKT8iemgtSGFudCI6InpoLUhhbnMiO3ZhciBuPVsiZW4iLCJmciIsImVzIl07ZSYmT2JqZWN0LmtleXMoZSkubGVuZ3RoPjAmJihuPU9iamVjdC5rZXlzKGUpKTt2YXIgcj1mdW5jdGlvbih0LGUpe3JldHVybiBlLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiAwPT09dC5pbmRleE9mKGUpfSkpfSh0LG4pO3JldHVybiByfHx2b2lkIDB9fXZhciBfPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt2YXIgbj10LmxvY2FsZSxyPXQuZmFsbGJhY2tMb2NhbGUsaT10Lm1lc3NhZ2VzLGE9dC53YXRjaGVyLHM9dC5mb3JtYXRlcjsoMCxvLmRlZmF1bHQpKHRoaXMsZSksdGhpcy5sb2NhbGU9ImVuIix0aGlzLmZhbGxiYWNrTG9jYWxlPSJlbiIsdGhpcy5tZXNzYWdlPXt9LHRoaXMubWVzc2FnZXM9e30sdGhpcy53YXRjaGVycz1bXSxyJiYodGhpcy5mYWxsYmFja0xvY2FsZT1yKSx0aGlzLmZvcm1hdGVyPXN8fGIsdGhpcy5tZXNzYWdlcz1pfHx7fSx0aGlzLnNldExvY2FsZShufHwiZW4iKSxhJiZ0aGlzLndhdGNoTG9jYWxlKGEpfXJldHVybigwLHMuZGVmYXVsdCkoZSxbe2tleToic2V0TG9jYWxlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5sb2NhbGU7dGhpcy5sb2NhbGU9eSh0LHRoaXMubWVzc2FnZXMpfHx0aGlzLmZhbGxiYWNrTG9jYWxlLHRoaXMubWVzc2FnZXNbdGhpcy5sb2NhbGVdfHwodGhpcy5tZXNzYWdlc1t0aGlzLmxvY2FsZV09e30pLHRoaXMubWVzc2FnZT10aGlzLm1lc3NhZ2VzW3RoaXMubG9jYWxlXSxuIT09dGhpcy5sb2NhbGUmJnRoaXMud2F0Y2hlcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dChlLmxvY2FsZSxuKX0pKX19LHtrZXk6ImdldExvY2FsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sb2NhbGV9fSx7a2V5OiJ3YXRjaExvY2FsZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMud2F0Y2hlcnMucHVzaCh0KS0xO3JldHVybiBmdW5jdGlvbigpe2Uud2F0Y2hlcnMuc3BsaWNlKG4sMSl9fX0se2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBuPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0scj10aGlzLm1lc3NhZ2VzW3RdO3I/bj9PYmplY3QuYXNzaWduKHIsZSk6T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7bShyLHQpfHwoclt0XT1lW3RdKX0pKTp0aGlzLm1lc3NhZ2VzW3RdPWV9fSx7a2V5OiJmIix2YWx1ZTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuZm9ybWF0ZXIuaW50ZXJwb2xhdGUodCxlLG4pLmpvaW4oIiIpfX0se2tleToidCIsdmFsdWU6ZnVuY3Rpb24oZSxuLHIpe3ZhciBpPXRoaXMubWVzc2FnZTtyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiBuPyhuPXkobix0aGlzLm1lc3NhZ2VzKSxuJiYoaT10aGlzLm1lc3NhZ2VzW25dKSk6cj1uLG0oaSxlKT90aGlzLmZvcm1hdGVyLmludGVycG9sYXRlKGlbZV0scikuam9pbigiIik6KHQud2FybigiQ2Fubm90IHRyYW5zbGF0ZSB0aGUgdmFsdWUgb2Yga2V5cGF0aCAiLmNvbmNhdChlLCIuIFVzZSB0aGUgdmFsdWUgb2Yga2V5cGF0aCBhcyBkZWZhdWx0LiIpKSxlKX19XSksZX0oKTtmdW5jdGlvbiB3KHQsZSl7dC4kd2F0Y2hMb2NhbGU/dC4kd2F0Y2hMb2NhbGUoKGZ1bmN0aW9uKHQpe2Uuc2V0TG9jYWxlKHQpfSkpOnQuJHdhdGNoKChmdW5jdGlvbigpe3JldHVybiB0LiRsb2NhbGV9KSwoZnVuY3Rpb24odCl7ZS5zZXRMb2NhbGUodCl9KSl9ZnVuY3Rpb24geCgpe3JldHVybiJ1bmRlZmluZWQiIT09dHlwZW9mIHVuaSYmdW5pLmdldExvY2FsZT91bmkuZ2V0TG9jYWxlKCk6InVuZGVmaW5lZCIhPT10eXBlb2YgciYmci5nZXRMb2NhbGU/ci5nZXRMb2NhbGUoKToiZW4ifWUuSTE4bj1fO3ZhciBTLFQ9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgdH07ZnVuY3Rpb24gQyh0LGUpe3JldHVybiB0LmluZGV4T2YoZVswXSk+LTF9ZnVuY3Rpb24gayh0LGUsbil7cmV0dXJuIFMuaW50ZXJwb2xhdGUodCxlLG4pLmpvaW4oIiIpfWZ1bmN0aW9uIE8odCxlLG4pe3JldHVybiBFKHQsKGZ1bmN0aW9uKHQscil7KGZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRbZV07aWYoVChpKSl7aWYoQyhpLHIpJiYodFtlXT1rKGksblswXS52YWx1ZXMsciksbi5sZW5ndGg+MSkpe3ZhciBhPXRbZSsiTG9jYWxlcyJdPXt9O24uZm9yRWFjaCgoZnVuY3Rpb24odCl7YVt0LmxvY2FsZV09ayhpLHQudmFsdWVzLHIpfSkpfX1lbHNlIE8oaSxuLHIpfSkodCxyLGUsbil9KSksdH1mdW5jdGlvbiBFKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspaWYoZSh0LG4pKXJldHVybiEwfWVsc2UgaWYodSh0KSlmb3IodmFyIHIgaW4gdClpZihlKHQscikpcmV0dXJuITA7cmV0dXJuITF9ZS5pc1N0cmluZz1UfSkuY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdLG4oImM4YmEiKSl9LCIzN2U4IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiYWVkOSIpLGE9bigiOWJmMiIpLG89bigiODI1YSIpLHM9bigiZmM2YSIpLGM9bigiZGY3NSIpO2UuZj1yJiYhaT9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbih0LGUpe28odCk7dmFyIG4scj1zKGUpLGk9YyhlKSx1PWkubGVuZ3RoLGw9MDt3aGlsZSh1PmwpYS5mKHQsbj1pW2wrK10scltuXSk7cmV0dXJuIHR9fSwiMzdmYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUudXB4MnB4PXZvaWQgMCxuKCJhOWUzIik7dmFyIHI9W3tuYW1lOiJ1cHgiLHR5cGU6W051bWJlcixTdHJpbmddLHJlcXVpcmVkOiEwfV07ZS51cHgycHg9cn0sMzgzNTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuKDAsci5kZWZhdWx0KSh0KXx8KDAsaS5kZWZhdWx0KSh0LGUpfHwoMCxhLmRlZmF1bHQpKHQsZSl8fCgwLG8uZGVmYXVsdCkoKX07dmFyIHI9cyhuKCIwZDIxIikpLGk9cyhuKCIwOWYwIikpLGE9cyhuKCIwNmM1IikpLG89cyhuKCIzZDhjIikpO2Z1bmN0aW9uIHModCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fX0sMzk1NDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5jcmVhdGVBbmltYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBzKHQpfSxuKCIxNGQ5IiksbigiYWMxZiIpLG4oIjUzMTkiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oIjk5YWYiKSxuKCIwN2FjIiksbigiY2FhZCIpLG4oIjI1MzIiKTt2YXIgaT1yKG4oImQ0ZWMiKSksYT1yKG4oImJlZTIiKSksbz17ZHVyYXRpb246NDAwLHRpbWluZ0Z1bmN0aW9uOiJsaW5lYXIiLGRlbGF5OjAsdHJhbnNmb3JtT3JpZ2luOiI1MCUgNTAlIDAifSxzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXsoMCxpLmRlZmF1bHQpKHRoaXMsdCksdGhpcy5hY3Rpb25zPVtdLHRoaXMuY3VycmVudFRyYW5zZm9ybT17fSx0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXM9W10sdGhpcy5vcHRpb249T2JqZWN0LmFzc2lnbih7fSxvLGUpfXJldHVybigwLGEuZGVmYXVsdCkodCxbe2tleToiX2dldE9wdGlvbiIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9e3RyYW5zaXRpb246T2JqZWN0LmFzc2lnbih7fSx0aGlzLm9wdGlvbix0KX07cmV0dXJuIGUudHJhbnNmb3JtT3JpZ2luPWUudHJhbnNpdGlvbi50cmFuc2Zvcm1PcmlnaW4sZGVsZXRlIGUudHJhbnNpdGlvbi50cmFuc2Zvcm1PcmlnaW4sZX19LHtrZXk6Il9wdXNoQW5pbWF0ZXMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzLnB1c2goe3R5cGU6dCxhcmdzOmV9KX19LHtrZXk6Il9jb252ZXJUeXBlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKC9bQS1aXS9nLChmdW5jdGlvbih0KXtyZXR1cm4iLSIuY29uY2F0KHQudG9Mb3dlckNhc2UoKSl9KSl9fSx7a2V5OiJfZ2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiPT09dHlwZW9mIHQ/IiIuY29uY2F0KHQsInB4Iik6dH19LHtrZXk6ImV4cG9ydCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmFjdGlvbnM7cmV0dXJuIHRoaXMuYWN0aW9ucz1bXSx7YWN0aW9uczp0fX19LHtrZXk6InN0ZXAiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuY3VycmVudFN0ZXBBbmltYXRlcy5mb3JFYWNoKChmdW5jdGlvbih0KXsic3R5bGUiIT09dC50eXBlP2UuY3VycmVudFRyYW5zZm9ybVt0LnR5cGVdPXQ6ZS5jdXJyZW50VHJhbnNmb3JtWyIiLmNvbmNhdCh0LnR5cGUsIi4iKS5jb25jYXQodC5hcmdzWzBdKV09dH0pKSx0aGlzLmFjdGlvbnMucHVzaCh7YW5pbWF0ZXM6T2JqZWN0LnZhbHVlcyh0aGlzLmN1cnJlbnRUcmFuc2Zvcm0pLG9wdGlvbjp0aGlzLl9nZXRPcHRpb24odCl9KSx0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXM9W10sdGhpc319XSksdH0oKSxjPVsib3BhY2l0eSIsImJhY2tncm91bmRDb2xvciJdLHU9WyJ3aWR0aCIsImhlaWdodCIsImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSJdO1sibWF0cml4IiwibWF0cml4M2QiLCJyb3RhdGUiLCJyb3RhdGUzZCIsInJvdGF0ZVgiLCJyb3RhdGVZIiwicm90YXRlWiIsInNjYWxlIiwic2NhbGUzZCIsInNjYWxlWCIsInNjYWxlWSIsInNjYWxlWiIsInNrZXciLCJza2V3WCIsInNrZXdZIiwidHJhbnNsYXRlIiwidHJhbnNsYXRlM2QiLCJ0cmFuc2xhdGVYIiwidHJhbnNsYXRlWSIsInRyYW5zbGF0ZVoiXS5jb25jYXQoYyx1KS5mb3JFYWNoKChmdW5jdGlvbih0KXtzLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKW5bcl09YXJndW1lbnRzW3JdO3JldHVybiBjLmNvbmNhdCh1KS5pbmNsdWRlcyh0KT90aGlzLl9wdXNoQW5pbWF0ZXMoInN0eWxlIixbdGhpcy5fY29udmVyVHlwZSh0KSx1LmluY2x1ZGVzKHQpP3RoaXMuX2dldFZhbHVlKG5bMF0pOm5bMF1dKTp0aGlzLl9wdXNoQW5pbWF0ZXModCxuKSx0aGlzfX0pKX0sIjM5YTciOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImQzYjciKSxuKCIxNTliIik7dmFyIHI9e25hbWU6IlN3aXBlckl0ZW0iLHByb3BzOntpdGVtSWQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kZWw7dC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHQuc3R5bGUud2lkdGg9IjEwMCUiLHQuc3R5bGUuaGVpZ2h0PSIxMDAlIjt2YXIgZT10aGlzLiR2bm9kZS5fY2FsbGJhY2tzO2UmJmUuZm9yRWFjaCgoZnVuY3Rpb24odCl7dCgpfSkpfX07ZS5kZWZhdWx0PXJ9LCIzYTM0IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjgzYWIiKSxpPW4oImU4YjUiKSxhPVR5cGVFcnJvcixvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscz1yJiYhZnVuY3Rpb24oKXtpZih2b2lkIDAhPT10aGlzKXJldHVybiEwO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sImxlbmd0aCIse3dyaXRhYmxlOiExfSkubGVuZ3RoPTF9Y2F0Y2godCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpO3QuZXhwb3J0cz1zP2Z1bmN0aW9uKHQsZSl7aWYoaSh0KSYmIW8odCwibGVuZ3RoIikud3JpdGFibGUpdGhyb3cgYSgiQ2Fubm90IHNldCByZWFkIG9ubHkgLmxlbmd0aCIpO3JldHVybiB0Lmxlbmd0aD1lfTpmdW5jdGlvbih0LGUpe3JldHVybiB0Lmxlbmd0aD1lfX0sIjNhN2IiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiYjcyNyIpLmZpbmRJbmRleCxhPXIuYVR5cGVkQXJyYXksbz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7bygiZmluZEluZGV4IiwoZnVuY3Rpb24odCl7cmV0dXJuIGkoYSh0aGlzKSx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKX0sIjNhN2UiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNhbGxiYWNrPXZvaWQgMCxuKCJhYzFmIiksbigiMDBiNCIpLG4oIjRkNjMiKSxuKCJjNjA3IiksbigiMmMzZSIpLG4oIjI1ZjAiKTt2YXIgcj0wLGk9e307ZnVuY3Rpb24gYSh0LGUpe3ZhciBuPWlbdF18fHt9O2RlbGV0ZSBpW3RdO3ZhciByPWUuZXJyTXNnfHwiIjtuZXcgUmVnRXhwKCJcXDpcXHMqZmFpbCIpLnRlc3Qocik/bi5mYWlsJiZuLmZhaWwoZSk6bi5zdWNjZXNzJiZuLnN1Y2Nlc3MoZSksbi5jb21wbGV0ZSYmbi5jb21wbGV0ZShlKX12YXIgbz17d2FycDpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sbj1TdHJpbmcocisrKTtpW25dPXtzdWNjZXNzOmUuc3VjY2VzcyxmYWlsOmUuZmFpbCxjb21wbGV0ZTplLmNvbXBsZXRlfTt2YXIgbz1PYmplY3QuYXNzaWduKHt9LGUpLHM9dC5iaW5kKHRoaXMpKG8sbik7cyYmYShuLHMpfX0saW52b2tlOmF9O2UuY2FsbGJhY2s9b30sIjNhOWIiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMzMwIik7dC5leHBvcnRzPXIoe30uaXNQcm90b3R5cGVPZil9LCIzYmJlIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMTYyNiIpLGk9U3RyaW5nLGE9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigib2JqZWN0Ij09dHlwZW9mIHR8fHIodCkpcmV0dXJuIHQ7dGhyb3cgYSgiQ2FuJ3Qgc2V0ICIraSh0KSsiIGFzIGEgcHJvdG90eXBlIil9fSwiM2JlYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuVmlkZW9Db250ZXh0PXZvaWQgMCxlLmNyZWF0ZVZpZGVvQ29udGV4dD1mdW5jdGlvbih0LGUpe2lmKGUpcmV0dXJuIG5ldyB1KHQsZSk7cmV0dXJuIG5ldyB1KHQsKDAsby5nZXRDdXJyZW50UGFnZVZtKSgiY3JlYXRlVmlkZW9Db250ZXh0IikpfSxuKCJjOTc1Iik7dmFyIGk9cihuKCJkNGVjIikpLGE9cihuKCJiZWUyIikpLG89bigiMjQxMiIpLHM9Wy41LC44LDEsMS4yNSwxLjUsMl07ZnVuY3Rpb24gYyh0LGUsbixyKXsoMCxvLmludm9rZU1ldGhvZCkoIm9wZXJhdGVWaWRlb1BsYXllciIsdCxlLG4scil9dmFyIHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7KDAsaS5kZWZhdWx0KSh0aGlzLHQpLHRoaXMuaWQ9ZSx0aGlzLnBhZ2VWbT1ufXJldHVybigwLGEuZGVmYXVsdCkodCxbe2tleToicGxheSIsdmFsdWU6ZnVuY3Rpb24oKXtjKHRoaXMuaWQsdGhpcy5wYWdlVm0sInBsYXkiKX19LHtrZXk6InBhdXNlIix2YWx1ZTpmdW5jdGlvbigpe2ModGhpcy5pZCx0aGlzLnBhZ2VWbSwicGF1c2UiKX19LHtrZXk6InN0b3AiLHZhbHVlOmZ1bmN0aW9uKCl7Yyh0aGlzLmlkLHRoaXMucGFnZVZtLCJzdG9wIil9fSx7a2V5OiJzZWVrIix2YWx1ZTpmdW5jdGlvbih0KXtjKHRoaXMuaWQsdGhpcy5wYWdlVm0sInNlZWsiLHtwb3NpdGlvbjp0fSl9fSx7a2V5OiJzZW5kRGFubXUiLHZhbHVlOmZ1bmN0aW9uKHQpe2ModGhpcy5pZCx0aGlzLnBhZ2VWbSwic2VuZERhbm11Iix0KX19LHtrZXk6InBsYXliYWNrUmF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7fnMuaW5kZXhPZih0KXx8KHQ9MSksYyh0aGlzLmlkLHRoaXMucGFnZVZtLCJwbGF5YmFja1JhdGUiLHtyYXRlOnR9KX19LHtrZXk6InJlcXVlc3RGdWxsU2NyZWVuIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtjKHRoaXMuaWQsdGhpcy5wYWdlVm0sInJlcXVlc3RGdWxsU2NyZWVuIix0KX19LHtrZXk6ImV4aXRGdWxsU2NyZWVuIix2YWx1ZTpmdW5jdGlvbigpe2ModGhpcy5pZCx0aGlzLnBhZ2VWbSwiZXhpdEZ1bGxTY3JlZW4iKX19LHtrZXk6InNob3dTdGF0dXNCYXIiLHZhbHVlOmZ1bmN0aW9uKCl7Yyh0aGlzLmlkLHRoaXMucGFnZVZtLCJzaG93U3RhdHVzQmFyIil9fSx7a2V5OiJoaWRlU3RhdHVzQmFyIix2YWx1ZTpmdW5jdGlvbigpe2ModGhpcy5pZCx0aGlzLnBhZ2VWbSwiaGlkZVN0YXR1c0JhciIpfX1dKSx0fSgpO2UuVmlkZW9Db250ZXh0PXV9LCIzYzVkIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImRhODQiKSxpPW4oImM2NWIiKSxhPW4oImViYjUiKSxvPW4oIjA3ZmEiKSxzPW4oIjE4MmQiKSxjPW4oIjdiMGIiKSx1PW4oImQwMzkiKSxsPXIuUmFuZ2VFcnJvcixmPXIuSW50OEFycmF5LGQ9ZiYmZi5wcm90b3R5cGUsaD1kJiZkLnNldCxwPWEuYVR5cGVkQXJyYXksdj1hLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsZz0hdSgoZnVuY3Rpb24oKXt2YXIgdD1uZXcgVWludDhDbGFtcGVkQXJyYXkoMik7cmV0dXJuIGkoaCx0LHtsZW5ndGg6MSwwOjN9LDEpLDMhPT10WzFdfSkpLG09ZyYmYS5OQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTJiZ1KChmdW5jdGlvbigpe3ZhciB0PW5ldyBmKDIpO3JldHVybiB0LnNldCgxKSx0LnNldCgiMiIsMSksMCE9PXRbMF18fDIhPT10WzFdfSkpO3YoInNldCIsKGZ1bmN0aW9uKHQpe3AodGhpcyk7dmFyIGU9cyhhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwxKSxuPWModCk7aWYoZylyZXR1cm4gaShoLHRoaXMsbixlKTt2YXIgcj10aGlzLmxlbmd0aCxhPW8obiksdT0wO2lmKGErZT5yKXRocm93IGwoIldyb25nIGxlbmd0aCIpO3doaWxlKHU8YSl0aGlzW2UrdV09blt1KytdfSksIWd8fG0pfSwiM2M2NSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCI3YjBiIiksYT1uKCIwN2ZhIiksbz1uKCIzYTM0Iikscz1uKCIwODNhIiksYz1uKCIzNTExIiksdT0xIT09W10udW5zaGlmdCgwKSxsPSFmdW5jdGlvbigpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sImxlbmd0aCIse3dyaXRhYmxlOiExfSkudW5zaGlmdCgpfWNhdGNoKHQpe3JldHVybiB0IGluc3RhbmNlb2YgVHlwZUVycm9yfX0oKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxhcml0eToxLGZvcmNlZDp1fHxsfSx7dW5zaGlmdDpmdW5jdGlvbih0KXt2YXIgZT1pKHRoaXMpLG49YShlKSxyPWFyZ3VtZW50cy5sZW5ndGg7aWYocil7YyhuK3IpO3ZhciB1PW47d2hpbGUodS0tKXt2YXIgbD11K3I7dSBpbiBlP2VbbF09ZVt1XTpzKGUsbCl9Zm9yKHZhciBmPTA7ZjxyO2YrKyllW2ZdPWFyZ3VtZW50c1tmXX1yZXR1cm4gbyhlLG4rcil9fSl9LCIzY2EzIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjY1NDciKS5jaGFyQXQsaT1uKCI1NzdlIiksYT1uKCI2OWYzIiksbz1uKCJjNmQyIikscz1uKCI0NzU0IiksYz1hLnNldCx1PWEuZ2V0dGVyRm9yKCJTdHJpbmcgSXRlcmF0b3IiKTtvKFN0cmluZywiU3RyaW5nIiwoZnVuY3Rpb24odCl7Yyh0aGlzLHt0eXBlOiJTdHJpbmcgSXRlcmF0b3IiLHN0cmluZzppKHQpLGluZGV4OjB9KX0pLChmdW5jdGlvbigpe3ZhciB0LGU9dSh0aGlzKSxuPWUuc3RyaW5nLGk9ZS5pbmRleDtyZXR1cm4gaT49bi5sZW5ndGg/cyh2b2lkIDAsITApOih0PXIobixpKSxlLmluZGV4Kz10Lmxlbmd0aCxzKHQsITEpKX0pKX0sIjNkNDYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjhiOTEiKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LCIzZDhjIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0sbigiZDllMiIpLG4oImQ0MDEiKX0sIjNkYTgiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiBuKCJ1bmktaW1hZ2UiLHQuX2coe30sdC4kbGlzdGVuZXJzKSxbbigiZGl2Iix7cmVmOiJjb250ZW50IixzdHlsZTp0LnN0eWxlfSksIndpZHRoRml4Ij09PXQubW9kZXx8ImhlaWdodEZpeCI9PT10Lm1vZGU/bigidi11bmktcmVzaXplLXNlbnNvciIse3JlZjoic2Vuc29yIixvbjp7cmVzaXplOmZ1bmN0aW9uKGUpe3JldHVybiB0Ll9maXhTaXplKCl9fX0pOnQuX2UoKV0sMSl9LGk9W119LCIzZTI0IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI4N2Q2IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiM2Y4YyI6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9e319LCIzZmNjIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImViYjUiKSxpPW4oImI3MjciKS5tYXAsYT1uKCJiNmI3Iiksbz1yLmFUeXBlZEFycmF5LHM9ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kO3MoIm1hcCIsKGZ1bmN0aW9uKHQpe3JldHVybiBpKG8odGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwoZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3KGEodCkpKGUpfSkpfSkpfSw0MDAyOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiM2NhMyIpO3ZhciByLGk9bigiMjNlNyIpLGE9bigiODNhYiIpLG89bigiZjM1NCIpLHM9bigiZGE4NCIpLGM9bigiMDM2NiIpLHU9bigiZTMzMCIpLGw9bigiY2IyZCIpLGY9bigiZWRkMCIpLGQ9bigiMTlhYSIpLGg9bigiMWEyZCIpLHA9bigiNjBkYSIpLHY9bigiNGRmNCIpLGc9bigiNGRhZSIpLG09bigiNjU0NyIpLmNvZGVBdCxiPW4oIjVmYjIiKSx5PW4oIjU3N2UiKSxfPW4oImQ0NGUiKSx3PW4oImQ2ZDYiKSx4PW4oIjUzNTIiKSxTPW4oIjY5ZjMiKSxUPVMuc2V0LEM9Uy5nZXR0ZXJGb3IoIlVSTCIpLGs9eC5VUkxTZWFyY2hQYXJhbXMsTz14LmdldFN0YXRlLEU9cy5VUkwsST1zLlR5cGVFcnJvcixQPXMucGFyc2VJbnQsTT1NYXRoLmZsb29yLEE9TWF0aC5wb3csJD11KCIiLmNoYXJBdCksTD11KC8uLy5leGVjKSxqPXUoW10uam9pbiksUj11KDEuLnRvU3RyaW5nKSxOPXUoW10ucG9wKSxCPXUoW10ucHVzaCksRD11KCIiLnJlcGxhY2UpLEY9dShbXS5zaGlmdCksVz11KCIiLnNwbGl0KSxIPXUoIiIuc2xpY2UpLFY9dSgiIi50b0xvd2VyQ2FzZSksVT11KFtdLnVuc2hpZnQpLHE9L1thLXpdL2ksej0vW1xkKy0uYS16XS9pLFk9L1xkLyxYPS9eMHgvaSxHPS9eWzAtN10rJC8sUT0vXlxkKyQvLEo9L15bXGRhLWZdKyQvaSxLPS9bXDBcdFxuXHIgIyUvOjw+P0BbXFxcXV58XS8sWj0vW1wwXHRcblxyICMvOjw+P0BbXFxcXV58XS8sdHQ9L15bXHUwMDAwLVx1MDAyMF0rfFtcdTAwMDAtXHUwMDIwXSskL2csZXQ9L1tcdFxuXHJdL2csbnQ9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGk7aWYoIm51bWJlciI9PXR5cGVvZiB0KXtmb3IoZT1bXSxuPTA7bjw0O24rKylVKGUsdCUyNTYpLHQ9TSh0LzI1Nik7cmV0dXJuIGooZSwiLiIpfWlmKCJvYmplY3QiPT10eXBlb2YgdCl7Zm9yKGU9IiIscj1mdW5jdGlvbih0KXtmb3IodmFyIGU9bnVsbCxuPTEscj1udWxsLGk9MCxhPTA7YTw4O2ErKykwIT09dFthXT8oaT5uJiYoZT1yLG49aSkscj1udWxsLGk9MCk6KG51bGw9PT1yJiYocj1hKSwrK2kpO3JldHVybiBpPm4mJihlPXIsbj1pKSxlfSh0KSxuPTA7bjw4O24rKylpJiYwPT09dFtuXXx8KGkmJihpPSExKSxyPT09bj8oZSs9bj8iOiI6Ijo6IixpPSEwKTooZSs9Uih0W25dLDE2KSxuPDcmJihlKz0iOiIpKSk7cmV0dXJuIlsiK2UrIl0ifXJldHVybiB0fSxydD17fSxpdD1wKHt9LHJ0LHsiICI6MSwnIic6MSwiPCI6MSwiPiI6MSwiYCI6MX0pLGF0PXAoe30saXQseyIjIjoxLCI/IjoxLCJ7IjoxLCJ9IjoxfSksb3Q9cCh7fSxhdCx7Ii8iOjEsIjoiOjEsIjsiOjEsIj0iOjEsIkAiOjEsIlsiOjEsIlxcIjoxLCJdIjoxLCJeIjoxLCJ8IjoxfSksc3Q9ZnVuY3Rpb24odCxlKXt2YXIgbj1tKHQsMCk7cmV0dXJuIG4+MzImJm48MTI3JiYhaChlLHQpP3Q6ZW5jb2RlVVJJQ29tcG9uZW50KHQpfSxjdD17ZnRwOjIxLGZpbGU6bnVsbCxodHRwOjgwLGh0dHBzOjQ0Myx3czo4MCx3c3M6NDQzfSx1dD1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiAyPT10Lmxlbmd0aCYmTChxLCQodCwwKSkmJigiOiI9PShuPSQodCwxKSl8fCFlJiYifCI9PW4pfSxsdD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdC5sZW5ndGg+MSYmdXQoSCh0LDAsMikpJiYoMj09dC5sZW5ndGh8fCIvIj09PShlPSQodCwyKSl8fCJcXCI9PT1lfHwiPyI9PT1lfHwiIyI9PT1lKX0sZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIi4iPT09dHx8IiUyZSI9PT1WKHQpfSxkdD1mdW5jdGlvbih0KXtyZXR1cm4gdD1WKHQpLCIuLiI9PT10fHwiJTJlLiI9PT10fHwiLiUyZSI9PT10fHwiJTJlJTJlIj09PXR9LGh0PXt9LHB0PXt9LHZ0PXt9LGd0PXt9LG10PXt9LGJ0PXt9LHl0PXt9LF90PXt9LHd0PXt9LHh0PXt9LFN0PXt9LFR0PXt9LEN0PXt9LGt0PXt9LE90PXt9LEV0PXt9LEl0PXt9LFB0PXt9LE10PXt9LEF0PXt9LCR0PXt9LEx0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpLGEsbz15KHQpO2lmKGUpe2lmKGk9dGhpcy5wYXJzZShvKSxpKXRocm93IEkoaSk7dGhpcy5zZWFyY2hQYXJhbXM9bnVsbH1lbHNle2lmKHZvaWQgMCE9PW4mJihyPW5ldyBMdChuLCEwKSksaT10aGlzLnBhcnNlKG8sbnVsbCxyKSxpKXRocm93IEkoaSk7YT1PKG5ldyBrKSxhLmJpbmRVUkwodGhpcyksdGhpcy5zZWFyY2hQYXJhbXM9YX19O0x0LnByb3RvdHlwZT17dHlwZToiVVJMIixwYXJzZTpmdW5jdGlvbih0LGUsbil7dmFyIGksYSxvLHMsYz10aGlzLHU9ZXx8aHQsbD0wLGY9IiIsZD0hMSxwPSExLG09ITE7dD15KHQpLGV8fChjLnNjaGVtZT0iIixjLnVzZXJuYW1lPSIiLGMucGFzc3dvcmQ9IiIsYy5ob3N0PW51bGwsYy5wb3J0PW51bGwsYy5wYXRoPVtdLGMucXVlcnk9bnVsbCxjLmZyYWdtZW50PW51bGwsYy5jYW5ub3RCZUFCYXNlVVJMPSExLHQ9RCh0LHR0LCIiKSksdD1EKHQsZXQsIiIpLGk9dih0KTt3aGlsZShsPD1pLmxlbmd0aCl7c3dpdGNoKGE9aVtsXSx1KXtjYXNlIGh0OmlmKCFhfHwhTChxLGEpKXtpZihlKXJldHVybiJJbnZhbGlkIHNjaGVtZSI7dT12dDtjb250aW51ZX1mKz1WKGEpLHU9cHQ7YnJlYWs7Y2FzZSBwdDppZihhJiYoTCh6LGEpfHwiKyI9PWF8fCItIj09YXx8Ii4iPT1hKSlmKz1WKGEpO2Vsc2V7aWYoIjoiIT1hKXtpZihlKXJldHVybiJJbnZhbGlkIHNjaGVtZSI7Zj0iIix1PXZ0LGw9MDtjb250aW51ZX1pZihlJiYoYy5pc1NwZWNpYWwoKSE9aChjdCxmKXx8ImZpbGUiPT1mJiYoYy5pbmNsdWRlc0NyZWRlbnRpYWxzKCl8fG51bGwhPT1jLnBvcnQpfHwiZmlsZSI9PWMuc2NoZW1lJiYhYy5ob3N0KSlyZXR1cm47aWYoYy5zY2hlbWU9ZixlKXJldHVybiB2b2lkKGMuaXNTcGVjaWFsKCkmJmN0W2Muc2NoZW1lXT09Yy5wb3J0JiYoYy5wb3J0PW51bGwpKTtmPSIiLCJmaWxlIj09Yy5zY2hlbWU/dT1rdDpjLmlzU3BlY2lhbCgpJiZuJiZuLnNjaGVtZT09Yy5zY2hlbWU/dT1ndDpjLmlzU3BlY2lhbCgpP3U9X3Q6Ii8iPT1pW2wrMV0/KHU9bXQsbCsrKTooYy5jYW5ub3RCZUFCYXNlVVJMPSEwLEIoYy5wYXRoLCIiKSx1PU10KX1icmVhaztjYXNlIHZ0OmlmKCFufHxuLmNhbm5vdEJlQUJhc2VVUkwmJiIjIiE9YSlyZXR1cm4iSW52YWxpZCBzY2hlbWUiO2lmKG4uY2Fubm90QmVBQmFzZVVSTCYmIiMiPT1hKXtjLnNjaGVtZT1uLnNjaGVtZSxjLnBhdGg9ZyhuLnBhdGgpLGMucXVlcnk9bi5xdWVyeSxjLmZyYWdtZW50PSIiLGMuY2Fubm90QmVBQmFzZVVSTD0hMCx1PSR0O2JyZWFrfXU9ImZpbGUiPT1uLnNjaGVtZT9rdDpidDtjb250aW51ZTtjYXNlIGd0OmlmKCIvIiE9YXx8Ii8iIT1pW2wrMV0pe3U9YnQ7Y29udGludWV9dT13dCxsKys7YnJlYWs7Y2FzZSBtdDppZigiLyI9PWEpe3U9eHQ7YnJlYWt9dT1QdDtjb250aW51ZTtjYXNlIGJ0OmlmKGMuc2NoZW1lPW4uc2NoZW1lLGE9PXIpYy51c2VybmFtZT1uLnVzZXJuYW1lLGMucGFzc3dvcmQ9bi5wYXNzd29yZCxjLmhvc3Q9bi5ob3N0LGMucG9ydD1uLnBvcnQsYy5wYXRoPWcobi5wYXRoKSxjLnF1ZXJ5PW4ucXVlcnk7ZWxzZSBpZigiLyI9PWF8fCJcXCI9PWEmJmMuaXNTcGVjaWFsKCkpdT15dDtlbHNlIGlmKCI/Ij09YSljLnVzZXJuYW1lPW4udXNlcm5hbWUsYy5wYXNzd29yZD1uLnBhc3N3b3JkLGMuaG9zdD1uLmhvc3QsYy5wb3J0PW4ucG9ydCxjLnBhdGg9ZyhuLnBhdGgpLGMucXVlcnk9IiIsdT1BdDtlbHNle2lmKCIjIiE9YSl7Yy51c2VybmFtZT1uLnVzZXJuYW1lLGMucGFzc3dvcmQ9bi5wYXNzd29yZCxjLmhvc3Q9bi5ob3N0LGMucG9ydD1uLnBvcnQsYy5wYXRoPWcobi5wYXRoKSxjLnBhdGgubGVuZ3RoLS0sdT1QdDtjb250aW51ZX1jLnVzZXJuYW1lPW4udXNlcm5hbWUsYy5wYXNzd29yZD1uLnBhc3N3b3JkLGMuaG9zdD1uLmhvc3QsYy5wb3J0PW4ucG9ydCxjLnBhdGg9ZyhuLnBhdGgpLGMucXVlcnk9bi5xdWVyeSxjLmZyYWdtZW50PSIiLHU9JHR9YnJlYWs7Y2FzZSB5dDppZighYy5pc1NwZWNpYWwoKXx8Ii8iIT1hJiYiXFwiIT1hKXtpZigiLyIhPWEpe2MudXNlcm5hbWU9bi51c2VybmFtZSxjLnBhc3N3b3JkPW4ucGFzc3dvcmQsYy5ob3N0PW4uaG9zdCxjLnBvcnQ9bi5wb3J0LHU9UHQ7Y29udGludWV9dT14dH1lbHNlIHU9d3Q7YnJlYWs7Y2FzZSBfdDppZih1PXd0LCIvIiE9YXx8Ii8iIT0kKGYsbCsxKSljb250aW51ZTtsKys7YnJlYWs7Y2FzZSB3dDppZigiLyIhPWEmJiJcXCIhPWEpe3U9eHQ7Y29udGludWV9YnJlYWs7Y2FzZSB4dDppZigiQCI9PWEpe2QmJihmPSIlNDAiK2YpLGQ9ITAsbz12KGYpO2Zvcih2YXIgYj0wO2I8by5sZW5ndGg7YisrKXt2YXIgXz1vW2JdO2lmKCI6IiE9X3x8bSl7dmFyIHc9c3QoXyxvdCk7bT9jLnBhc3N3b3JkKz13OmMudXNlcm5hbWUrPXd9ZWxzZSBtPSEwfWY9IiJ9ZWxzZSBpZihhPT1yfHwiLyI9PWF8fCI/Ij09YXx8IiMiPT1hfHwiXFwiPT1hJiZjLmlzU3BlY2lhbCgpKXtpZihkJiYiIj09ZilyZXR1cm4iSW52YWxpZCBhdXRob3JpdHkiO2wtPXYoZikubGVuZ3RoKzEsZj0iIix1PVN0fWVsc2UgZis9YTticmVhaztjYXNlIFN0OmNhc2UgVHQ6aWYoZSYmImZpbGUiPT1jLnNjaGVtZSl7dT1FdDtjb250aW51ZX1pZigiOiIhPWF8fHApe2lmKGE9PXJ8fCIvIj09YXx8Ij8iPT1hfHwiIyI9PWF8fCJcXCI9PWEmJmMuaXNTcGVjaWFsKCkpe2lmKGMuaXNTcGVjaWFsKCkmJiIiPT1mKXJldHVybiJJbnZhbGlkIGhvc3QiO2lmKGUmJiIiPT1mJiYoYy5pbmNsdWRlc0NyZWRlbnRpYWxzKCl8fG51bGwhPT1jLnBvcnQpKXJldHVybjtpZihzPWMucGFyc2VIb3N0KGYpLHMpcmV0dXJuIHM7aWYoZj0iIix1PUl0LGUpcmV0dXJuO2NvbnRpbnVlfSJbIj09YT9wPSEwOiJdIj09YSYmKHA9ITEpLGYrPWF9ZWxzZXtpZigiIj09ZilyZXR1cm4iSW52YWxpZCBob3N0IjtpZihzPWMucGFyc2VIb3N0KGYpLHMpcmV0dXJuIHM7aWYoZj0iIix1PUN0LGU9PVR0KXJldHVybn1icmVhaztjYXNlIEN0OmlmKCFMKFksYSkpe2lmKGE9PXJ8fCIvIj09YXx8Ij8iPT1hfHwiIyI9PWF8fCJcXCI9PWEmJmMuaXNTcGVjaWFsKCl8fGUpe2lmKCIiIT1mKXt2YXIgeD1QKGYsMTApO2lmKHg+NjU1MzUpcmV0dXJuIkludmFsaWQgcG9ydCI7Yy5wb3J0PWMuaXNTcGVjaWFsKCkmJng9PT1jdFtjLnNjaGVtZV0/bnVsbDp4LGY9IiJ9aWYoZSlyZXR1cm47dT1JdDtjb250aW51ZX1yZXR1cm4iSW52YWxpZCBwb3J0In1mKz1hO2JyZWFrO2Nhc2Uga3Q6aWYoYy5zY2hlbWU9ImZpbGUiLCIvIj09YXx8IlxcIj09YSl1PU90O2Vsc2V7aWYoIW58fCJmaWxlIiE9bi5zY2hlbWUpe3U9UHQ7Y29udGludWV9aWYoYT09ciljLmhvc3Q9bi5ob3N0LGMucGF0aD1nKG4ucGF0aCksYy5xdWVyeT1uLnF1ZXJ5O2Vsc2UgaWYoIj8iPT1hKWMuaG9zdD1uLmhvc3QsYy5wYXRoPWcobi5wYXRoKSxjLnF1ZXJ5PSIiLHU9QXQ7ZWxzZXtpZigiIyIhPWEpe2x0KGooZyhpLGwpLCIiKSl8fChjLmhvc3Q9bi5ob3N0LGMucGF0aD1nKG4ucGF0aCksYy5zaG9ydGVuUGF0aCgpKSx1PVB0O2NvbnRpbnVlfWMuaG9zdD1uLmhvc3QsYy5wYXRoPWcobi5wYXRoKSxjLnF1ZXJ5PW4ucXVlcnksYy5mcmFnbWVudD0iIix1PSR0fX1icmVhaztjYXNlIE90OmlmKCIvIj09YXx8IlxcIj09YSl7dT1FdDticmVha31uJiYiZmlsZSI9PW4uc2NoZW1lJiYhbHQoaihnKGksbCksIiIpKSYmKHV0KG4ucGF0aFswXSwhMCk/QihjLnBhdGgsbi5wYXRoWzBdKTpjLmhvc3Q9bi5ob3N0KSx1PVB0O2NvbnRpbnVlO2Nhc2UgRXQ6aWYoYT09cnx8Ii8iPT1hfHwiXFwiPT1hfHwiPyI9PWF8fCIjIj09YSl7aWYoIWUmJnV0KGYpKXU9UHQ7ZWxzZSBpZigiIj09Zil7aWYoYy5ob3N0PSIiLGUpcmV0dXJuO3U9SXR9ZWxzZXtpZihzPWMucGFyc2VIb3N0KGYpLHMpcmV0dXJuIHM7aWYoImxvY2FsaG9zdCI9PWMuaG9zdCYmKGMuaG9zdD0iIiksZSlyZXR1cm47Zj0iIix1PUl0fWNvbnRpbnVlfWYrPWE7YnJlYWs7Y2FzZSBJdDppZihjLmlzU3BlY2lhbCgpKXtpZih1PVB0LCIvIiE9YSYmIlxcIiE9YSljb250aW51ZX1lbHNlIGlmKGV8fCI/IiE9YSlpZihlfHwiIyIhPWEpe2lmKGEhPXImJih1PVB0LCIvIiE9YSkpY29udGludWV9ZWxzZSBjLmZyYWdtZW50PSIiLHU9JHQ7ZWxzZSBjLnF1ZXJ5PSIiLHU9QXQ7YnJlYWs7Y2FzZSBQdDppZihhPT1yfHwiLyI9PWF8fCJcXCI9PWEmJmMuaXNTcGVjaWFsKCl8fCFlJiYoIj8iPT1hfHwiIyI9PWEpKXtpZihkdChmKT8oYy5zaG9ydGVuUGF0aCgpLCIvIj09YXx8IlxcIj09YSYmYy5pc1NwZWNpYWwoKXx8QihjLnBhdGgsIiIpKTpmdChmKT8iLyI9PWF8fCJcXCI9PWEmJmMuaXNTcGVjaWFsKCl8fEIoYy5wYXRoLCIiKTooImZpbGUiPT1jLnNjaGVtZSYmIWMucGF0aC5sZW5ndGgmJnV0KGYpJiYoYy5ob3N0JiYoYy5ob3N0PSIiKSxmPSQoZiwwKSsiOiIpLEIoYy5wYXRoLGYpKSxmPSIiLCJmaWxlIj09Yy5zY2hlbWUmJihhPT1yfHwiPyI9PWF8fCIjIj09YSkpd2hpbGUoYy5wYXRoLmxlbmd0aD4xJiYiIj09PWMucGF0aFswXSlGKGMucGF0aCk7Ij8iPT1hPyhjLnF1ZXJ5PSIiLHU9QXQpOiIjIj09YSYmKGMuZnJhZ21lbnQ9IiIsdT0kdCl9ZWxzZSBmKz1zdChhLGF0KTticmVhaztjYXNlIE10OiI/Ij09YT8oYy5xdWVyeT0iIix1PUF0KToiIyI9PWE/KGMuZnJhZ21lbnQ9IiIsdT0kdCk6YSE9ciYmKGMucGF0aFswXSs9c3QoYSxydCkpO2JyZWFrO2Nhc2UgQXQ6ZXx8IiMiIT1hP2EhPXImJigiJyI9PWEmJmMuaXNTcGVjaWFsKCk/Yy5xdWVyeSs9IiUyNyI6Yy5xdWVyeSs9IiMiPT1hPyIlMjMiOnN0KGEscnQpKTooYy5mcmFnbWVudD0iIix1PSR0KTticmVhaztjYXNlICR0OmEhPXImJihjLmZyYWdtZW50Kz1zdChhLGl0KSk7YnJlYWt9bCsrfX0scGFyc2VIb3N0OmZ1bmN0aW9uKHQpe3ZhciBlLG4scjtpZigiWyI9PSQodCwwKSl7aWYoIl0iIT0kKHQsdC5sZW5ndGgtMSkpcmV0dXJuIkludmFsaWQgaG9zdCI7aWYoZT1mdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxhLG8scyxjPVswLDAsMCwwLDAsMCwwLDBdLHU9MCxsPW51bGwsZj0wLGQ9ZnVuY3Rpb24oKXtyZXR1cm4gJCh0LGYpfTtpZigiOiI9PWQoKSl7aWYoIjoiIT0kKHQsMSkpcmV0dXJuO2YrPTIsdSsrLGw9dX13aGlsZShkKCkpe2lmKDg9PXUpcmV0dXJuO2lmKCI6IiE9ZCgpKXtlPW49MDt3aGlsZShuPDQmJkwoSixkKCkpKWU9MTYqZStQKGQoKSwxNiksZisrLG4rKztpZigiLiI9PWQoKSl7aWYoMD09bilyZXR1cm47aWYoZi09bix1PjYpcmV0dXJuO3I9MDt3aGlsZShkKCkpe2lmKGk9bnVsbCxyPjApe2lmKCEoIi4iPT1kKCkmJnI8NCkpcmV0dXJuO2YrK31pZighTChZLGQoKSkpcmV0dXJuO3doaWxlKEwoWSxkKCkpKXtpZihhPVAoZCgpLDEwKSxudWxsPT09aSlpPWE7ZWxzZXtpZigwPT1pKXJldHVybjtpPTEwKmkrYX1pZihpPjI1NSlyZXR1cm47ZisrfWNbdV09MjU2KmNbdV0raSxyKyssMiE9ciYmNCE9cnx8dSsrfWlmKDQhPXIpcmV0dXJuO2JyZWFrfWlmKCI6Ij09ZCgpKXtpZihmKyssIWQoKSlyZXR1cm59ZWxzZSBpZihkKCkpcmV0dXJuO2NbdSsrXT1lfWVsc2V7aWYobnVsbCE9PWwpcmV0dXJuO2YrKyx1KyssbD11fX1pZihudWxsIT09bCl7bz11LWwsdT03O3doaWxlKDAhPXUmJm8+MClzPWNbdV0sY1t1LS1dPWNbbCtvLTFdLGNbbCstLW9dPXN9ZWxzZSBpZig4IT11KXJldHVybjtyZXR1cm4gY30oSCh0LDEsLTEpKSwhZSlyZXR1cm4iSW52YWxpZCBob3N0Ijt0aGlzLmhvc3Q9ZX1lbHNlIGlmKHRoaXMuaXNTcGVjaWFsKCkpe2lmKHQ9Yih0KSxMKEssdCkpcmV0dXJuIkludmFsaWQgaG9zdCI7aWYoZT1mdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxhLG8scyxjPVcodCwiLiIpO2lmKGMubGVuZ3RoJiYiIj09Y1tjLmxlbmd0aC0xXSYmYy5sZW5ndGgtLSxlPWMubGVuZ3RoLGU+NClyZXR1cm4gdDtmb3Iobj1bXSxyPTA7cjxlO3IrKyl7aWYoaT1jW3JdLCIiPT1pKXJldHVybiB0O2lmKGE9MTAsaS5sZW5ndGg+MSYmIjAiPT0kKGksMCkmJihhPUwoWCxpKT8xNjo4LGk9SChpLDg9PWE/MToyKSksIiI9PT1pKW89MDtlbHNle2lmKCFMKDEwPT1hP1E6OD09YT9HOkosaSkpcmV0dXJuIHQ7bz1QKGksYSl9QihuLG8pfWZvcihyPTA7cjxlO3IrKylpZihvPW5bcl0scj09ZS0xKXtpZihvPj1BKDI1Niw1LWUpKXJldHVybiBudWxsfWVsc2UgaWYobz4yNTUpcmV0dXJuIG51bGw7Zm9yKHM9TihuKSxyPTA7cjxuLmxlbmd0aDtyKyspcys9bltyXSpBKDI1NiwzLXIpO3JldHVybiBzfSh0KSxudWxsPT09ZSlyZXR1cm4iSW52YWxpZCBob3N0Ijt0aGlzLmhvc3Q9ZX1lbHNle2lmKEwoWix0KSlyZXR1cm4iSW52YWxpZCBob3N0Ijtmb3IoZT0iIixuPXYodCkscj0wO3I8bi5sZW5ndGg7cisrKWUrPXN0KG5bcl0scnQpO3RoaXMuaG9zdD1lfX0sY2Fubm90SGF2ZVVzZXJuYW1lUGFzc3dvcmRQb3J0OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaG9zdHx8dGhpcy5jYW5ub3RCZUFCYXNlVVJMfHwiZmlsZSI9PXRoaXMuc2NoZW1lfSxpbmNsdWRlc0NyZWRlbnRpYWxzOmZ1bmN0aW9uKCl7cmV0dXJuIiIhPXRoaXMudXNlcm5hbWV8fCIiIT10aGlzLnBhc3N3b3JkfSxpc1NwZWNpYWw6ZnVuY3Rpb24oKXtyZXR1cm4gaChjdCx0aGlzLnNjaGVtZSl9LHNob3J0ZW5QYXRoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wYXRoLGU9dC5sZW5ndGg7IWV8fCJmaWxlIj09dGhpcy5zY2hlbWUmJjE9PWUmJnV0KHRbMF0sITApfHx0Lmxlbmd0aC0tfSxzZXJpYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC5zY2hlbWUsbj10LnVzZXJuYW1lLHI9dC5wYXNzd29yZCxpPXQuaG9zdCxhPXQucG9ydCxvPXQucGF0aCxzPXQucXVlcnksYz10LmZyYWdtZW50LHU9ZSsiOiI7cmV0dXJuIG51bGwhPT1pPyh1Kz0iLy8iLHQuaW5jbHVkZXNDcmVkZW50aWFscygpJiYodSs9bisocj8iOiIrcjoiIikrIkAiKSx1Kz1udChpKSxudWxsIT09YSYmKHUrPSI6IithKSk6ImZpbGUiPT1lJiYodSs9Ii8vIiksdSs9dC5jYW5ub3RCZUFCYXNlVVJMP29bMF06by5sZW5ndGg/Ii8iK2oobywiLyIpOiIiLG51bGwhPT1zJiYodSs9Ij8iK3MpLG51bGwhPT1jJiYodSs9IiMiK2MpLHV9LHNldEhyZWY6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5wYXJzZSh0KTtpZihlKXRocm93IEkoZSk7dGhpcy5zZWFyY2hQYXJhbXMudXBkYXRlKCl9LGdldE9yaWdpbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuc2NoZW1lLGU9dGhpcy5wb3J0O2lmKCJibG9iIj09dCl0cnl7cmV0dXJuIG5ldyBqdCh0LnBhdGhbMF0pLm9yaWdpbn1jYXRjaChuKXtyZXR1cm4ibnVsbCJ9cmV0dXJuImZpbGUiIT10JiZ0aGlzLmlzU3BlY2lhbCgpP3QrIjovLyIrbnQodGhpcy5ob3N0KSsobnVsbCE9PWU/IjoiK2U6IiIpOiJudWxsIn0sZ2V0UHJvdG9jb2w6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zY2hlbWUrIjoifSxzZXRQcm90b2NvbDpmdW5jdGlvbih0KXt0aGlzLnBhcnNlKHkodCkrIjoiLGh0KX0sZ2V0VXNlcm5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51c2VybmFtZX0sc2V0VXNlcm5hbWU6ZnVuY3Rpb24odCl7dmFyIGU9dih5KHQpKTtpZighdGhpcy5jYW5ub3RIYXZlVXNlcm5hbWVQYXNzd29yZFBvcnQoKSl7dGhpcy51c2VybmFtZT0iIjtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl0aGlzLnVzZXJuYW1lKz1zdChlW25dLG90KX19LGdldFBhc3N3b3JkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFzc3dvcmR9LHNldFBhc3N3b3JkOmZ1bmN0aW9uKHQpe3ZhciBlPXYoeSh0KSk7aWYoIXRoaXMuY2Fubm90SGF2ZVVzZXJuYW1lUGFzc3dvcmRQb3J0KCkpe3RoaXMucGFzc3dvcmQ9IiI7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspdGhpcy5wYXNzd29yZCs9c3QoZVtuXSxvdCl9fSxnZXRIb3N0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5ob3N0LGU9dGhpcy5wb3J0O3JldHVybiBudWxsPT09dD8iIjpudWxsPT09ZT9udCh0KTpudCh0KSsiOiIrZX0sc2V0SG9zdDpmdW5jdGlvbih0KXt0aGlzLmNhbm5vdEJlQUJhc2VVUkx8fHRoaXMucGFyc2UodCxTdCl9LGdldEhvc3RuYW1lOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5ob3N0O3JldHVybiBudWxsPT09dD8iIjpudCh0KX0sc2V0SG9zdG5hbWU6ZnVuY3Rpb24odCl7dGhpcy5jYW5ub3RCZUFCYXNlVVJMfHx0aGlzLnBhcnNlKHQsVHQpfSxnZXRQb3J0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wb3J0O3JldHVybiBudWxsPT09dD8iIjp5KHQpfSxzZXRQb3J0OmZ1bmN0aW9uKHQpe3RoaXMuY2Fubm90SGF2ZVVzZXJuYW1lUGFzc3dvcmRQb3J0KCl8fCh0PXkodCksIiI9PXQ/dGhpcy5wb3J0PW51bGw6dGhpcy5wYXJzZSh0LEN0KSl9LGdldFBhdGhuYW1lOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wYXRoO3JldHVybiB0aGlzLmNhbm5vdEJlQUJhc2VVUkw/dFswXTp0Lmxlbmd0aD8iLyIraih0LCIvIik6IiJ9LHNldFBhdGhuYW1lOmZ1bmN0aW9uKHQpe3RoaXMuY2Fubm90QmVBQmFzZVVSTHx8KHRoaXMucGF0aD1bXSx0aGlzLnBhcnNlKHQsSXQpKX0sZ2V0U2VhcmNoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5xdWVyeTtyZXR1cm4gdD8iPyIrdDoiIn0sc2V0U2VhcmNoOmZ1bmN0aW9uKHQpe3Q9eSh0KSwiIj09dD90aGlzLnF1ZXJ5PW51bGw6KCI/Ij09JCh0LDApJiYodD1IKHQsMSkpLHRoaXMucXVlcnk9IiIsdGhpcy5wYXJzZSh0LEF0KSksdGhpcy5zZWFyY2hQYXJhbXMudXBkYXRlKCl9LGdldFNlYXJjaFBhcmFtczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNlYXJjaFBhcmFtcy5mYWNhZGV9LGdldEhhc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmZyYWdtZW50O3JldHVybiB0PyIjIit0OiIifSxzZXRIYXNoOmZ1bmN0aW9uKHQpe3Q9eSh0KSwiIiE9dD8oIiMiPT0kKHQsMCkmJih0PUgodCwxKSksdGhpcy5mcmFnbWVudD0iIix0aGlzLnBhcnNlKHQsJHQpKTp0aGlzLmZyYWdtZW50PW51bGx9LHVwZGF0ZTpmdW5jdGlvbigpe3RoaXMucXVlcnk9dGhpcy5zZWFyY2hQYXJhbXMuc2VyaWFsaXplKCl8fG51bGx9fTt2YXIganQ9ZnVuY3Rpb24odCl7dmFyIGU9ZCh0aGlzLFJ0KSxuPXcoYXJndW1lbnRzLmxlbmd0aCwxKT4xP2FyZ3VtZW50c1sxXTp2b2lkIDAscj1UKGUsbmV3IEx0KHQsITEsbikpO2F8fChlLmhyZWY9ci5zZXJpYWxpemUoKSxlLm9yaWdpbj1yLmdldE9yaWdpbigpLGUucHJvdG9jb2w9ci5nZXRQcm90b2NvbCgpLGUudXNlcm5hbWU9ci5nZXRVc2VybmFtZSgpLGUucGFzc3dvcmQ9ci5nZXRQYXNzd29yZCgpLGUuaG9zdD1yLmdldEhvc3QoKSxlLmhvc3RuYW1lPXIuZ2V0SG9zdG5hbWUoKSxlLnBvcnQ9ci5nZXRQb3J0KCksZS5wYXRobmFtZT1yLmdldFBhdGhuYW1lKCksZS5zZWFyY2g9ci5nZXRTZWFyY2goKSxlLnNlYXJjaFBhcmFtcz1yLmdldFNlYXJjaFBhcmFtcygpLGUuaGFzaD1yLmdldEhhc2goKSl9LFJ0PWp0LnByb3RvdHlwZSxOdD1mdW5jdGlvbih0LGUpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzKVt0XSgpfSxzZXQ6ZSYmZnVuY3Rpb24odCl7cmV0dXJuIEModGhpcylbZV0odCl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX07aWYoYSYmKGYoUnQsImhyZWYiLE50KCJzZXJpYWxpemUiLCJzZXRIcmVmIikpLGYoUnQsIm9yaWdpbiIsTnQoImdldE9yaWdpbiIpKSxmKFJ0LCJwcm90b2NvbCIsTnQoImdldFByb3RvY29sIiwic2V0UHJvdG9jb2wiKSksZihSdCwidXNlcm5hbWUiLE50KCJnZXRVc2VybmFtZSIsInNldFVzZXJuYW1lIikpLGYoUnQsInBhc3N3b3JkIixOdCgiZ2V0UGFzc3dvcmQiLCJzZXRQYXNzd29yZCIpKSxmKFJ0LCJob3N0IixOdCgiZ2V0SG9zdCIsInNldEhvc3QiKSksZihSdCwiaG9zdG5hbWUiLE50KCJnZXRIb3N0bmFtZSIsInNldEhvc3RuYW1lIikpLGYoUnQsInBvcnQiLE50KCJnZXRQb3J0Iiwic2V0UG9ydCIpKSxmKFJ0LCJwYXRobmFtZSIsTnQoImdldFBhdGhuYW1lIiwic2V0UGF0aG5hbWUiKSksZihSdCwic2VhcmNoIixOdCgiZ2V0U2VhcmNoIiwic2V0U2VhcmNoIikpLGYoUnQsInNlYXJjaFBhcmFtcyIsTnQoImdldFNlYXJjaFBhcmFtcyIpKSxmKFJ0LCJoYXNoIixOdCgiZ2V0SGFzaCIsInNldEhhc2giKSkpLGwoUnQsInRvSlNPTiIsKGZ1bmN0aW9uKCl7cmV0dXJuIEModGhpcykuc2VyaWFsaXplKCl9KSx7ZW51bWVyYWJsZTohMH0pLGwoUnQsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzKS5zZXJpYWxpemUoKX0pLHtlbnVtZXJhYmxlOiEwfSksRSl7dmFyIEJ0PUUuY3JlYXRlT2JqZWN0VVJMLER0PUUucmV2b2tlT2JqZWN0VVJMO0J0JiZsKGp0LCJjcmVhdGVPYmplY3RVUkwiLGMoQnQsRSkpLER0JiZsKGp0LCJyZXZva2VPYmplY3RVUkwiLGMoRHQsRSkpfV8oanQsIlVSTCIpLGkoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6IW8sc2hhbTohYX0se1VSTDpqdH0pfSwiNDA4YSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImUzMzAiKTt0LmV4cG9ydHM9cigxLi52YWx1ZU9mKX0sIjQwZDUiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDM5Iik7dC5leHBvcnRzPSFyKChmdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKCl7fS5iaW5kKCk7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHR8fHQuaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpfSkpfSwiNDBkYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucGx1c1JlYWR5PWZ1bmN0aW9uKHQpe2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgdClyZXR1cm47aWYod2luZG93LnBsdXMpcmV0dXJuIHQoKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwbHVzcmVhZHkiLHQpfX0sIjQxYWUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKTt2YXIgcj1uKCJkYmNlIikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5jcmVhdGVBcHBNaXhpbj1mdW5jdGlvbihlLG4scil7cmV0dXJue2NyZWF0ZWQ6ZnVuY3Rpb24oKXsoMCxhLmRlZmF1bHQpKGUsdGhpcyxuKSxyLm1ldGEubmFtZXx8dC5lbWl0KCJvblBhZ2VOb3RGb3VuZCIse3BhdGg6ci5wYXRoLHF1ZXJ5OnIucXVlcnksaXNFbnRyeVBhZ2U6ITB9KX0sYmVmb3JlTW91bnQ6ZnVuY3Rpb24oKXt0aGlzLiRlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwIil9LG1vdW50ZWQ6ZnVuY3Rpb24oKXtsKHtwYXRoOnRoaXMuJHJvdXRlLm1ldGEmJnRoaXMuJHJvdXRlLm1ldGEucGFnZVBhdGgscXVlcnk6dGhpcy4kcm91dGUucXVlcnl9KSwoMCxpLmNhbGxBcHBIb29rKSh0aGlzLCJvbkxhdW5jaCIsdSksKDAsaS5jYWxsQXBwSG9vaykodGhpcywib25TaG93IixjKX19fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiZ2V0QXBwIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS5nZXRBcHB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImdldEN1cnJlbnRQYWdlcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuZ2V0Q3VycmVudFBhZ2VzfX0pLGUuZ2V0RW50ZXJPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGN9LGUuZ2V0TGF1bmNoT3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiB1fSxlLmluaXRMYXVuY2hPcHRpb25zPWw7dmFyIGk9bigiNTU5YSIpLGE9cihuKCJjMTllIikpLG89T2JqZWN0LmFzc2lnbjtmdW5jdGlvbiBzKCl7cmV0dXJue3BhdGg6IiIscXVlcnk6e30sc2NlbmU6MTAwMSxyZWZlcnJlckluZm86e2FwcElkOiIiLGV4dHJhRGF0YTp7fX19fXZhciBjPXMoKSx1PXMoKTtmdW5jdGlvbiBsKHQpe3ZhciBlPXQucGF0aCxuPXQucXVlcnkscj10LnJlZmVycmVySW5mbztyZXR1cm4gbyh1LHtwYXRoOmUscXVlcnk6bnx8e30scmVmZXJyZXJJbmZvOnJ8fHt9fSksbyhjLHUpLHV9fSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LCI0MjhmIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpO3QuZXhwb3J0cz1yfSw0NDAzOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXF1ZXN0Q29tcG9uZW50SW5mbz1mdW5jdGlvbihlLG4pe3ZhciByLGk9ZS5yZXFJZCxhPWUucmVxcztpZihuLl9pc1Z1ZSlyPW47ZWxzZXt2YXIgbz1nZXRDdXJyZW50UGFnZXMoKSx1PW8uZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuJHBhZ2UuaWQ9PT1ufSkpO2lmKCF1KXRocm93IG5ldyBFcnJvcigiTm90IEZvdW5k77yaUGFnZVsiLmNvbmNhdChuLCJdIikpO3I9dS4kdm19dmFyIGw9W107YS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LmNvbXBvbmVudCxuPXQuc2VsZWN0b3IsaT10LnNpbmdsZSxhPXQuZmllbGRzOzA9PT1lP2wucHVzaChmdW5jdGlvbih0KXt2YXIgZT17fTt0LmlkJiYoZS5pZD0iIik7dC5kYXRhc2V0JiYoZS5kYXRhc2V0PXt9KTt0LnJlY3QmJihlLmxlZnQ9MCxlLnJpZ2h0PTAsZS50b3A9MCxlLmJvdHRvbT0wKTt0LnNpemUmJihlLndpZHRoPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCxlLmhlaWdodD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KTtpZih0LnNjcm9sbE9mZnNldCl7dmFyIG49ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9ZG9jdW1lbnQuYm9keTtlLnNjcm9sbExlZnQ9bi5zY3JvbGxMZWZ0fHxyLnNjcm9sbExlZnR8fDAsZS5zY3JvbGxUb3A9bi5zY3JvbGxUb3B8fHIuc2Nyb2xsVG9wfHwwLGUuc2Nyb2xsSGVpZ2h0PW4uc2Nyb2xsSGVpZ2h0fHxyLnNjcm9sbEhlaWdodHx8MCxlLnNjcm9sbFdpZHRoPW4uc2Nyb2xsV2lkdGh8fHIuc2Nyb2xsV2lkdGh8fDB9cmV0dXJuIGV9KGEpKTpsLnB1c2goZnVuY3Rpb24odCxlLG4scixpKXt2YXIgYT0oMCxzLmVsZW1lbnRNYXRjaGVzUG9seWZpbGwpKCgwLHMuZmluZEVsbSkoZSx0KSk7aWYoIWF8fGEmJjg9PT1hLm5vZGVUeXBlKXJldHVybiByP251bGw6W107aWYocil7dmFyIG89YS5tYXRjaGVzKG4pP2E6YS5xdWVyeVNlbGVjdG9yKG4pO3JldHVybiBvP2MobyxpKTpudWxsfXZhciB1PVtdLGw9YS5xdWVyeVNlbGVjdG9yQWxsKG4pO3JldHVybiBsJiZsLmxlbmd0aCYmKHU9W10ubWFwLmNhbGwobCwoZnVuY3Rpb24odCl7cmV0dXJuIGModCxpKX0pKSksYS5tYXRjaGVzKG4pJiZ1LnVuc2hpZnQoYyhhLGkpKSx1fShyLGUsbixpLGEpKX0pKSx0LnB1Ymxpc2hIYW5kbGVyKCJvblJlcXVlc3RDb21wb25lbnRJbmZvIix7cmVxSWQ6aSxyZXM6bH0pfSxuKCJkM2I3IiksbigiMTU5YiIpLG4oImQ4MWQiKSxuKCIzYzY1IiksbigiN2RiMCIpLG4oImQ5ZTIiKSxuKCJkNDAxIiksbigiMTRkOSIpO3ZhciBpPW4oImY0ZjAiKSxhPW4oImRiNmEiKSxvPXIobigiNGZjYiIpKSxzPW4oIjA4YzUiKTtmdW5jdGlvbiBjKHQsZSl7dmFyIG49e30scj0oMCxvLmRlZmF1bHQpKCkscz1yLnRvcDtpZihlLmlkJiYobi5pZD10LmlkKSxlLmRhdGFzZXQmJihuLmRhdGFzZXQ9KDAsaS5nZXRUYXJnZXREYXRhc2V0KSh0KSksZS5yZWN0fHxlLnNpemUpe3ZhciBjPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZS5yZWN0JiYobi5sZWZ0PWMubGVmdCxuLnJpZ2h0PWMucmlnaHQsbi50b3A9Yy50b3AtcyxuLmJvdHRvbT1jLmJvdHRvbS1zKSxlLnNpemUmJihuLndpZHRoPWMud2lkdGgsbi5oZWlnaHQ9Yy5oZWlnaHQpfWlmKEFycmF5LmlzQXJyYXkoZS5wcm9wZXJ0aWVzKSl7dmFyIHU9dC5fX3Z1ZV9fJiZ0Ll9fdnVlX18uJHByb3BzO3UmJmUucHJvcGVydGllcy5mb3JFYWNoKChmdW5jdGlvbih0KXsic3RyaW5nIj09PXR5cGVvZiB0JiYodD0oMCxhLmNhbWVsaXplKSh0KSxudWxsIT11W3RdJiYoblt0XT11W3RdKSl9KSl9aWYoZS5zY3JvbGxPZmZzZXQmJigiVU5JLVNDUk9MTC1WSUVXIj09PXQudGFnTmFtZSYmdC5fX3Z1ZV9fJiZ0Ll9fdnVlX18uZ2V0U2Nyb2xsUG9zaXRpb24/T2JqZWN0LmFzc2lnbihuLHQuX192dWVfXy5nZXRTY3JvbGxQb3NpdGlvbigpKToobi5zY3JvbGxMZWZ0PTAsbi5zY3JvbGxUb3A9MCxuLnNjcm9sbEhlaWdodD0wLG4uc2Nyb2xsV2lkdGg9MCkpLEFycmF5LmlzQXJyYXkoZS5jb21wdXRlZFN0eWxlKSl7dmFyIGw9Z2V0Q29tcHV0ZWRTdHlsZSh0KTtlLmNvbXB1dGVkU3R5bGUuZm9yRWFjaCgoZnVuY3Rpb24odCl7blt0XT1sW3RdfSkpfXJldHVybiBlLmNvbnRleHQmJnQuX192dWVfXyYmdC5fX3Z1ZV9fLl9nZXRDb250ZXh0SW5mbyYmKG4uY29udGV4dD10Ll9fdnVlX18uX2dldENvbnRleHRJbmZvKCkpLG59fSkuY2FsbCh0aGlzLG4oImM1YzMiKSl9LDQ0NzU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuY3JlYXRlVmlkZW9Db250ZXh0PWUuY3JlYXRlTWFwQ29udGV4dD1lLmNyZWF0ZUNhbnZhc0NvbnRleHQ9ZS5jcmVhdGVBdWRpb0NvbnRleHQ9dm9pZCAwO3ZhciByPVt7bmFtZToiaWQiLHR5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfV0saT1yO2UuY3JlYXRlQXVkaW9Db250ZXh0PWk7dmFyIGE9cjtlLmNyZWF0ZVZpZGVvQ29udGV4dD1hO3ZhciBvPXI7ZS5jcmVhdGVNYXBDb250ZXh0PW87dmFyIHM9W3tuYW1lOiJjYW52YXNJZCIsdHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LHtuYW1lOiJjb21wb25lbnRJbnN0YW5jZSIsdHlwZTpPYmplY3R9XTtlLmNyZWF0ZUNhbnZhc0NvbnRleHQ9c30sIjQ0YWQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMzMwIiksaT1uKCJkMDM5IiksYT1uKCJjNmI2Iiksbz1PYmplY3Qscz1yKCIiLnNwbGl0KTt0LmV4cG9ydHM9aSgoZnVuY3Rpb24oKXtyZXR1cm4hbygieiIpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApfSkpP2Z1bmN0aW9uKHQpe3JldHVybiJTdHJpbmciPT1hKHQpP3ModCwiIik6byh0KX06b30sIjQ0ZDIiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJiNjIyIiksaT1uKCI3YzczIiksYT1uKCI5YmYyIikuZixvPXIoInVuc2NvcGFibGVzIikscz1BcnJheS5wcm90b3R5cGU7dm9pZCAwPT1zW29dJiZhKHMsbyx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmkobnVsbCl9KSx0LmV4cG9ydHM9ZnVuY3Rpb24odCl7c1tvXVt0XT0hMH19LCI0NGRlIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXIuY29uc29sZTtuJiZuLmVycm9yJiYoMT09YXJndW1lbnRzLmxlbmd0aD9uLmVycm9yKHQpOm4uZXJyb3IodCxlKSl9fSwiNDRlNyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjg2MWQiKSxpPW4oImM2YjYiKSxhPW4oImI2MjIiKSxvPWEoIm1hdGNoIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiByKHQpJiYodm9pZCAwIT09KGU9dFtvXSk/ISFlOiJSZWdFeHAiPT1pKHQpKX19LDQ1NTI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiYWY1NSIpLGk9bigiYWYyMCIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sIjQ1N2QiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImE5ZTMiKSxuKCJjOTc1IiksbigiZmI2YSIpLG4oImUyNWUiKTt2YXIgcj1uKCI5ODdkIiksaT1uKCJkYjZhIiksYT1bInRleHQiLCJudW1iZXIiLCJpZGNhcmQiLCJkaWdpdCIsInBhc3N3b3JkIiwidGVsIl0sbz1bIm51bWJlciIsImRpZ2l0Il0scz1bIm9mZiIsIm9uZS10aW1lLWNvZGUiXSxjPVsibm9uZSIsInRleHQiLCJkZWNpbWFsIiwibnVtZXJpYyIsInRlbCIsInNlYXJjaCIsImVtYWlsIiwidXJsIl0sdT17bmFtZToiSW5wdXQiLG1peGluczpbci5maWVsZF0scHJvcHM6e25hbWU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LHR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6InRleHQifSxwYXNzd29yZDp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LHBsYWNlaG9sZGVyOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxwbGFjZWhvbGRlclN0eWxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxwbGFjZWhvbGRlckNsYXNzOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJpbnB1dC1wbGFjZWhvbGRlciJ9LGRpc2FibGVkOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sbWF4bGVuZ3RoOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjE0MH0sY29uZmlybVR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImRvbmUifSx0ZXh0Q29udGVudFR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LHN0ZXA6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IjAuMDAwMDAwMDAwMDAwMDAwMDAxIn0saW5wdXRtb2RlOnt0eXBlOlN0cmluZyxkZWZhdWx0OnZvaWQgMCx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuISF+Yy5pbmRleE9mKHQpfX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57d3JhcHBlckhlaWdodDowLGNhY2hlZFZhbHVlOiIifX0sY29tcHV0ZWQ6e2lucHV0VHlwZTpmdW5jdGlvbigpe3ZhciB0PSIiO3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UidGV4dCI6InNlYXJjaCI9PT10aGlzLmNvbmZpcm1UeXBlJiYodD0ic2VhcmNoIik7YnJlYWs7Y2FzZSJpZGNhcmQiOnQ9InRleHQiO2JyZWFrO2Nhc2UiZGlnaXQiOnQ9Im51bWJlciI7YnJlYWs7ZGVmYXVsdDp0PX5hLmluZGV4T2YodGhpcy50eXBlKT90aGlzLnR5cGU6InRleHQiO2JyZWFrfXJldHVybiB0aGlzLnBhc3N3b3JkPyJwYXNzd29yZCI6dH0sX3N0ZXA6ZnVuY3Rpb24oKXtyZXR1cm5+by5pbmRleE9mKHRoaXMudHlwZSk/dGhpcy5zdGVwOiIifSxhdXRvY29tcGxldGU6ZnVuY3Rpb24oKXt2YXIgdD1zLmluZGV4T2YodGhpcy50ZXh0Q29udGVudFR5cGUpLGU9cy5pbmRleE9mKCgwLGkua2ViYWJDYXNlKSh0aGlzLnRleHRDb250ZW50VHlwZSkpLG49LTEhPT10P3Q6LTEhPT1lP2U6MDtyZXR1cm4gc1tuXX0sc2hvd1BsYWNlaG9sZGVyOmZ1bmN0aW9uKCl7dmFyIHQ9ImRpZ2l0Ij09PXRoaXMudHlwZT90aGlzLmNhY2hlZFZhbHVlLmluZGV4T2YoIi4iKTotMTtyZXR1cm4hKHRoaXMuY29tcG9zaW5nfHx0aGlzLnZhbHVlU3luYy5sZW5ndGh8fCItIj09PXRoaXMuY2FjaGVkVmFsdWV8fC0xIT09dCYmdD09PXRoaXMuY2FjaGVkVmFsdWUubGVuZ3RoLTEpfX0sd2F0Y2g6e21heGxlbmd0aDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnZhbHVlU3luYy5zbGljZSgwLHBhcnNlSW50KHQsMTApKTtlIT09dGhpcy52YWx1ZVN5bmMmJih0aGlzLnZhbHVlU3luYz1lKX0sdmFsdWVTeW5jOmZ1bmN0aW9uKHQpeyJudW1iZXIiIT09dGhpcy50eXBlfHwiLSI9PT10aGlzLmNhY2hlZFZhbHVlJiYiIj09PXR8fCh0aGlzLmNhY2hlZFZhbHVlPXQpfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuJGRpc3BhdGNoKCJGb3JtIiwidW5pLWZvcm0tZ3JvdXAtdXBkYXRlIix7dHlwZToiYWRkIix2bTp0aGlzfSl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXtpZigic2VhcmNoIj09PXRoaXMuY29uZmlybVR5cGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKTt0LmFjdGlvbj0iIix0Lm9uc3VibWl0PWZ1bmN0aW9uKCl7cmV0dXJuITF9LHQuY2xhc3NOYW1lPSJ1bmktaW5wdXQtZm9ybSIsdC5hcHBlbmRDaGlsZCh0aGlzLiRyZWZzLmlucHV0KSx0aGlzLiRyZWZzLndyYXBwZXIuYXBwZW5kQ2hpbGQodCl9dmFyIGU9dGhpczt3aGlsZShlKXt2YXIgbj1lLiRvcHRpb25zLl9zY29wZUlkO24mJnRoaXMuJHJlZnMucGxhY2Vob2xkZXIuc2V0QXR0cmlidXRlKG4sIiIpLGU9ZS4kcGFyZW50fX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuJGRpc3BhdGNoKCJGb3JtIiwidW5pLWZvcm0tZ3JvdXAtdXBkYXRlIix7dHlwZToicmVtb3ZlIix2bTp0aGlzfSl9LG1ldGhvZHM6e19vbktleXVwOmZ1bmN0aW9uKHQpe3ZhciBlPXQudGFyZ2V0O3RoaXMuJHRyaWdnZXIoImNvbmZpcm0iLHQse3ZhbHVlOmUudmFsdWV9KSx0aGlzLmNvbmZpcm1Ib2xkfHxlLmJsdXIoKX0sX29uSW5wdXQ6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLHI9ITE7aWYoIXRoaXMuY29tcG9zaW5nfHwhdGhpcy5pZ25vcmVDb21wb3NpdGlvbkV2ZW50KXtpZigibnVtYmVyIj09PXRoaXMuaW5wdXRUeXBlKXt2YXIgaT1wYXJzZUludCh0aGlzLm1heGxlbmd0aCwxMCk7aWYoaT4wJiZ0LnRhcmdldC52YWx1ZS5sZW5ndGg+aSYmKHRoaXMuY2FjaGVkVmFsdWUubGVuZ3RoPT09aT8odGhpcy52YWx1ZVN5bmM9dGhpcy5jYWNoZWRWYWx1ZSxyPSEwKToodC50YXJnZXQudmFsdWU9dC50YXJnZXQudmFsdWUuc2xpY2UoMCxpKSx0aGlzLnZhbHVlU3luYz10LnRhcmdldC52YWx1ZSkpLHRoaXMuX19jbGVhckNhY2hlZFZhbHVlJiZ0LnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9fY2xlYXJDYWNoZWRWYWx1ZSksdC50YXJnZXQudmFsaWRpdHkmJiF0LnRhcmdldC52YWxpZGl0eS52YWxpZCl7aWYoKCF0aGlzLmNhY2hlZFZhbHVlfHwhdC50YXJnZXQudmFsdWUpJiYiLSI9PT10LmRhdGF8fCItIj09PXRoaXMuY2FjaGVkVmFsdWVbMF0mJiJkZWxldGVDb250ZW50QmFja3dhcmQiPT09dC5pbnB1dFR5cGUpe3RoaXMuY2FjaGVkVmFsdWU9Ii0iLHRoaXMudmFsdWVTeW5jPSIiO3ZhciBhPXRoaXMuX19jbGVhckNhY2hlZFZhbHVlPWZ1bmN0aW9uKCl7bi5jYWNoZWRWYWx1ZT10LnRhcmdldC52YWx1ZT0iIn07cmV0dXJuIHZvaWQgdC50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsYSl9aWYodGhpcy5jYWNoZWRWYWx1ZSlpZigtMSE9PXRoaXMuY2FjaGVkVmFsdWUuaW5kZXhPZigiLiIpKXtpZigiLiIhPT10LmRhdGEmJiJkZWxldGVDb250ZW50QmFja3dhcmQiPT09dC5pbnB1dFR5cGUpe3ZhciBvPXRoaXMuY2FjaGVkVmFsdWUuaW5kZXhPZigiLiIpO3JldHVybiB0aGlzLmNhY2hlZFZhbHVlPXQudGFyZ2V0LnZhbHVlPXRoaXMudmFsdWVTeW5jPXRoaXMuY2FjaGVkVmFsdWUuc2xpY2UoMCxvKSx0aGlzLiR0cmlnZ2VySW5wdXQodCx7dmFsdWU6dGhpcy52YWx1ZVN5bmN9LGUpfX1lbHNlIGlmKCIuIj09PXQuZGF0YSlyZXR1cm4gdGhpcy5jYWNoZWRWYWx1ZSs9Ii4iLHRoaXMuX19jbGVhckNhY2hlZFZhbHVlPWZ1bmN0aW9uKCl7bi5jYWNoZWRWYWx1ZT1uLnZhbHVlU3luYz10LnRhcmdldC52YWx1ZT1uLmNhY2hlZFZhbHVlLnNsaWNlKDAsLTEpfSx0LnRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9fY2xlYXJDYWNoZWRWYWx1ZSksITE7cmV0dXJuIHZvaWQodGhpcy5jYWNoZWRWYWx1ZT10aGlzLnZhbHVlU3luYz10LnRhcmdldC52YWx1ZT0iLSI9PT10aGlzLmNhY2hlZFZhbHVlPyIiOnRoaXMuY2FjaGVkVmFsdWUpfXRoaXMuY2FjaGVkVmFsdWU9dGhpcy52YWx1ZVN5bmN9cnx8KHRoaXMudmFsdWVTeW5jPXRoaXMuJHJlZnMuaW5wdXQudmFsdWUsdGhpcy4kdHJpZ2dlcklucHV0KHQse3ZhbHVlOnRoaXMudmFsdWVTeW5jfSxlKSl9fSxfb25Db21wb3NpdGlvbjpmdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlImNvbXBvc2l0aW9uc3RhcnQiOnRoaXMuY29tcG9zaW5nPSEwO2JyZWFrO2Nhc2UiY29tcG9zaXRpb25lbmQiOnRoaXMuY29tcG9zaW5nJiYodGhpcy5jb21wb3Npbmc9ITEsdGhpcy5fb25JbnB1dCh0KSk7YnJlYWt9IXRoaXMuaWdub3JlQ29tcG9zaXRpb25FdmVudCYmdGhpcy4kdHJpZ2dlcih0LnR5cGUsdCx7ZGF0YTp0LmRhdGF9KX0sX3Jlc2V0Rm9ybURhdGE6ZnVuY3Rpb24oKXt0aGlzLnZhbHVlU3luYz0iIn0sX2dldEZvcm1EYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZT97dmFsdWU6dGhpcy52YWx1ZVN5bmMsa2V5OnRoaXMubmFtZX06e319fX07ZS5kZWZhdWx0PXV9LDQ2MjU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImM2YjYiKSxpPW4oImUzMzAiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIkZ1bmN0aW9uIj09PXIodCkpcmV0dXJuIGkodCl9fSwiNDY2ZCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJjNjViIiksaT1uKCJkNzg0IiksYT1uKCI4MjVhIiksbz1uKCI3MjM0Iikscz1uKCI1MGM0IiksYz1uKCI1NzdlIiksdT1uKCIxZDgwIiksbD1uKCJkYzRhIiksZj1uKCI4YWE1IiksZD1uKCIxNGMzIik7aSgibWF0Y2giLChmdW5jdGlvbih0LGUsbil7cmV0dXJuW2Z1bmN0aW9uKGUpe3ZhciBuPXUodGhpcyksaT1vKGUpP3ZvaWQgMDpsKGUsdCk7cmV0dXJuIGk/cihpLGUsbik6bmV3IFJlZ0V4cChlKVt0XShjKG4pKX0sZnVuY3Rpb24odCl7dmFyIHI9YSh0aGlzKSxpPWModCksbz1uKGUscixpKTtpZihvLmRvbmUpcmV0dXJuIG8udmFsdWU7aWYoIXIuZ2xvYmFsKXJldHVybiBkKHIsaSk7dmFyIHU9ci51bmljb2RlO3IubGFzdEluZGV4PTA7dmFyIGwsaD1bXSxwPTA7d2hpbGUobnVsbCE9PShsPWQocixpKSkpe3ZhciB2PWMobFswXSk7aFtwXT12LCIiPT09diYmKHIubGFzdEluZGV4PWYoaSxzKHIubGFzdEluZGV4KSx1KSkscCsrfXJldHVybiAwPT09cD9udWxsOmh9XX0pKX0sNDczODpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpLGk9bigiZDI1NiIpLGE9bigiMTYyNiIpLG89bigiOTRjYSIpLHM9bigiODkyNSIpLGM9bigiYjYyMiIpLHU9bigiNjA2OSIpLGw9bigiNmM1OSIpLGY9bigiYzQzMCIpLGQ9bigiMmQwMCIpLGg9aSYmaS5wcm90b3R5cGUscD1jKCJzcGVjaWVzIiksdj0hMSxnPWEoci5Qcm9taXNlUmVqZWN0aW9uRXZlbnQpLG09bygiUHJvbWlzZSIsKGZ1bmN0aW9uKCl7dmFyIHQ9cyhpKSxlPXQhPT1TdHJpbmcoaSk7aWYoIWUmJjY2PT09ZClyZXR1cm4hMDtpZihmJiYoIWhbImNhdGNoIl18fCFoWyJmaW5hbGx5Il0pKXJldHVybiEwO2lmKCFkfHxkPDUxfHwhL25hdGl2ZSBjb2RlLy50ZXN0KHQpKXt2YXIgbj1uZXcgaSgoZnVuY3Rpb24odCl7dCgxKX0pKSxyPWZ1bmN0aW9uKHQpe3QoKGZ1bmN0aW9uKCl7fSksKGZ1bmN0aW9uKCl7fSkpfSxhPW4uY29uc3RydWN0b3I9e307aWYoYVtwXT1yLHY9bi50aGVuKChmdW5jdGlvbigpe30pKWluc3RhbmNlb2YgciwhdilyZXR1cm4hMH1yZXR1cm4hZSYmKHV8fGwpJiYhZ30pKTt0LmV4cG9ydHM9e0NPTlNUUlVDVE9SOm0sUkVKRUNUSU9OX0VWRU5UOmcsU1VCQ0xBU1NJTkc6dn19LDQ3NTQ6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm57dmFsdWU6dCxkb25lOmV9fX0sIjQ3ZGIiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCIxNGQ5IiksbigiZDNiNyIpLG4oIjk5YWYiKSxuKCJhYzFmIiksbigiNDY2ZCIpLG4oImUyNWUiKTt2YXIgcj1uKCJkYjZhIiksaT17bW91bnRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoInRyYW5zcGFyZW50Ij09PXRoaXMudHlwZSl7Zm9yKHZhciBuPXRoaXMuJGVsLnF1ZXJ5U2VsZWN0b3IoIi51bmktcGFnZS1oZWFkLXRyYW5zcGFyZW50Iikuc3R5bGUscj10aGlzLiRlbC5xdWVyeVNlbGVjdG9yKCIudW5pLXBhZ2UtaGVhZF9fdGl0bGUiKSxpPXRoaXMuJGVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi51bmktYnRuLWljb24iKSxhPVtdLG89dGhpcy50ZXh0Q29sb3Iscz0wO3M8aS5sZW5ndGg7cysrKWEucHVzaChpW3NdLnN0eWxlKTtmb3IodmFyIGM9dGhpcy4kZWwucXVlcnlTZWxlY3RvckFsbCgiLnVuaS1wYWdlLWhlYWQtYnRuIiksdT1bXSxsPVtdLGY9MDtmPGMubGVuZ3RoO2YrKyl7dmFyIGQ9Y1tmXTt1LnB1c2goZ2V0Q29tcHV0ZWRTdHlsZShkKS5iYWNrZ3JvdW5kQ29sb3IpLGwucHVzaChkLnN0eWxlKX10aGlzLl9BPTAsdC5vbigib25QYWdlU2Nyb2xsIiwoZnVuY3Rpb24odCl7dmFyIGk9dC5zY3JvbGxUb3Ascz1NYXRoLm1pbihpL2Uub2Zmc2V0LDEpOzE9PT1zJiYxPT09ZS5fQXx8KHM+LjUmJmUuX0E8PS41P2EuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jb2xvcj1vfSkpOnM8PS41JiZlLl9BPi41JiZhLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY29sb3I9IiNmZmYifSkpLGUuX0E9cyxyJiYoci5zdHlsZS5vcGFjaXR5PXMpLG4uYmFja2dyb3VuZENvbG9yPSJyZ2JhKCIuY29uY2F0KGUuX1IsIiwiKS5jb25jYXQoZS5fRywiLCIpLmNvbmNhdChlLl9CLCIsIikuY29uY2F0KHMsIikiKSxsLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dmFyIG49dVtlXSxyPW4ubWF0Y2goL1tcZCtcLl0rL2cpO3JbM109KDEtcykqKDQ9PT1yLmxlbmd0aD9yWzNdOjEpLHQuYmFja2dyb3VuZENvbG9yPSJyZ2JhKCIuY29uY2F0KHIsIikiKX0pKSl9KSl9ZWxzZSBpZigiZmxvYXQiPT09dGhpcy50eXBlKXtmb3IodmFyIGg9dGhpcy4kZWwucXVlcnlTZWxlY3RvckFsbCgiLnVuaS1idG4taWNvbiIpLHA9W10sdj0wO3Y8aC5sZW5ndGg7disrKXAucHVzaChoW3ZdLnN0eWxlKTtmb3IodmFyIGc9dGhpcy4kZWwucXVlcnlTZWxlY3RvckFsbCgiLnVuaS1wYWdlLWhlYWQtYnRuIiksbT1bXSxiPVtdLHk9MDt5PGcubGVuZ3RoO3krKyl7dmFyIF89Z1t5XTttLnB1c2goZ2V0Q29tcHV0ZWRTdHlsZShfKS5iYWNrZ3JvdW5kQ29sb3IpLGIucHVzaChfLnN0eWxlKX19fSxjb21wdXRlZDp7Y29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNwYXJlbnQiPT09dGhpcy50eXBlPyIjZmZmIjp0aGlzLnRleHRDb2xvcn0sb2Zmc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlSW50KHRoaXMuY292ZXJhZ2UpfSxiZ0NvbG9yOmZ1bmN0aW9uKCl7aWYoInRyYW5zcGFyZW50Ij09PXRoaXMudHlwZSl7dmFyIHQ9KDAsci5oZXhUb1JnYmEpKHRoaXMuYmFja2dyb3VuZENvbG9yKSxlPXQucixuPXQuZyxpPXQuYjtyZXR1cm4gdGhpcy5fUj1lLHRoaXMuX0c9bix0aGlzLl9CPWksInJnYmEoIi5jb25jYXQoZSwiLCIpLmNvbmNhdChuLCIsIikuY29uY2F0KGksIiwwKSIpfXJldHVybiB0aGlzLmJhY2tncm91bmRDb2xvcn19fTtlLmRlZmF1bHQ9aX0pLmNhbGwodGhpcyxuKCJjNWMzIikpfSw0ODQwOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI4MjVhIiksaT1uKCI1MDg3IiksYT1uKCI3MjM0Iiksbz1uKCJiNjIyIikscz1vKCJzcGVjaWVzIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG4sbz1yKHQpLmNvbnN0cnVjdG9yO3JldHVybiB2b2lkIDA9PT1vfHxhKG49cihvKVtzXSk/ZTppKG4pfX0sIjQ4NWEiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJjNjViIiksaT1uKCIxNjI2IiksYT1uKCI4NjFkIiksbz1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG4scztpZigic3RyaW5nIj09PWUmJmkobj10LnRvU3RyaW5nKSYmIWEocz1yKG4sdCkpKXJldHVybiBzO2lmKGkobj10LnZhbHVlT2YpJiYhYShzPXIobix0KSkpcmV0dXJuIHM7aWYoInN0cmluZyIhPT1lJiZpKG49dC50b1N0cmluZykmJiFhKHM9cihuLHQpKSlyZXR1cm4gczt0aHJvdyBvKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX19LCI0OThhIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oIjU4YTgiKS50cmltLGE9bigiYzhkMiIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6YSgidHJpbSIpfSx7dHJpbTpmdW5jdGlvbigpe3JldHVybiBpKHRoaXMpfX0pfSwiNDliNCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLk1hcENvbnRleHQ9dm9pZCAwLGUuY3JlYXRlTWFwQ29udGV4dD1mdW5jdGlvbih0LGUpe2lmKGUpcmV0dXJuIG5ldyB1KHQsZSk7cmV0dXJuIG5ldyB1KHQsKDAsby5nZXRDdXJyZW50UGFnZVZtKSgiY3JlYXRlTWFwQ29udGV4dCIpKX0sbigiZDNiNyIpO3ZhciBpPXIobigiZDRlYyIpKSxhPXIobigiYmVlMiIpKSxvPW4oIjI0MTIiKSxzPW4oImRiNmEiKTtmdW5jdGlvbiBjKHQsZSxuLHIpeygwLG8uaW52b2tlTWV0aG9kKSgib3BlcmF0ZU1hcFBsYXllciIsdCxlLG4scil9dC5zdWJzY3JpYmUoIm9uTWFwTWV0aG9kQ2FsbGJhY2siLChmdW5jdGlvbih0KXt2YXIgZT10LmNhbGxiYWNrSWQsbj10LmRhdGE7cy5jYWxsYmFjay5pbnZva2UoZSxuKX0pKTt2YXIgdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXsoMCxpLmRlZmF1bHQpKHRoaXMsdCksdGhpcy5pZD1lLHRoaXMucGFnZVZtPW59cmV0dXJuKDAsYS5kZWZhdWx0KSh0LFt7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24odCxlKXtjKHRoaXMuaWQsdGhpcy5wYWdlVm0sIm9uIix7bmFtZTp0LGNhbGxiYWNrOmV9KX19XSksdH0oKTtlLk1hcENvbnRleHQ9dSx1LnByb3RvdHlwZS4kZ2V0QXBwTWFwPWZ1bmN0aW9uKCl7MH0sWyJnZXRDZW50ZXJMb2NhdGlvbiIsIm1vdmVUb0xvY2F0aW9uIiwiZ2V0U2NhbGUiLCJnZXRSZWdpb24iLCJpbmNsdWRlUG9pbnRzIiwidHJhbnNsYXRlTWFya2VyIiwiYWRkQ3VzdG9tTGF5ZXIiLCJyZW1vdmVDdXN0b21MYXllciIsImFkZEdyb3VuZE92ZXJsYXkiLCJyZW1vdmVHcm91bmRPdmVybGF5IiwidXBkYXRlR3JvdW5kT3ZlcmxheSIsImluaXRNYXJrZXJDbHVzdGVyIiwiYWRkTWFya2VycyIsInJlbW92ZU1hcmtlcnMiLCJtb3ZlQWxvbmciLCJzZXRMb2NNYXJrZXJJY29uIiwib3Blbk1hcEFwcCJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3UucHJvdG90eXBlW3RdPXMuY2FsbGJhY2sud2FycCgoZnVuY3Rpb24oZSxuKXtlLmNhbGxiYWNrSWQ9bixjKHRoaXMuaWQsdGhpcy5wYWdlVm0sdCxlKX0pKX0pKX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiNDliNiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZ2V0QnJvd3NlckluZm89ZnVuY3Rpb24oKXt2YXIgdCxlLG4scj1uYXZpZ2F0b3IubGFuZ3VhZ2UsZD0icGhvbmUiO2lmKHMpe3Q9ImlPUyI7dmFyIGg9YS5tYXRjaCgvT1NccyhbXHdfXSspXHNsaWtlLyk7aCYmKGU9aFsxXS5yZXBsYWNlKC9fL2csIi4iKSk7dmFyIHA9YS5tYXRjaCgvXCgoW2EtekEtWl0rKTsvKTtwJiYobj1wWzFdKX1lbHNlIGlmKG8pe3Q9IkFuZHJvaWQiO3ZhciB2PWEubWF0Y2goL0FuZHJvaWRbXHMvXShbXHdcLl0rKVs7XHNdLyk7diYmKGU9dlsxXSk7Zm9yKHZhciBnPWEubWF0Y2goL1woKC4rPylcKS8pLG09Zz9nWzFdLnNwbGl0KCI7Iik6YS5zcGxpdCgiICIpLGI9Wy9cYkFuZHJvaWRcYi9pLC9cYkxpbnV4XGIvaSwvXGJVXGIvaSwvXlxzP1thLXpdW2Etel0kL2ksL15ccz9bYS16XVthLXpdLVthLXpdW2Etel0kL2ksL1xid3ZcYi9pLC9cL1tcZFwuLF0rJC8sL15ccz9bXGRcLixdKyQvLC9cYkJyb3dzZXJcYi9pLC9cYk1vYmlsZVxiL2ldLHk9MDt5PG0ubGVuZ3RoO3krKyl7dmFyIF89bVt5XTtpZihfLmluZGV4T2YoIkJ1aWxkIik+MCl7bj1fLnNwbGl0KCJCdWlsZCIpWzBdLnRyaW0oKTticmVha31mb3IodmFyIHc9dm9pZCAwLHg9MDt4PGIubGVuZ3RoO3grKylpZihiW3hdLnRlc3QoXykpe3c9ITA7YnJlYWt9aWYoIXcpe249Xy50cmltKCk7YnJlYWt9fX1lbHNlIGlmKGYpbj0iaVBhZCIsdD0iaU9TIixlPSJmdW5jdGlvbiI9PT10eXBlb2Ygd2luZG93LkJpZ0ludD8iMTQuMCI6IjEzLjAiLGQ9InBhZCI7ZWxzZSBpZihjfHx1fHxsKXtuPSJQQyIsdD0iUEMiLGQ9InBjIjt2YXIgUz1hLm1hdGNoKC9cKCguKz8pXCkvKVsxXTtpZihjKXtzd2l0Y2godD0iV2luZG93cyIsZT0iIixjWzFdKXtjYXNlIjUuMSI6ZT0iWFAiO2JyZWFrO2Nhc2UiNi4wIjplPSJWaXN0YSI7YnJlYWs7Y2FzZSI2LjEiOmU9IjciO2JyZWFrO2Nhc2UiNi4yIjplPSI4IjticmVhaztjYXNlIjYuMyI6ZT0iOC4xIjticmVhaztjYXNlIjEwLjAiOmU9IjEwIjticmVha312YXIgVD1TLm1hdGNoKC9bV2lufFdPV10oW1xkXSspLyk7VCYmKGUrPSIgeCIuY29uY2F0KFRbMV0pKX1lbHNlIHU/KHQ9Im1hY09TIixlPVMubWF0Y2goL01hYyBPUyBYICguKykvKXx8IiIsZSYmKGU9ZVsxXS5yZXBsYWNlKC9fL2csIi4iKSwtMSE9PWUuaW5kZXhPZigiOyIpJiYoZT1lLnNwbGl0KCI7IilbMF0pKSk6bCYmKHQ9IkxpbnV4IixlPVMubWF0Y2goL0xpbnV4ICguKikvKXx8IiIsZSYmKGU9ZVsxXSwtMSE9PWUuaW5kZXhPZigiOyIpJiYoZT1lLnNwbGl0KCI7IilbMF0pKSl9ZWxzZSB0PSJPdGhlciIsZT0iMCIsZD0idW5rbm93biI7dmFyIEM9IiIuY29uY2F0KHQsIiAiKS5jb25jYXQoZSksaz10LnRvTG9jYWxlTG93ZXJDYXNlKCksTz0iIixFPVN0cmluZyhmdW5jdGlvbigpe3ZhciB0PW5hdmlnYXRvci51c2VyQWdlbnQsZT10LmluZGV4T2YoImNvbXBhdGlibGUiKT4tMSYmdC5pbmRleE9mKCJNU0lFIik+LTEsbj10LmluZGV4T2YoIkVkZ2UiKT4tMSYmIWUscj10LmluZGV4T2YoIlRyaWRlbnQiKT4tMSYmdC5pbmRleE9mKCJydjoxMS4wIik+LTE7aWYoZSl7dmFyIGk9bmV3IFJlZ0V4cCgiTVNJRSAoXFxkK1xcLlxcZCspOyIpO2kudGVzdCh0KTt2YXIgYT1wYXJzZUZsb2F0KFJlZ0V4cC4kMSk7cmV0dXJuIGE+Nj9hOjZ9cmV0dXJuIG4/LTE6cj8xMTotMX0oKSk7aWYoIi0xIiE9PUUpTz0iSUUiO2Vsc2UgZm9yKHZhciBJPVsiVmVyc2lvbiIsIkZpcmVmb3giLCJDaHJvbWUiLCJFZGdlezAsMX0iXSxQPVsiU2FmYXJpIiwiRmlyZWZveCIsIkNocm9tZSIsIkVkZ2UiXSxNPTA7TTxJLmxlbmd0aDtNKyspe3ZhciBBPUlbTV0sJD1uZXcgUmVnRXhwKCIoIi5jb25jYXQoQSwiKS8oXFxTKilcXGIiKSk7JC50ZXN0KGEpJiYoTz1QW01dLEU9YS5tYXRjaCgkKVsyXSl9dmFyIEwsaj0idW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuc2NyZWVuLm9yaWVudGF0aW9uP3dpbmRvdy5vcmllbnRhdGlvbjp3aW5kb3cuc2NyZWVuLm9yaWVudGF0aW9uLmFuZ2xlO3JldHVybiBMPTkwPT09TWF0aC5hYnMoaik/ImxhbmRzY2FwZSI6InBvcnRyYWl0Iix7ZGV2aWNlQnJhbmQ6dm9pZCAwLGJyYW5kOnZvaWQgMCxkZXZpY2VNb2RlbDpuLGRldmljZU9yaWVudGF0aW9uOkwsbW9kZWw6bixzeXN0ZW06QyxwbGF0Zm9ybTprLGJyb3dzZXJOYW1lOk8udG9Mb2NhbGVMb3dlckNhc2UoKSxicm93c2VyVmVyc2lvbjpFLGxhbmd1YWdlOnIsZGV2aWNlVHlwZTpkLHVhOmEsb3NuYW1lOnQsb3N2ZXJzaW9uOmUsdGhlbWU6aSgpfX0sZS5nZXRUaGVtZT1pLG4oImM5NzUiKSxuKCI0ZDYzIiksbigiYzYwNyIpLG4oImFjMWYiKSxuKCIyYzNlIiksbigiMjVmMCIpLG4oIjAwYjQiKSxuKCJhY2Q4IiksbigiNDY2ZCIpLG4oIjUzMTkiKSxuKCI0OThhIiksbigiOTlhZiIpO3ZhciByPW4oImRiNmEiKTtmdW5jdGlvbiBpKCl7aWYoITAhPT1fX3VuaUNvbmZpZy5kYXJrbW9kZSlyZXR1cm4oMCxyLmlzU3RyKShfX3VuaUNvbmZpZy5kYXJrbW9kZSk/X191bmlDb25maWcuZGFya21vZGU6ImxpZ2h0Ijt0cnl7cmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIpLm1hdGNoZXM/ImxpZ2h0IjoiZGFyayJ9Y2F0Y2godCl7cmV0dXJuImxpZ2h0In19dmFyIGE9bmF2aWdhdG9yLnVzZXJBZ2VudCxvPS9hbmRyb2lkL2kudGVzdChhKSxzPS9pcGhvbmV8aXBhZHxpcG9kL2kudGVzdChhKSxjPWEubWF0Y2goL1dpbmRvd3MgTlQgKFtcZHxcZC5cZF0qKS9pKSx1PS9NYWNpbnRvc2h8TWFjL2kudGVzdChhKSxsPS9MaW51eHxYMTEvaS50ZXN0KGEpLGY9dSYmbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjB9LCI0YWUyIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVxdWVzdD1mdW5jdGlvbihlLG4pe3ZhciByLGk9ZS51cmwsYT1lLmRhdGEsbz1lLmhlYWRlcixsPWUubWV0aG9kLGY9ZS5kYXRhVHlwZSxkPWUucmVzcG9uc2VUeXBlLGg9ZS53aXRoQ3JlZGVudGlhbHMscD1lLnRpbWVvdXQsdj12b2lkIDA9PT1wP19fdW5pQ29uZmlnLm5ldHdvcmtUaW1lb3V0JiZfX3VuaUNvbmZpZy5uZXR3b3JrVGltZW91dC5yZXF1ZXN0fHw2ZTQ6cCxnPXQsbT1nLmludm9rZUNhbGxiYWNrSGFuZGxlcixiPW51bGw7Zm9yKHZhciB5IGluIG8paWYoKDAscy5oYXNPd24pKG8seSkmJiJjb250ZW50LXR5cGUiPT09eS50b0xvd2VyQ2FzZSgpKXtyPW9beV0scj0wPT09ci5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik/Impzb24iOjA9PT1yLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPyJ1cmxlbmNvZGVkIjoic3RyaW5nIjticmVha31pZigiR0VUIiE9PWwpaWYoInN0cmluZyI9PT10eXBlb2YgYXx8YSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKWI9YTtlbHNlIGlmKCJqc29uIj09PXIpdHJ5e2I9SlNPTi5zdHJpbmdpZnkoYSl9Y2F0Y2goayl7Yj1hLnRvU3RyaW5nKCl9ZWxzZSBpZigidXJsZW5jb2RlZCI9PT1yKXt2YXIgXz1bXTtmb3IodmFyIHcgaW4gYSkoMCxzLmhhc093bikoYSx3KSYmXy5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCh3KSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFbd10pKTtiPV8uam9pbigiJiIpfWVsc2UgYj1hLnRvU3RyaW5nKCk7dmFyIHg9bmV3IFhNTEh0dHBSZXF1ZXN0LFM9bmV3IGMoeCk7Zm9yKHZhciBUIGluIHgub3BlbihsLGkpLG8pKDAscy5oYXNPd24pKG8sVCkmJnguc2V0UmVxdWVzdEhlYWRlcihULG9bVF0pO3ZhciBDPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7eC5vbmxvYWQ9eC5vbmFib3J0PXgub25lcnJvcj1udWxsLFMuYWJvcnQoKSxtKG4se2Vyck1zZzoicmVxdWVzdDpmYWlsIHRpbWVvdXQifSl9KSx2KTtyZXR1cm4geC5yZXNwb25zZVR5cGU9ZCx4Lm9ubG9hZD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChDKTt2YXIgdD14LnN0YXR1cyxlPSJ0ZXh0Ij09PWQ/eC5yZXNwb25zZVRleHQ6eC5yZXNwb25zZTtpZigidGV4dCI9PT1kJiYianNvbiI9PT1mKXRyeXtlPUpTT04ucGFyc2UoZSl9Y2F0Y2goayl7fW0obix7ZGF0YTplLHN0YXR1c0NvZGU6dCxoZWFkZXI6dSh4LmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxlcnJNc2c6InJlcXVlc3Q6b2sifSl9LHgub25hYm9ydD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChDKSxtKG4se2Vyck1zZzoicmVxdWVzdDpmYWlsIGFib3J0In0pfSx4Lm9uZXJyb3I9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoQyksbShuLHtlcnJNc2c6InJlcXVlc3Q6ZmFpbCJ9KX0seC53aXRoQ3JlZGVudGlhbHM9aCx4LnNlbmQoYiksU30sbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJhYzFmIiksbigiNDY2ZCIpLG4oImM5NzUiKSxuKCJjMTlmIiksbigiYWNlNCIpLG4oImU5YzQiKSxuKCJkNDAxIiksbigiMjVmMCIpLG4oIjE0ZDkiKTt2YXIgaT1yKG4oImQ0ZWMiKSksYT1yKG4oImJlZTIiKSksbz1yKG4oImFkZTMiKSkscz1uKCJkYjZhIiksYz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7KDAsaS5kZWZhdWx0KSh0aGlzLHQpLCgwLG8uZGVmYXVsdCkodGhpcywiX3hociIsdm9pZCAwKSx0aGlzLl94aHI9ZX1yZXR1cm4oMCxhLmRlZmF1bHQpKHQsW3trZXk6ImFib3J0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3hociYmKHRoaXMuX3hoci5hYm9ydCgpLGRlbGV0ZSB0aGlzLl94aHIpfX1dKSx0fSgpO2Z1bmN0aW9uIHUodCl7dmFyIGU9e30sbj10LnNwbGl0KCJcbiIpO3JldHVybiBuLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPXQubWF0Y2goLyhcUytccyopOlxzKiguKikvKTtpZihuJiYzPT09bi5sZW5ndGgpe3ZhciByPW5bMV0saT1uWzJdO2Vbcl09aX19KSksZX19KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sIjRiMTEiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJiJ1bmRlZmluZWQiIT10eXBlb2YgRGF0YVZpZXd9LCI0YmFmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJkM2I3IiksbigiOTlhZiIpO3ZhciBpPXIobigiNWZlNyIpKSxhPXIobigiYzdmZiIpKSxvPW4oIjEzODciKSxzPW4oIjAxMzgiKSxjPW4oIjY0ZmUiKTt2YXIgdT17bmFtZToiUGlja2VyVmlld0NvbHVtbiIsbWl4aW5zOltpLmRlZmF1bHQsYS5kZWZhdWx0XSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3Njb3BlOiJwaWNrZXItdmlldy1jb2x1bW4tIi5jb25jYXQoRGF0ZS5ub3coKSksaW5pdGVkOiExLGluZGljYXRvclN0eWxlOiIiLGluZGljYXRvckNsYXNzOiIiLGluZGljYXRvckhlaWdodDozNCxtYXNrU3R5bGU6IiIsbWFza0NsYXNzOiIiLGN1cnJlbnQ6dGhpcy4kcGFyZW50LmdldEl0ZW1WYWx1ZSh0aGlzKSxsZW5ndGg6MH19LGNvbXB1dGVkOntoZWlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcGFyZW50LmhlaWdodH0sbWFza1NpemU6ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5oZWlnaHQtdGhpcy5pbmRpY2F0b3JIZWlnaHQpLzJ9fSx3YXRjaDp7aW5kaWNhdG9ySGVpZ2h0OmZ1bmN0aW9uKHQpe3RoaXMuX3NldEl0ZW1IZWlnaHQodCksdGhpcy5pbml0ZWQmJnRoaXMudXBkYXRlKCl9LGN1cnJlbnQ6ZnVuY3Rpb24odCl7dGhpcy4kcGFyZW50LnNldEl0ZW1WYWx1ZSh0aGlzLHQpfSxsZW5ndGg6ZnVuY3Rpb24odCl7dGhpcy5pbml0ZWQmJnRoaXMudXBkYXRlKHQpfX0sY3JlYXRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJHBhcmVudDt0aGlzLmluZGljYXRvclN0eWxlPXQuaW5kaWNhdG9yU3R5bGUsdGhpcy5pbmRpY2F0b3JDbGFzcz10LmluZGljYXRvckNsYXNzLHRoaXMubWFza1N0eWxlPXQubWFza1N0eWxlLHRoaXMubWFza0NsYXNzPXQubWFza0NsYXNzLHRoaXMuZGVsdGFZPTB9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMudG91Y2h0cmFjayh0aGlzLiRyZWZzLm1haW4sIl9oYW5kbGVUcmFjayIsITApLHRoaXMuc2V0Q3VycmVudCh0aGlzLmN1cnJlbnQpLHRoaXMuJG5leHRUaWNrKChmdW5jdGlvbigpe3QuaW5pdCgpLHQudXBkYXRlKCl9KSksZnVuY3Rpb24odCl7dmFyIGU9MCxuPTA7dC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwoZnVuY3Rpb24odCl7dmFyIHI9dC5jaGFuZ2VkVG91Y2hlc1swXTtlPXIuY2xpZW50WCxuPXIuY2xpZW50WX0pKSx0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwoZnVuY3Rpb24odCl7dmFyIHI9dC5jaGFuZ2VkVG91Y2hlc1swXTtpZihNYXRoLmFicyhyLmNsaWVudFgtZSk8MjAmJk1hdGguYWJzKHIuY2xpZW50WS1uKTwyMCl7dmFyIGk9bmV3IEN1c3RvbUV2ZW50KCJjbGljayIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCx0YXJnZXQ6dC50YXJnZXQsY3VycmVudFRhcmdldDp0LmN1cnJlbnRUYXJnZXR9KTtbInNjcmVlblgiLCJzY3JlZW5ZIiwiY2xpZW50WCIsImNsaWVudFkiLCJwYWdlWCIsInBhZ2VZIl0uZm9yRWFjaCgoZnVuY3Rpb24odCl7aVt0XT1yW3RdfSkpLHQudGFyZ2V0LmRpc3BhdGNoRXZlbnQoaSl9fSkpfSh0aGlzLiRlbCksKDAsYy5pbml0U2Nyb2xsQm91bmNlKSgpO3ZhciBlPXRoaXM7d2hpbGUoZSl7dmFyIG49ZS4kb3B0aW9ucy5fc2NvcGVJZDtuJiZ0aGlzLiRyZWZzLmluZGljYXRvci5zZXRBdHRyaWJ1dGUobiwiIiksZT1lLiRwYXJlbnR9fSxtZXRob2RzOntfc2V0SXRlbUhlaWdodDpmdW5jdGlvbih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2UuaW5uZXJUZXh0PSIudW5pLXBpY2tlci12aWV3LWNvbnRlbnQuIi5jb25jYXQodGhpcy5zY29wZSwiPip7aGVpZ2h0OiAiKS5jb25jYXQodCwicHg7b3ZlcmZsb3c6IGhpZGRlbjt9IiksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChlKX0sX2hhbmRsZVRyYWNrOmZ1bmN0aW9uKHQpe2lmKHRoaXMuX3Njcm9sbGVyKXN3aXRjaCh0LmRldGFpbC5zdGF0ZSl7Y2FzZSJzdGFydCI6dGhpcy5faGFuZGxlVG91Y2hTdGFydCh0KSwoMCxjLmRpc2FibGVTY3JvbGxCb3VuY2UpKHtkaXNhYmxlOiEwfSk7YnJlYWs7Y2FzZSJtb3ZlIjp0aGlzLl9oYW5kbGVUb3VjaE1vdmUodCksdC5zdG9wUHJvcGFnYXRpb24oKTticmVhaztjYXNlImVuZCI6Y2FzZSJjYW5jZWwiOnRoaXMuX2hhbmRsZVRvdWNoRW5kKHQpLCgwLGMuZGlzYWJsZVNjcm9sbEJvdW5jZSkoe2Rpc2FibGU6ITF9KX19LF9oYW5kbGVUYXA6ZnVuY3Rpb24odCl7dmFyIGU9dC5jbGllbnRZO2lmKCF0aGlzLl9zY3JvbGxlci5pc1Njcm9sbGluZygpKXt2YXIgbj10aGlzLiRlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPWUtbi50b3AtdGhpcy5oZWlnaHQvMixpPXRoaXMuaW5kaWNhdG9ySGVpZ2h0LzI7aWYoIShNYXRoLmFicyhyKTw9aSkpe3ZhciBhPU1hdGguY2VpbCgoTWF0aC5hYnMociktaSkvdGhpcy5pbmRpY2F0b3JIZWlnaHQpLG89cjwwPy1hOmEscz1NYXRoLm1pbih0aGlzLmN1cnJlbnQrbyx0aGlzLmxlbmd0aC0xKTt0aGlzLmN1cnJlbnQ9cz1NYXRoLm1heChzLDApLHRoaXMuX3Njcm9sbGVyLnNjcm9sbFRvKHMqdGhpcy5pbmRpY2F0b3JIZWlnaHQpfX19LF9oYW5kbGVXaGVlbDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmRlbHRhWSt0LmRlbHRhWTtpZihNYXRoLmFicyhlKT4xMCl7dGhpcy5kZWx0YVk9MDt2YXIgbj1NYXRoLm1pbih0aGlzLmN1cnJlbnQrKGU8MD8tMToxKSx0aGlzLmxlbmd0aC0xKTt0aGlzLmN1cnJlbnQ9bj1NYXRoLm1heChuLDApLHRoaXMuX3Njcm9sbGVyLnNjcm9sbFRvKG4qdGhpcy5pbmRpY2F0b3JIZWlnaHQpfWVsc2UgdGhpcy5kZWx0YVk9ZTt0LnByZXZlbnREZWZhdWx0KCl9LHNldEN1cnJlbnQ6ZnVuY3Rpb24odCl7dCE9PXRoaXMuY3VycmVudCYmKHRoaXMuY3VycmVudD10LHRoaXMuaW5pdGVkJiZ0aGlzLnVwZGF0ZSgpKX0saW5pdDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5pbml0U2Nyb2xsZXIodGhpcy4kcmVmcy5jb250ZW50LHtlbmFibGVZOiEwLGVuYWJsZVg6ITEsZW5hYmxlU25hcDohMCxpdGVtU2l6ZTp0aGlzLmluZGljYXRvckhlaWdodCxmcmljdGlvbjpuZXcgby5GcmljdGlvbigxZS00KSxzcHJpbmc6bmV3IHMuU3ByaW5nKDIsOTAsMjApLG9uU25hcDpmdW5jdGlvbihlKXtpc05hTihlKXx8ZT09PXQuY3VycmVudHx8KHQuY3VycmVudD1lKX19KSx0aGlzLmluaXRlZD0hMH0sdXBkYXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljaygoZnVuY3Rpb24oKXt2YXIgZT1NYXRoLm1pbih0LmN1cnJlbnQsdC5sZW5ndGgtMSk7ZT1NYXRoLm1heChlLDApLHQuX3Njcm9sbGVyLnVwZGF0ZShlKnQuaW5kaWNhdG9ySGVpZ2h0LHZvaWQgMCx0LmluZGljYXRvckhlaWdodCl9KSl9LF9yZXNpemU6ZnVuY3Rpb24odCl7dmFyIGU9dC5oZWlnaHQ7dGhpcy5pbmRpY2F0b3JIZWlnaHQ9ZX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg9dGhpcy4kc2xvdHMuZGVmYXVsdCYmdGhpcy4kc2xvdHMuZGVmYXVsdC5sZW5ndGh8fDAsdCgidW5pLXBpY2tlci12aWV3LWNvbHVtbiIse29uOntvbjp0aGlzLiRsaXN0ZW5lcnN9fSxbdCgiZGl2Iix7cmVmOiJtYWluIixzdGF0aWNDbGFzczoidW5pLXBpY2tlci12aWV3LWdyb3VwIixvbjp7d2hlZWw6dGhpcy5faGFuZGxlV2hlZWwsY2xpY2s6dGhpcy5faGFuZGxlVGFwfX0sW3QoImRpdiIse3JlZjoibWFzayIsc3RhdGljQ2xhc3M6InVuaS1waWNrZXItdmlldy1tYXNrIixjbGFzczp0aGlzLm1hc2tDbGFzcyxzdHlsZToiYmFja2dyb3VuZC1zaXplOiAxMDAlICIuY29uY2F0KHRoaXMubWFza1NpemUsInB4OyIpLmNvbmNhdCh0aGlzLm1hc2tTdHlsZSl9KSx0KCJkaXYiLHtyZWY6ImluZGljYXRvciIsc3RhdGljQ2xhc3M6InVuaS1waWNrZXItdmlldy1pbmRpY2F0b3IiLGNsYXNzOnRoaXMuaW5kaWNhdG9yQ2xhc3Msc3R5bGU6dGhpcy5pbmRpY2F0b3JTdHlsZX0sW3QoInYtdW5pLXJlc2l6ZS1zZW5zb3IiLHthdHRyczp7aW5pdGlhbDohMH0sb246e3Jlc2l6ZTp0aGlzLl9yZXNpemV9fSldKSx0KCJkaXYiLHtyZWY6ImNvbnRlbnQiLHN0YXRpY0NsYXNzOiJ1bmktcGlja2VyLXZpZXctY29udGVudCIsY2xhc3M6dGhpcy5zY29wZSxzdHlsZToicGFkZGluZzogIi5jb25jYXQodGhpcy5tYXNrU2l6ZSwicHggMDsiKX0sW3RoaXMuJHNsb3RzLmRlZmF1bHRdKV0pXSl9fTtlLmRlZmF1bHQ9dX0sIjRjYWMiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPVsidW5pLWFwcCIsInVuaS1sYXlvdXQiLCJ1bmktY29udGVudCIsInVuaS1tYWluIiwidW5pLXRvcC13aW5kb3ciLCJ1bmktbGVmdC13aW5kb3ciLCJ1bmktcmlnaHQtd2luZG93IiwidW5pLXRhYmJhciIsInVuaS1wYWdlIiwidW5pLXBhZ2UtaGVhZCIsInVuaS1wYWdlLXdyYXBwZXIiLCJ1bmktcGFnZS1ib2R5IiwidW5pLXBhZ2UtcmVmcmVzaCIsInVuaS1hY3Rpb25zaGVldCIsInVuaS1tb2RhbCIsInVuaS10b2FzdCIsInVuaS1yZXNpemUtc2Vuc29yIiwidW5pLXNoYWRvdy1yb290IiwidW5pLWFkIiwidW5pLWF1ZGlvIiwidW5pLWJ1dHRvbiIsInVuaS1jYW1lcmEiLCJ1bmktY2FudmFzIiwidW5pLWNoZWNrYm94IiwidW5pLWNoZWNrYm94LWdyb3VwIiwidW5pLWNvdmVyLWltYWdlIiwidW5pLWNvdmVyLXZpZXciLCJ1bmktZWRpdG9yIiwidW5pLWZvcm0iLCJ1bmktZnVuY3Rpb25hbC1wYWdlLW5hdmlnYXRvciIsInVuaS1pY29uIiwidW5pLWltYWdlIiwidW5pLWlucHV0IiwidW5pLWxhYmVsIiwidW5pLWxpdmUtcGxheWVyIiwidW5pLWxpdmUtcHVzaGVyIiwidW5pLW1hcCIsInVuaS1tb3ZhYmxlLWFyZWEiLCJ1bmktbW92YWJsZS12aWV3IiwidW5pLW5hdmlnYXRvciIsInVuaS1vZmZpY2lhbC1hY2NvdW50IiwidW5pLW9wZW4tZGF0YSIsInVuaS1waWNrZXIiLCJ1bmktcGlja2VyLXZpZXciLCJ1bmktcGlja2VyLXZpZXctY29sdW1uIiwidW5pLXByb2dyZXNzIiwidW5pLXJhZGlvIiwidW5pLXJhZGlvLWdyb3VwIiwidW5pLXJpY2gtdGV4dCIsInVuaS1zY3JvbGwtdmlldyIsInVuaS1zbGlkZXIiLCJ1bmktc3dpcGVyIiwidW5pLXN3aXBlci1pdGVtIiwidW5pLXN3aXRjaCIsInVuaS10ZXh0IiwidW5pLXRleHRhcmVhIiwidW5pLXZpZGVvIiwidW5pLXZpZXciLCJ1bmktd2ViLXZpZXciXX0sIjRkNjMiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI4M2FiIiksaT1uKCJkYTg0IiksYT1uKCJlMzMwIiksbz1uKCI5NGNhIikscz1uKCI3MTU2IiksYz1uKCI5MTEyIiksdT1uKCIyNDFjIikuZixsPW4oIjNhOWIiKSxmPW4oIjQ0ZTciKSxkPW4oIjU3N2UiKSxoPW4oIjkwZDgiKSxwPW4oIjlmN2YiKSx2PW4oImFlYjAiKSxnPW4oImNiMmQiKSxtPW4oImQwMzkiKSxiPW4oIjFhMmQiKSx5PW4oIjY5ZjMiKS5lbmZvcmNlLF89bigiMjYyNiIpLHc9bigiYjYyMiIpLHg9bigiZmNlMyIpLFM9bigiMTA3YyIpLFQ9dygibWF0Y2giKSxDPWkuUmVnRXhwLGs9Qy5wcm90b3R5cGUsTz1pLlN5bnRheEVycm9yLEU9YShrLmV4ZWMpLEk9YSgiIi5jaGFyQXQpLFA9YSgiIi5yZXBsYWNlKSxNPWEoIiIuaW5kZXhPZiksQT1hKCIiLnNsaWNlKSwkPS9eXD88W15cc1xkISMlJiorPD0+QF5dW15ccyEjJSYqKzw9PkBeXSo+LyxMPS9hL2csaj0vYS9nLFI9bmV3IEMoTCkhPT1MLE49cC5NSVNTRURfU1RJQ0tZLEI9cC5VTlNVUFBPUlRFRF9ZLEQ9ciYmKCFSfHxOfHx4fHxTfHxtKChmdW5jdGlvbigpe3JldHVybiBqW1RdPSExLEMoTCkhPUx8fEMoaik9PWp8fCIvYS9pIiE9QyhMLCJpIil9KSkpO2lmKG8oIlJlZ0V4cCIsRCkpe2Zvcih2YXIgRj1mdW5jdGlvbih0LGUpe3ZhciBuLHIsaSxhLG8sdSxwPWwoayx0aGlzKSx2PWYodCksZz12b2lkIDA9PT1lLG09W10sXz10O2lmKCFwJiZ2JiZnJiZ0LmNvbnN0cnVjdG9yPT09RilyZXR1cm4gdDtpZigodnx8bChrLHQpKSYmKHQ9dC5zb3VyY2UsZyYmKGU9aChfKSkpLHQ9dm9pZCAwPT09dD8iIjpkKHQpLGU9dm9pZCAwPT09ZT8iIjpkKGUpLF89dCx4JiYiZG90QWxsImluIEwmJihyPSEhZSYmTShlLCJzIik+LTEsciYmKGU9UChlLC9zL2csIiIpKSksbj1lLE4mJiJzdGlja3kiaW4gTCYmKGk9ISFlJiZNKGUsInkiKT4tMSxpJiZCJiYoZT1QKGUsL3kvZywiIikpKSxTJiYoYT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbj10Lmxlbmd0aCxyPTAsaT0iIixhPVtdLG89e30scz0hMSxjPSExLHU9MCxsPSIiO3I8PW47cisrKXtpZihlPUkodCxyKSwiXFwiPT09ZSllKz1JKHQsKytyKTtlbHNlIGlmKCJdIj09PWUpcz0hMTtlbHNlIGlmKCFzKXN3aXRjaCghMCl7Y2FzZSJbIj09PWU6cz0hMDticmVhaztjYXNlIigiPT09ZTpFKCQsQSh0LHIrMSkpJiYocis9MixjPSEwKSxpKz1lLHUrKztjb250aW51ZTtjYXNlIj4iPT09ZSYmYzppZigiIj09PWx8fGIobyxsKSl0aHJvdyBuZXcgTygiSW52YWxpZCBjYXB0dXJlIGdyb3VwIG5hbWUiKTtvW2xdPSEwLGFbYS5sZW5ndGhdPVtsLHVdLGM9ITEsbD0iIjtjb250aW51ZX1jP2wrPWU6aSs9ZX1yZXR1cm5baSxhXX0odCksdD1hWzBdLG09YVsxXSksbz1zKEModCxlKSxwP3RoaXM6ayxGKSwocnx8aXx8bS5sZW5ndGgpJiYodT15KG8pLHImJih1LmRvdEFsbD0hMCx1LnJhdz1GKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPXQubGVuZ3RoLHI9MCxpPSIiLGE9ITE7cjw9bjtyKyspZT1JKHQsciksIlxcIiE9PWU/YXx8Ii4iIT09ZT8oIlsiPT09ZT9hPSEwOiJdIj09PWUmJihhPSExKSxpKz1lKTppKz0iW1xcc1xcU10iOmkrPWUrSSh0LCsrcik7cmV0dXJuIGl9KHQpLG4pKSxpJiYodS5zdGlja3k9ITApLG0ubGVuZ3RoJiYodS5ncm91cHM9bSkpLHQhPT1fKXRyeXtjKG8sInNvdXJjZSIsIiI9PT1fPyIoPzopIjpfKX1jYXRjaCh3KXt9cmV0dXJuIG99LFc9dShDKSxIPTA7Vy5sZW5ndGg+SDspdihGLEMsV1tIKytdKTtrLmNvbnN0cnVjdG9yPUYsRi5wcm90b3R5cGU9ayxnKGksIlJlZ0V4cCIsRix7Y29uc3RydWN0b3I6ITB9KX1fKCJSZWdFeHAiKX0sIjRkNjQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJmYzZhIiksaT1uKCIyM2NiIiksYT1uKCIwN2ZhIiksbz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLG8pe3ZhciBzLGM9cihlKSx1PWEoYyksbD1pKG8sdSk7aWYodCYmbiE9bil7d2hpbGUodT5sKWlmKHM9Y1tsKytdLHMhPXMpcmV0dXJuITB9ZWxzZSBmb3IoO3U+bDtsKyspaWYoKHR8fGwgaW4gYykmJmNbbF09PT1uKXJldHVybiB0fHxsfHwwO3JldHVybiF0JiYtMX19O3QuZXhwb3J0cz17aW5jbHVkZXM6byghMCksaW5kZXhPZjpvKCExKX19LCI0ZDkwIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oIjBjY2IiKS5zdGFydCxhPW4oIjlhMGMiKTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOmF9LHtwYWRTdGFydDpmdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSwiNGRhZSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjIzY2IiKSxpPW4oIjA3ZmEiKSxhPW4oIjg0MTgiKSxvPUFycmF5LHM9TWF0aC5tYXg7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGM9aSh0KSx1PXIoZSxjKSxsPXIodm9pZCAwPT09bj9jOm4sYyksZj1vKHMobC11LDApKSxkPTA7dTxsO3UrKyxkKyspYShmLGQsdFt1XSk7cmV0dXJuIGYubGVuZ3RoPWQsZn19LCI0ZGU0IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImI3MjciKS5maWx0ZXIsYT1uKCIxZGRlIiksbz1hKCJmaWx0ZXIiKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IW99LHtmaWx0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sIjRkZjQiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMDM2NiIpLGk9bigiYzY1YiIpLGE9bigiN2IwYiIpLG89bigiOWJkZCIpLHM9bigiZTk1YSIpLGM9bigiNjhlZSIpLHU9bigiMDdmYSIpLGw9bigiODQxOCIpLGY9bigiOWExZiIpLGQ9bigiMzVhMSIpLGg9QXJyYXk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPWEodCksbj1jKHRoaXMpLHA9YXJndW1lbnRzLmxlbmd0aCx2PXA+MT9hcmd1bWVudHNbMV06dm9pZCAwLGc9dm9pZCAwIT09djtnJiYodj1yKHYscD4yP2FyZ3VtZW50c1syXTp2b2lkIDApKTt2YXIgbSxiLHksXyx3LHgsUz1kKGUpLFQ9MDtpZighU3x8dGhpcz09PWgmJnMoUykpZm9yKG09dShlKSxiPW4/bmV3IHRoaXMobSk6aChtKTttPlQ7VCsrKXg9Zz92KGVbVF0sVCk6ZVtUXSxsKGIsVCx4KTtlbHNlIGZvcihfPWYoZSxTKSx3PV8ubmV4dCxiPW4/bmV3IHRoaXM6W107ISh5PWkodyxfKSkuZG9uZTtUKyspeD1nP28oXyx2LFt5LnZhbHVlLFRdLCEwKTp5LnZhbHVlLGwoYixULHgpO3JldHVybiBiLmxlbmd0aD1ULGJ9fSwiNGU4MiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJlMzMwIiksYT1uKCI1OWVkIiksbz1uKCI3YjBiIikscz1uKCIwN2ZhIiksYz1uKCIwODNhIiksdT1uKCI1NzdlIiksbD1uKCJkMDM5IiksZj1uKCJhZGRiIiksZD1uKCJhNjQwIiksaD1uKCIwNGQxIikscD1uKCJkOTk4Iiksdj1uKCIyZDAwIiksZz1uKCI1MTJjIiksbT1bXSxiPWkobS5zb3J0KSx5PWkobS5wdXNoKSxfPWwoKGZ1bmN0aW9uKCl7bS5zb3J0KHZvaWQgMCl9KSksdz1sKChmdW5jdGlvbigpe20uc29ydChudWxsKX0pKSx4PWQoInNvcnQiKSxTPSFsKChmdW5jdGlvbigpe2lmKHYpcmV0dXJuIHY8NzA7aWYoIShoJiZoPjMpKXtpZihwKXJldHVybiEwO2lmKGcpcmV0dXJuIGc8NjAzO3ZhciB0LGUsbixyLGk9IiI7Zm9yKHQ9NjU7dDw3Njt0Kyspe3N3aXRjaChlPVN0cmluZy5mcm9tQ2hhckNvZGUodCksdCl7Y2FzZSA2NjpjYXNlIDY5OmNhc2UgNzA6Y2FzZSA3MjpuPTM7YnJlYWs7Y2FzZSA2ODpjYXNlIDcxOm49NDticmVhaztkZWZhdWx0Om49Mn1mb3Iocj0wO3I8NDc7cisrKW0ucHVzaCh7azplK3IsdjpufSl9Zm9yKG0uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS52LXQudn0pKSxyPTA7cjxtLmxlbmd0aDtyKyspZT1tW3JdLmsuY2hhckF0KDApLGkuY2hhckF0KGkubGVuZ3RoLTEpIT09ZSYmKGkrPWUpO3JldHVybiJER0JFRkhBQ0lKSyIhPT1pfX0pKSxUPV98fCF3fHwheHx8IVM7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOlR9LHtzb3J0OmZ1bmN0aW9uKHQpe3ZvaWQgMCE9PXQmJmEodCk7dmFyIGU9byh0aGlzKTtpZihTKXJldHVybiB2b2lkIDA9PT10P2IoZSk6YihlLHQpO3ZhciBuLHIsaT1bXSxsPXMoZSk7Zm9yKHI9MDtyPGw7cisrKXIgaW4gZSYmeShpLGVbcl0pO2YoaSxmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gdm9pZCAwPT09bj8tMTp2b2lkIDA9PT1lPzE6dm9pZCAwIT09dD8rdChlLG4pfHwwOnUoZSk+dShuKT8xOi0xfX0odCkpLG49cyhpKSxyPTA7d2hpbGUocjxuKWVbcl09aVtyKytdO3doaWxlKHI8bCljKGUscisrKTtyZXR1cm4gZX19KX0sIjRlYTQiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX0sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzWyJkZWZhdWx0Il09dC5leHBvcnRzfSwiNGYwNiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsZSl7Zm9yKHZhciBuPVtdLHI9e30saT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgYT1lW2ldLG89YVswXSxzPWFbMV0sYz1hWzJdLHU9YVszXSxsPXtpZDp0KyI6IitpLGNzczpzLG1lZGlhOmMsc291cmNlTWFwOnV9O3Jbb10/cltvXS5wYXJ0cy5wdXNoKGwpOm4ucHVzaChyW29dPXtpZDpvLHBhcnRzOltsXX0pfXJldHVybiBufW4ucihlKSxuLmQoZSwiZGVmYXVsdCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGh9KSk7dmFyIGk9InVuZGVmaW5lZCIhPT10eXBlb2YgZG9jdW1lbnQ7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgREVCVUcmJkRFQlVHJiYhaSl0aHJvdyBuZXcgRXJyb3IoInZ1ZS1zdHlsZS1sb2FkZXIgY2Fubm90IGJlIHVzZWQgaW4gYSBub24tYnJvd3NlciBlbnZpcm9ubWVudC4gVXNlIHsgdGFyZ2V0OiAnbm9kZScgfSBpbiB5b3VyIFdlYnBhY2sgY29uZmlnIHRvIGluZGljYXRlIGEgc2VydmVyLXJlbmRlcmluZyBlbnZpcm9ubWVudC4iKTt2YXIgYT17fSxvPWkmJihkb2N1bWVudC5oZWFkfHxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdKSxzPW51bGwsYz0wLHU9ITEsbD1mdW5jdGlvbigpe30sZj1udWxsLGQ9InVuZGVmaW5lZCIhPT10eXBlb2YgbmF2aWdhdG9yJiYvbXNpZSBbNi05XVxiLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7ZnVuY3Rpb24gaCh0LGUsbixpKXt1PW4sZj1pfHx7fTt2YXIgbz1yKHQsZSk7cmV0dXJuIHAobyksZnVuY3Rpb24oZSl7Zm9yKHZhciBuPVtdLGk9MDtpPG8ubGVuZ3RoO2krKyl7dmFyIHM9b1tpXSxjPWFbcy5pZF07Yy5yZWZzLS0sbi5wdXNoKGMpfWU/KG89cih0LGUpLHAobykpOm89W107Zm9yKGk9MDtpPG4ubGVuZ3RoO2krKyl7Yz1uW2ldO2lmKDA9PT1jLnJlZnMpe2Zvcih2YXIgdT0wO3U8Yy5wYXJ0cy5sZW5ndGg7dSsrKWMucGFydHNbdV0oKTtkZWxldGUgYVtjLmlkXX19fX1mdW5jdGlvbiBwKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgbj10W2VdLHI9YVtuLmlkXTtpZihyKXtyLnJlZnMrKztmb3IodmFyIGk9MDtpPHIucGFydHMubGVuZ3RoO2krKylyLnBhcnRzW2ldKG4ucGFydHNbaV0pO2Zvcig7aTxuLnBhcnRzLmxlbmd0aDtpKyspci5wYXJ0cy5wdXNoKGcobi5wYXJ0c1tpXSkpO3IucGFydHMubGVuZ3RoPm4ucGFydHMubGVuZ3RoJiYoci5wYXJ0cy5sZW5ndGg9bi5wYXJ0cy5sZW5ndGgpfWVsc2V7dmFyIG89W107Zm9yKGk9MDtpPG4ucGFydHMubGVuZ3RoO2krKylvLnB1c2goZyhuLnBhcnRzW2ldKSk7YVtuLmlkXT17aWQ6bi5pZCxyZWZzOjEscGFydHM6b319fX1mdW5jdGlvbiB2KCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gdC50eXBlPSJ0ZXh0L2NzcyIsby5hcHBlbmRDaGlsZCh0KSx0fWZ1bmN0aW9uIGcodCl7dmFyIGUsbixyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlW2RhdGEtdnVlLXNzci1pZH49IicrdC5pZCsnIl0nKTtpZihyKXtpZih1KXJldHVybiBsO3IucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKX1pZihkKXt2YXIgaT1jKys7cj1zfHwocz12KCkpLGU9Yi5iaW5kKG51bGwscixpLCExKSxuPWIuYmluZChudWxsLHIsaSwhMCl9ZWxzZSByPXYoKSxlPXkuYmluZChudWxsLHIpLG49ZnVuY3Rpb24oKXtyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocil9O3JldHVybiBlKHQpLGZ1bmN0aW9uKHIpe2lmKHIpe2lmKHIuY3NzPT09dC5jc3MmJnIubWVkaWE9PT10Lm1lZGlhJiZyLnNvdXJjZU1hcD09PXQuc291cmNlTWFwKXJldHVybjtlKHQ9cil9ZWxzZSBuKCl9fXZhciBtPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIHRbZV09bix0LmZpbHRlcihCb29sZWFuKS5qb2luKCJcbiIpfX0oKTtmdW5jdGlvbiBiKHQsZSxuLHIpe3ZhciBpPW4/IiI6SShyLmNzcyk7aWYodC5zdHlsZVNoZWV0KXQuc3R5bGVTaGVldC5jc3NUZXh0PW0oZSxpKTtlbHNle3ZhciBhPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGkpLG89dC5jaGlsZE5vZGVzO29bZV0mJnQucmVtb3ZlQ2hpbGQob1tlXSksby5sZW5ndGg/dC5pbnNlcnRCZWZvcmUoYSxvW2VdKTp0LmFwcGVuZENoaWxkKGEpfX1mdW5jdGlvbiB5KHQsZSl7dmFyIG49SShlLmNzcykscj1lLm1lZGlhLGk9ZS5zb3VyY2VNYXA7aWYociYmdC5zZXRBdHRyaWJ1dGUoIm1lZGlhIixyKSxmLnNzcklkJiZ0LnNldEF0dHJpYnV0ZSgiZGF0YS12dWUtc3NyLWlkIixlLmlkKSxpJiYobis9IlxuLyojIHNvdXJjZVVSTD0iK2kuc291cmNlc1swXSsiICovIixuKz0iXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LCIrYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoaSkpKSkrIiAqLyIpLHQuc3R5bGVTaGVldCl0LnN0eWxlU2hlZXQuY3NzVGV4dD1uO2Vsc2V7d2hpbGUodC5maXJzdENoaWxkKXQucmVtb3ZlQ2hpbGQodC5maXJzdENoaWxkKTt0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG4pKX19dmFyIF89LyVcPyhbKy1dP1xkKyhcLlxkKyk/KVw/JS9nLHc9L1wuXD8lUEFHRVw/JS9nLHg9L1w/JVBBR0VcPyVcW2RhdGEtdi1bYS16MC05XXs4fVxdL2csUz0vdW5pLXBhZ2UtYm9keVxbZGF0YS12LVthLXowLTldezh9XF0vZyxUPS92YXJcKC0tc3RhdHVzLWJhci1oZWlnaHRcKS9naSxDPS92YXJcKC0td2luZG93LXRvcFwpL2dpLGs9L3ZhclwoLS13aW5kb3ctYm90dG9tXCkvZ2ksTz0vdmFyXCgtLXdpbmRvdy1sZWZ0XCkvZ2ksRT0vdmFyXCgtLXdpbmRvdy1yaWdodFwpL2dpO2Z1bmN0aW9uIEkodCl7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgdD0iZnVuY3Rpb24iPT09dHlwZW9mIGdldEFwcCYmZ2V0QXBwKCk7cmV0dXJuIHQmJnQuJHJvdXRlJiZ0LiRyb3V0ZS5tZXRhJiZ0LiRyb3V0ZS5tZXRhLm5hbWV8fCIifSgpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIHVuaSYmIXVuaS5jYW5JVXNlKCJjc3MudmFyIikpe3ZhciBuPWZ1bmN0aW9uKCl7dmFyIHQ9ImZ1bmN0aW9uIj09PXR5cGVvZiBnZXRBcHAmJmdldEFwcCgpO2lmKHQmJnQuJHJvdXRlJiZ0LiRyb3V0ZS5tZXRhJiZ0LiRyb3V0ZS5tZXRhLm5hbWUpcmV0dXJue3RvcDp0LiRyb3V0ZS5tZXRhLndpbmRvd1RvcCxib3R0b206dC4kcm91dGUubWV0YS5pc1RhYkJhcj81MDowfTtyZXR1cm57dG9wOjAsYm90dG9tOjB9fSgpO3Q9dC5yZXBsYWNlKFQsIjBweCIpLnJlcGxhY2UoQyxuLnRvcCsicHgiKS5yZXBsYWNlKGssbi5ib3R0b20rInB4IikucmVwbGFjZShPLCIwcHgiKS5yZXBsYWNlKEUsIjBweCIpfXJldHVybiB0LnJlcGxhY2UoeCxlKS5yZXBsYWNlKHcsIiIpLnJlcGxhY2UoUywiYm9keS4iK2UrIiB1bmktcGFnZS1ib2R5IikucmVwbGFjZSgvXHtbXHNcU10rP1x9fEBtZWRpYS4rP1x7L2csKGZ1bmN0aW9uKHQpe3JldHVybiJ1bmRlZmluZWQiPT09dHlwZW9mIHVuaT90OnQucmVwbGFjZShfLChmdW5jdGlvbih0LGUpe3JldHVybiB1bmkudXB4MnB4KGUpKyJweCJ9KSl9KSl9fSwiNGYxZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmludm9rZUNhbGxiYWNrSGFuZGxlcj1fLGUucmVtb3ZlQ2FsbGJhY2tIYW5kbGVyPWZ1bmN0aW9uKHQpe2RlbGV0ZSB2W3RdfSxlLndyYXBwZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307aWYoeC5pbmRleE9mKHQpPi0xfHwhKDAsaS5pc0ZuKShlKSlyZXR1cm4gZTtyZXR1cm4gdyh0LG4pLGZ1bmN0aW9uKCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkocikscz0wO3M8cjtzKyspYVtzXT1hcmd1bWVudHNbc107aWYoKDAsby5pc1N5bmNBcGkpKHQpKXtpZihoKHQsYSwtMSkpcmV0dXJuIGUuYXBwbHkobnVsbCxhKX1lbHNlIGlmKCgwLG8uaXNDYWxsYmFja0FwaSkodCkpe2lmKGgodCxhLC0xKSlyZXR1cm4gZSgodC5zdGFydHNXaXRoKCJvZmYiKT9tOmcpKHQsYVswXSkpfWVsc2V7dmFyIGM9e307YS5sZW5ndGgmJihjPWFbMF0pO3ZhciB1LGw9eSh0LGMsbiksZj1sLnBhcmFtcyxkPWwuY2FsbGJhY2tJZDtpZighMSE9PWQpcmV0dXJuIHU9KDAsaS5pc0ZuKShmKT9lKGQpOmUoZixkKSx1JiYhKDAsby5pc1Rhc2tBcGkpKHQpJiYodT1fKGQsdSksKDAsaS5pc1BsYWluT2JqZWN0KSh1KSYmKHUuZXJyTXNnPXUuZXJyTXNnfHx0KyI6b2siKSksdX19fSxlLndyYXBwZXJVbmltcGxlbWVudGVkPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihuKXt0LmVycm9yKCJBUEkgYCIrZSsiYCBpcyBub3QgeWV0IGltcGxlbWVudGVkIil9fSxuKCI5OWFmIiksbigiZDllMiIpLG4oImQ0MDEiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oImI2NGIiKSxuKCJjOTc1IiksbigiMmNhMCIpLG4oImFjMWYiKSxuKCI1MzE5IiksbigiYTllMyIpO3ZhciBpPW4oImRiNmEiKSxhPW4oIjlmNDkiKSxvPW4oImE1ZTAiKSxzPW4oIjkwZmUiKSxjPXIobigiY2NhOCIpKSx1PXIobigiMmNlYSIpKTtmdW5jdGlvbiBsKHQsZSxuKXt2YXIgcj0iIi5jb25jYXQoZSwiOmZhaWwgIikuY29uY2F0KHQpO2lmKC0xPT09bil0aHJvdyBuZXcgRXJyb3Iocik7cmV0dXJuIm51bWJlciI9PT10eXBlb2YgbiYmXyhuLHtlcnJNc2c6cn0pLCExfXZhciBmPVt7bmFtZToiY2FsbGJhY2siLHR5cGU6RnVuY3Rpb24scmVxdWlyZWQ6ITB9XSxkPVsiYmVmb3JlVmFsaWRhdGUiLCJiZWZvcmVBbGwiLCJiZWZvcmVTdWNjZXNzIl07ZnVuY3Rpb24gaCh0LGUsbil7dmFyIHI9Yy5kZWZhdWx0W3RdO2lmKCFyJiYoMCxvLmlzQ2FsbGJhY2tBcGkpKHQpJiYocj1mKSxyKXtpZihBcnJheS5pc0FycmF5KHIpJiZBcnJheS5pc0FycmF5KGUpKXt2YXIgYT1PYmplY3QuY3JlYXRlKG51bGwpLHM9T2JqZWN0LmNyZWF0ZShudWxsKSxoPWUubGVuZ3RoO3IuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXthW3QubmFtZV09dCxoPm4mJihzW3QubmFtZV09ZVtuXSl9KSkscj1hLGU9c31pZigoMCxpLmlzRm4pKHIuYmVmb3JlVmFsaWRhdGUpKXt2YXIgcD1yLmJlZm9yZVZhbGlkYXRlKGUpO2lmKHApcmV0dXJuIGwocCx0LG4pfWZvcih2YXIgdj1PYmplY3Qua2V5cyhyKSxnPTA7Zzx2Lmxlbmd0aDtnKyspaWYoLTE9PT1kLmluZGV4T2YodltnXSkpe3ZhciBtPSgwLHUuZGVmYXVsdCkodltnXSxyLGUpO2lmKG0pcmV0dXJuIGwobSx0LG4pfX1yZXR1cm4hMH12YXIgcD0xLHY9e307ZnVuY3Rpb24gZyh0LGUpe3ZhciBuPXArKyxyPSJhcGkuIit0KyIuIituO3JldHVybiB2W25dPXtuYW1lOnIsa2VlcEFsaXZlOiEwLGNhbGxiYWNrOmV9LG59ZnVuY3Rpb24gbSh0LGUpe2Zvcih2YXIgbiBpbiB2KXt2YXIgcj12W25dO2lmKHIubmFtZS5zdGFydHNXaXRoKCJhcGkuIit0LnJlcGxhY2UoL15vZmYvLCJvbiIpKSYmci5jYWxsYmFjaz09PWUpcmV0dXJuIGRlbGV0ZSB2W25dLE51bWJlcihuKX1yZXR1cm4iZmFpbCJ9ZnVuY3Rpb24gYih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307aWYoISgwLGkuaXNQbGFpbk9iamVjdCkoZSkpcmV0dXJue3BhcmFtczplfTtlPU9iamVjdC5hc3NpZ24oe30sZSk7dmFyIHI9KDAscy5nZXRBcGlDYWxsYmFja3MpKGUpLG89ci5zdWNjZXNzLGM9ci5mYWlsLHU9ci5jYW5jZWwsbD1yLmNvbXBsZXRlLGY9KDAsaS5pc0ZuKShvKSxkPSgwLGkuaXNGbikoYyksaD0oMCxpLmlzRm4pKHUpLGc9KDAsaS5pc0ZuKShsKTtpZighZiYmIWQmJiFoJiYhZylyZXR1cm57cGFyYW1zOmV9O3ZhciBtPXt9O2Zvcih2YXIgYiBpbiBuKXt2YXIgeT1uW2JdOygwLGkuaXNGbikoeSkmJihtW2JdPSgwLGEudHJ5Q2F0Y2hGcmFtZXdvcmspKHkpKX12YXIgXz1tLmJlZm9yZVN1Y2Nlc3Msdz1tLmFmdGVyU3VjY2Vzcyx4PW0uYmVmb3JlRmFpbCxTPW0uYWZ0ZXJGYWlsLFQ9bS5iZWZvcmVDYW5jZWwsQz1tLmFmdGVyQ2FuY2VsLGs9bS5iZWZvcmVBbGwsTz1tLmFmdGVyQWxsLEU9cCsrLEk9ImFwaS4iK3QrIi4iK0UsUD1mdW5jdGlvbihuKXtpZihuLmVyck1zZz1uLmVyck1zZ3x8dCsiOm9rIiwtMSE9PW4uZXJyTXNnLmluZGV4T2YoIjpvayIpKW4uZXJyTXNnPXQrIjpvayI7ZWxzZSBpZigtMSE9PW4uZXJyTXNnLmluZGV4T2YoIjpjYW5jZWwiKSluLmVyck1zZz10KyI6Y2FuY2VsIjtlbHNlIGlmKC0xIT09bi5lcnJNc2cuaW5kZXhPZigiOmZhaWwiKSl7dmFyIHI9IiIsYT1uLmVyck1zZy5pbmRleE9mKCIgIik7YT4tMSYmKHI9bi5lcnJNc2cuc3Vic3RyKGEpKSxuLmVyck1zZz10KyI6ZmFpbCIrcn0oMCxpLmlzRm4pKGspJiZrKG4pO3ZhciBzPW4uZXJyTXNnOzA9PT1zLmluZGV4T2YodCsiOm9rIik/KCgwLGkuaXNGbikoXykmJl8obixlKSxmJiZvKG4pLCgwLGkuaXNGbikodykmJncobikpOjA9PT1zLmluZGV4T2YodCsiOmNhbmNlbCIpPyhuLmVyck1zZz1uLmVyck1zZy5yZXBsYWNlKHQrIjpjYW5jZWwiLHQrIjpmYWlsIGNhbmNlbCIpLGQmJmMobiksKDAsaS5pc0ZuKShUKSYmVChuKSxoJiZ1KG4pLCgwLGkuaXNGbikoQykmJkMobikpOjA9PT1zLmluZGV4T2YodCsiOmZhaWwiKSYmKCgwLGkuaXNGbikoeCkmJngobiksZCYmYyhuKSwoMCxpLmlzRm4pKFMpJiZTKG4pKSxnJiZsKG4pLCgwLGkuaXNGbikoTykmJk8obil9O3JldHVybiB2W0VdPXtuYW1lOkksY2FsbGJhY2s6UH0se3BhcmFtczplLGNhbGxiYWNrSWQ6RX19ZnVuY3Rpb24geSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e30scj1iKHQsZSxuKSxhPXIucGFyYW1zLG89ci5jYWxsYmFja0lkO3JldHVybigwLGkuaXNQbGFpbk9iamVjdCkoYSkmJiFoKHQsYSxvKT97cGFyYW1zOmEsY2FsbGJhY2tJZDohMX06e3BhcmFtczphLGNhbGxiYWNrSWQ6b319ZnVuY3Rpb24gXyh0LGUsbil7aWYoIm51bWJlciI9PT10eXBlb2YgdCl7dmFyIHI9dlt0XTtpZihyKXJldHVybiByLmtlZXBBbGl2ZXx8ZGVsZXRlIHZbdF0sci5jYWxsYmFjayhlLG4pfXJldHVybiBlfWZ1bmN0aW9uIHcodCxlKXt2YXIgbj1jLmRlZmF1bHRbdF07biYmKCgwLGkuaXNGbikobi5iZWZvcmVBbGwpJiYoZS5iZWZvcmVBbGw9bi5iZWZvcmVBbGwpLCgwLGkuaXNGbikobi5iZWZvcmVTdWNjZXNzKSYmKGUuYmVmb3JlU3VjY2Vzcz1uLmJlZm9yZVN1Y2Nlc3MpKX12YXIgeD1bImdldFB1c2hDbGllbnRJZCIsIm9uUHVzaE1lc3NhZ2UiLCJvZmZQdXNoTWVzc2FnZSJdfSkuY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sIjRmYWQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDM5IiksaT1uKCI4NjFkIiksYT1uKCJjNmI2Iiksbz1uKCJkODZiIikscz1PYmplY3QuaXNFeHRlbnNpYmxlLGM9cigoZnVuY3Rpb24oKXtzKDEpfSkpO3QuZXhwb3J0cz1jfHxvP2Z1bmN0aW9uKHQpe3JldHVybiEhaSh0KSYmKCghb3x8IkFycmF5QnVmZmVyIiE9YSh0KSkmJighc3x8cyh0KSkpfTpzfSwiNGZjYiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbigpe2lmKHVuaS5jYW5JVXNlKCJjc3MudmFyIikpe3ZhciB0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSxlPXBhcnNlSW50KCh0LmdldFByb3BlcnR5VmFsdWUoIi0td2luZG93LXRvcCIpLm1hdGNoKC9cZCsvKXx8WyIwIl0pWzBdKSxuPXBhcnNlSW50KCh0LmdldFByb3BlcnR5VmFsdWUoIi0td2luZG93LWJvdHRvbSIpLm1hdGNoKC9cZCsvKXx8WyIwIl0pWzBdKSxyPXBhcnNlSW50KCh0LmdldFByb3BlcnR5VmFsdWUoIi0td2luZG93LWxlZnQiKS5tYXRjaCgvXGQrLyl8fFsiMCJdKVswXSksbz1wYXJzZUludCgodC5nZXRQcm9wZXJ0eVZhbHVlKCItLXdpbmRvdy1yaWdodCIpLm1hdGNoKC9cZCsvKXx8WyIwIl0pWzBdKSxzPXBhcnNlSW50KCh0LmdldFByb3BlcnR5VmFsdWUoIi0tdG9wLXdpbmRvdy1oZWlnaHQiKS5tYXRjaCgvXGQrLyl8fFsiMCJdKVswXSk7cmV0dXJue3RvcDooZT9lK2EuZGVmYXVsdC50b3A6MCkrKHN8fDApLGJvdHRvbTpuP24rYS5kZWZhdWx0LmJvdHRvbTowLGxlZnQ6cj9yK2EuZGVmYXVsdC5sZWZ0OjAscmlnaHQ6bz9vK2EuZGVmYXVsdC5yaWdodDowfX12YXIgYz0wLHU9MCxsPWdldEN1cnJlbnRQYWdlcygpO2lmKGwubGVuZ3RoKXt2YXIgZj1sW2wubGVuZ3RoLTFdLiRwYXJlbnQuJHBhcmVudCxkPWYubmF2aWdhdGlvbkJhci50eXBlO2M9ImRlZmF1bHQiPT09ZHx8ImZsb2F0Ij09PWQ/aS5OQVZCQVJfSEVJR0hUOjB9dmFyIGg9Z2V0QXBwKCk7aCYmKHU9aC4kY2hpbGRyZW5bMF0mJmguJGNoaWxkcmVuWzBdLnNob3dUYWJCYXI/aS5UQUJCQVJfSEVJR0hUOjApO3JldHVybnt0b3A6Yyxib3R0b206dSxsZWZ0OjAscmlnaHQ6MH19LG4oImUyNWUiKSxuKCJhYzFmIiksbigiNDY2ZCIpO3ZhciBpPW4oIjBmYmUiKSxhPXIobigiZDhjOCIpKX0sNTA4NzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNjhlZSIpLGk9bigiMGQ1MSIpLGE9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihyKHQpKXJldHVybiB0O3Rocm93IGEoaSh0KSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIil9fSwiNTBjNCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjU5MjYiKSxpPU1hdGgubWluO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdD4wP2kocih0KSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sIjUxMmMiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIzNDJmIiksaT1yLm1hdGNoKC9BcHBsZVdlYktpdFwvKFxkKylcLi8pO3QuZXhwb3J0cz0hIWkmJitpWzFdfSwiNTFlYiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI4MjVhIiksaT1uKCI0ODVhIiksYT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKHIodGhpcyksInN0cmluZyI9PT10fHwiZGVmYXVsdCI9PT10KXQ9InN0cmluZyI7ZWxzZSBpZigibnVtYmVyIiE9PXQpdGhyb3cgYSgiSW5jb3JyZWN0IGhpbnQiKTtyZXR1cm4gaSh0aGlzLHQpfX0sIjUyOGEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjNkYTgiKSxpPW4oImI4OWQiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LDUzMTk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyYmE0IiksaT1uKCJjNjViIiksYT1uKCJlMzMwIiksbz1uKCJkNzg0Iikscz1uKCJkMDM5IiksYz1uKCI4MjVhIiksdT1uKCIxNjI2IiksbD1uKCI3MjM0IiksZj1uKCI1OTI2IiksZD1uKCI1MGM0IiksaD1uKCI1NzdlIikscD1uKCIxZDgwIiksdj1uKCI4YWE1IiksZz1uKCJkYzRhIiksbT1uKCIwY2IyIiksYj1uKCIxNGMzIikseT1uKCJiNjIyIiksXz15KCJyZXBsYWNlIiksdz1NYXRoLm1heCx4PU1hdGgubWluLFM9YShbXS5jb25jYXQpLFQ9YShbXS5wdXNoKSxDPWEoIiIuaW5kZXhPZiksaz1hKCIiLnNsaWNlKSxPPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P3Q6U3RyaW5nKHQpfSxFPWZ1bmN0aW9uKCl7cmV0dXJuIiQwIj09PSJhIi5yZXBsYWNlKC8uLywiJDAiKX0oKSxJPWZ1bmN0aW9uKCl7cmV0dXJuISEvLi9bX10mJiIiPT09Ly4vW19dKCJhIiwiJDAiKX0oKSxQPSFzKChmdW5jdGlvbigpe3ZhciB0PS8uLztyZXR1cm4gdC5leGVjPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHQuZ3JvdXBzPXthOiI3In0sdH0sIjciIT09IiIucmVwbGFjZSh0LCIkPGE+Iil9KSk7bygicmVwbGFjZSIsKGZ1bmN0aW9uKHQsZSxuKXt2YXIgYT1JPyIkIjoiJDAiO3JldHVybltmdW5jdGlvbih0LG4pe3ZhciByPXAodGhpcyksYT1sKHQpP3ZvaWQgMDpnKHQsXyk7cmV0dXJuIGE/aShhLHQscixuKTppKGUsaChyKSx0LG4pfSxmdW5jdGlvbih0LGkpe3ZhciBvPWModGhpcykscz1oKHQpO2lmKCJzdHJpbmciPT10eXBlb2YgaSYmLTE9PT1DKGksYSkmJi0xPT09QyhpLCIkPCIpKXt2YXIgbD1uKGUsbyxzLGkpO2lmKGwuZG9uZSlyZXR1cm4gbC52YWx1ZX12YXIgcD11KGkpO3B8fChpPWgoaSkpO3ZhciBnPW8uZ2xvYmFsO2lmKGcpe3ZhciB5PW8udW5pY29kZTtvLmxhc3RJbmRleD0wfXZhciBfPVtdO3doaWxlKDEpe3ZhciBFPWIobyxzKTtpZihudWxsPT09RSlicmVhaztpZihUKF8sRSksIWcpYnJlYWs7dmFyIEk9aChFWzBdKTsiIj09PUkmJihvLmxhc3RJbmRleD12KHMsZChvLmxhc3RJbmRleCkseSkpfWZvcih2YXIgUD0iIixNPTAsQT0wO0E8Xy5sZW5ndGg7QSsrKXtFPV9bQV07Zm9yKHZhciAkPWgoRVswXSksTD13KHgoZihFLmluZGV4KSxzLmxlbmd0aCksMCksaj1bXSxSPTE7UjxFLmxlbmd0aDtSKyspVChqLE8oRVtSXSkpO3ZhciBOPUUuZ3JvdXBzO2lmKHApe3ZhciBCPVMoWyRdLGosTCxzKTt2b2lkIDAhPT1OJiZUKEIsTik7dmFyIEQ9aChyKGksdm9pZCAwLEIpKX1lbHNlIEQ9bSgkLHMsTCxqLE4saSk7TD49TSYmKFArPWsocyxNLEwpK0QsTT1MKyQubGVuZ3RoKX1yZXR1cm4gUCtrKHMsTSl9XX0pLCFQfHwhRXx8SSl9LDUzNTI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCJlMjYwIik7dmFyIHI9bigiMjNlNyIpLGk9bigiZGE4NCIpLGE9bigiYzY1YiIpLG89bigiZTMzMCIpLHM9bigiODNhYiIpLGM9bigiZjM1NCIpLHU9bigiY2IyZCIpLGw9bigiNjk2NCIpLGY9bigiZDQ0ZSIpLGQ9bigiZGNjMyIpLGg9bigiNjlmMyIpLHA9bigiMTlhYSIpLHY9bigiMTYyNiIpLGc9bigiMWEyZCIpLG09bigiMDM2NiIpLGI9bigiZjVkZiIpLHk9bigiODI1YSIpLF89bigiODYxZCIpLHc9bigiNTc3ZSIpLHg9bigiN2M3MyIpLFM9bigiNWM2YyIpLFQ9bigiOWExZiIpLEM9bigiMzVhMSIpLGs9bigiZDZkNiIpLE89bigiYjYyMiIpLEU9bigiYWRkYiIpLEk9TygiaXRlcmF0b3IiKSxQPWguc2V0LE09aC5nZXR0ZXJGb3IoIlVSTFNlYXJjaFBhcmFtcyIpLEE9aC5nZXR0ZXJGb3IoIlVSTFNlYXJjaFBhcmFtc0l0ZXJhdG9yIiksJD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLEw9ZnVuY3Rpb24odCl7aWYoIXMpcmV0dXJuIGlbdF07dmFyIGU9JChpLHQpO3JldHVybiBlJiZlLnZhbHVlfSxqPUwoImZldGNoIiksUj1MKCJSZXF1ZXN0IiksTj1MKCJIZWFkZXJzIiksQj1SJiZSLnByb3RvdHlwZSxEPU4mJk4ucHJvdG90eXBlLEY9aS5SZWdFeHAsVz1pLlR5cGVFcnJvcixIPWkuZGVjb2RlVVJJQ29tcG9uZW50LFY9aS5lbmNvZGVVUklDb21wb25lbnQsVT1vKCIiLmNoYXJBdCkscT1vKFtdLmpvaW4pLHo9byhbXS5wdXNoKSxZPW8oIiIucmVwbGFjZSksWD1vKFtdLnNoaWZ0KSxHPW8oW10uc3BsaWNlKSxRPW8oIiIuc3BsaXQpLEo9bygiIi5zbGljZSksSz0vXCsvZyxaPUFycmF5KDQpLHR0PWZ1bmN0aW9uKHQpe3JldHVybiBaW3QtMV18fChaW3QtMV09RigiKCg/OiVbXFxkYS1mXXsyfSl7Iit0KyJ9KSIsImdpIikpfSxldD1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIEgodCl9Y2F0Y2goZSl7cmV0dXJuIHR9fSxudD1mdW5jdGlvbih0KXt2YXIgZT1ZKHQsSywiICIpLG49NDt0cnl7cmV0dXJuIEgoZSl9Y2F0Y2gocil7d2hpbGUobillPVkoZSx0dChuLS0pLGV0KTtyZXR1cm4gZX19LHJ0PS9bIScoKX5dfCUyMC9nLGl0PXsiISI6IiUyMSIsIiciOiIlMjciLCIoIjoiJTI4IiwiKSI6IiUyOSIsIn4iOiIlN0UiLCIlMjAiOiIrIn0sYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGl0W3RdfSxvdD1mdW5jdGlvbih0KXtyZXR1cm4gWShWKHQpLHJ0LGF0KX0sc3Q9ZCgoZnVuY3Rpb24odCxlKXtQKHRoaXMse3R5cGU6IlVSTFNlYXJjaFBhcmFtc0l0ZXJhdG9yIixpdGVyYXRvcjpUKE0odCkuZW50cmllcyksa2luZDplfSl9KSwiSXRlcmF0b3IiLChmdW5jdGlvbigpe3ZhciB0PUEodGhpcyksZT10LmtpbmQsbj10Lml0ZXJhdG9yLm5leHQoKSxyPW4udmFsdWU7cmV0dXJuIG4uZG9uZXx8KG4udmFsdWU9ImtleXMiPT09ZT9yLmtleToidmFsdWVzIj09PWU/ci52YWx1ZTpbci5rZXksci52YWx1ZV0pLG59KSwhMCksY3Q9ZnVuY3Rpb24odCl7dGhpcy5lbnRyaWVzPVtdLHRoaXMudXJsPW51bGwsdm9pZCAwIT09dCYmKF8odCk/dGhpcy5wYXJzZU9iamVjdCh0KTp0aGlzLnBhcnNlUXVlcnkoInN0cmluZyI9PXR5cGVvZiB0PyI/Ij09PVUodCwwKT9KKHQsMSk6dDp3KHQpKSl9O2N0LnByb3RvdHlwZT17dHlwZToiVVJMU2VhcmNoUGFyYW1zIixiaW5kVVJMOmZ1bmN0aW9uKHQpe3RoaXMudXJsPXQsdGhpcy51cGRhdGUoKX0scGFyc2VPYmplY3Q6ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxzLGMsdT1DKHQpO2lmKHUpe2U9VCh0LHUpLG49ZS5uZXh0O3doaWxlKCEocj1hKG4sZSkpLmRvbmUpe2lmKGk9VCh5KHIudmFsdWUpKSxvPWkubmV4dCwocz1hKG8saSkpLmRvbmV8fChjPWEobyxpKSkuZG9uZXx8IWEobyxpKS5kb25lKXRocm93IFcoIkV4cGVjdGVkIHNlcXVlbmNlIHdpdGggbGVuZ3RoIDIiKTt6KHRoaXMuZW50cmllcyx7a2V5Oncocy52YWx1ZSksdmFsdWU6dyhjLnZhbHVlKX0pfX1lbHNlIGZvcih2YXIgbCBpbiB0KWcodCxsKSYmeih0aGlzLmVudHJpZXMse2tleTpsLHZhbHVlOncodFtsXSl9KX0scGFyc2VRdWVyeTpmdW5jdGlvbih0KXtpZih0KXt2YXIgZSxuLHI9USh0LCImIiksaT0wO3doaWxlKGk8ci5sZW5ndGgpZT1yW2krK10sZS5sZW5ndGgmJihuPVEoZSwiPSIpLHoodGhpcy5lbnRyaWVzLHtrZXk6bnQoWChuKSksdmFsdWU6bnQocShuLCI9IikpfSkpfX0sc2VyaWFsaXplOmZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLmVudHJpZXMsbj1bXSxyPTA7d2hpbGUocjxlLmxlbmd0aCl0PWVbcisrXSx6KG4sb3QodC5rZXkpKyI9IitvdCh0LnZhbHVlKSk7cmV0dXJuIHEobiwiJiIpfSx1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLmVudHJpZXMubGVuZ3RoPTAsdGhpcy5wYXJzZVF1ZXJ5KHRoaXMudXJsLnF1ZXJ5KX0sdXBkYXRlVVJMOmZ1bmN0aW9uKCl7dGhpcy51cmwmJnRoaXMudXJsLnVwZGF0ZSgpfX07dmFyIHV0PWZ1bmN0aW9uKCl7cCh0aGlzLGx0KTt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMDtQKHRoaXMsbmV3IGN0KHQpKX0sbHQ9dXQucHJvdG90eXBlO2lmKGwobHQse2FwcGVuZDpmdW5jdGlvbih0LGUpe2soYXJndW1lbnRzLmxlbmd0aCwyKTt2YXIgbj1NKHRoaXMpO3oobi5lbnRyaWVzLHtrZXk6dyh0KSx2YWx1ZTp3KGUpfSksbi51cGRhdGVVUkwoKX0sZGVsZXRlOmZ1bmN0aW9uKHQpe2soYXJndW1lbnRzLmxlbmd0aCwxKTt2YXIgZT1NKHRoaXMpLG49ZS5lbnRyaWVzLHI9dyh0KSxpPTA7d2hpbGUoaTxuLmxlbmd0aCluW2ldLmtleT09PXI/RyhuLGksMSk6aSsrO2UudXBkYXRlVVJMKCl9LGdldDpmdW5jdGlvbih0KXtrKGFyZ3VtZW50cy5sZW5ndGgsMSk7Zm9yKHZhciBlPU0odGhpcykuZW50cmllcyxuPXcodCkscj0wO3I8ZS5sZW5ndGg7cisrKWlmKGVbcl0ua2V5PT09bilyZXR1cm4gZVtyXS52YWx1ZTtyZXR1cm4gbnVsbH0sZ2V0QWxsOmZ1bmN0aW9uKHQpe2soYXJndW1lbnRzLmxlbmd0aCwxKTtmb3IodmFyIGU9TSh0aGlzKS5lbnRyaWVzLG49dyh0KSxyPVtdLGk9MDtpPGUubGVuZ3RoO2krKyllW2ldLmtleT09PW4mJnoocixlW2ldLnZhbHVlKTtyZXR1cm4gcn0saGFzOmZ1bmN0aW9uKHQpe2soYXJndW1lbnRzLmxlbmd0aCwxKTt2YXIgZT1NKHRoaXMpLmVudHJpZXMsbj13KHQpLHI9MDt3aGlsZShyPGUubGVuZ3RoKWlmKGVbcisrXS5rZXk9PT1uKXJldHVybiEwO3JldHVybiExfSxzZXQ6ZnVuY3Rpb24odCxlKXtrKGFyZ3VtZW50cy5sZW5ndGgsMSk7Zm9yKHZhciBuLHI9TSh0aGlzKSxpPXIuZW50cmllcyxhPSExLG89dyh0KSxzPXcoZSksYz0wO2M8aS5sZW5ndGg7YysrKW49aVtjXSxuLmtleT09PW8mJihhP0coaSxjLS0sMSk6KGE9ITAsbi52YWx1ZT1zKSk7YXx8eihpLHtrZXk6byx2YWx1ZTpzfSksci51cGRhdGVVUkwoKX0sc29ydDpmdW5jdGlvbigpe3ZhciB0PU0odGhpcyk7RSh0LmVudHJpZXMsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQua2V5PmUua2V5PzE6LTF9KSksdC51cGRhdGVVUkwoKX0sZm9yRWFjaDpmdW5jdGlvbih0KXt2YXIgZSxuPU0odGhpcykuZW50cmllcyxyPW0odCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksaT0wO3doaWxlKGk8bi5sZW5ndGgpZT1uW2krK10scihlLnZhbHVlLGUua2V5LHRoaXMpfSxrZXlzOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBzdCh0aGlzLCJrZXlzIil9LHZhbHVlczpmdW5jdGlvbigpe3JldHVybiBuZXcgc3QodGhpcywidmFsdWVzIil9LGVudHJpZXM6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHN0KHRoaXMsImVudHJpZXMiKX19LHtlbnVtZXJhYmxlOiEwfSksdShsdCxJLGx0LmVudHJpZXMse25hbWU6ImVudHJpZXMifSksdShsdCwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiBNKHRoaXMpLnNlcmlhbGl6ZSgpfSkse2VudW1lcmFibGU6ITB9KSxmKHV0LCJVUkxTZWFyY2hQYXJhbXMiKSxyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOiFjfSx7VVJMU2VhcmNoUGFyYW1zOnV0fSksIWMmJnYoTikpe3ZhciBmdD1vKEQuaGFzKSxkdD1vKEQuc2V0KSxodD1mdW5jdGlvbih0KXtpZihfKHQpKXt2YXIgZSxuPXQuYm9keTtpZigiVVJMU2VhcmNoUGFyYW1zIj09PWIobikpcmV0dXJuIGU9dC5oZWFkZXJzP25ldyBOKHQuaGVhZGVycyk6bmV3IE4sZnQoZSwiY29udGVudC10eXBlIil8fGR0KGUsImNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IikseCh0LHtib2R5OlMoMCx3KG4pKSxoZWFkZXJzOlMoMCxlKX0pfXJldHVybiB0fTtpZih2KGopJiZyKHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxkb250Q2FsbEdldFNldDohMCxmb3JjZWQ6ITB9LHtmZXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gaih0LGFyZ3VtZW50cy5sZW5ndGg+MT9odChhcmd1bWVudHNbMV0pOnt9KX19KSx2KFIpKXt2YXIgcHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHAodGhpcyxCKSxuZXcgUih0LGFyZ3VtZW50cy5sZW5ndGg+MT9odChhcmd1bWVudHNbMV0pOnt9KX07Qi5jb25zdHJ1Y3Rvcj1wdCxwdC5wcm90b3R5cGU9QixyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZG9udENhbGxHZXRTZXQ6ITAsZm9yY2VkOiEwfSx7UmVxdWVzdDpwdH0pfX10LmV4cG9ydHM9e1VSTFNlYXJjaFBhcmFtczp1dCxnZXRTdGF0ZTpNfX0sIjUzY2EiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gZS5kZWZhdWx0PXI9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHIodCl9bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9cixuKCJhNGQzIiksbigiZTAxYSIpLG4oImQzYjciKSxuKCJkMjhiIiksbigiM2NhMyIpLG4oImRkYjAiKX0sNTUwOTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI3NDY1Iik7Zm9yKHZhciBpIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihpKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShpKTt2YXIgYT1uKCJmMGM1Iiksbz1PYmplY3QoYVsiYSJdKShyWyJkZWZhdWx0Il0sdm9pZCAwLHZvaWQgMCwhMSxudWxsLG51bGwsbnVsbCwhMSx2b2lkIDAsdm9pZCAwKTtlWyJkZWZhdWx0Il09by5leHBvcnRzfSw1NTMwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbZV0/YXJndW1lbnRzW2VdOnt9O2UlMj9pKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7KDAsci5kZWZhdWx0KSh0LGUsbltlXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6aShPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pKX1yZXR1cm4gdH0sbigiYjY0YiIpLG4oImE0ZDMiKSxuKCI0ZGU0IiksbigiZDNiNyIpLG4oImU0MzkiKSxuKCIxNGQ5IiksbigiMTU5YiIpLG4oImRiYjQiKSxuKCIxZDFjIiksbigiN2E4MiIpO3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX0obigiYWRlMyIpKTtmdW5jdGlvbiBpKHQsZSl7dmFyIG49T2JqZWN0LmtleXModCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtlJiYocj1yLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn19LCI1NTlhIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0LHIpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5jYWxsQXBwSG9vaz1mdW5jdGlvbihlLG4scil7Im9uRXJyb3IiIT09biYmdC5kZWJ1ZygiQXBw77yaIi5jb25jYXQobiwiIGhhdmUgYmVlbiBpbnZva2VkIikrKHI/IiAiLmNvbmNhdChKU09OLnN0cmluZ2lmeShyKSk6IiIpKTtyZXR1cm4gZT1lLiR2bXx8ZSxlLl9fY2FsbF9ob29rJiZlLl9fY2FsbF9ob29rKG4scil9LGUuY2FsbFBhZ2VIb29rPWZ1bmN0aW9uKGUsbixpKXsib25Mb2FkIj09PW4mJihlLiRtcC5xdWVyeT1pLHIucHVibGlzaEhhbmRsZXIoIm9uUGFnZUxvYWQiLGUsZS4kcGFnZS5pZCkpLCJvblNob3ciPT09biYmKGUuJHJvdXRlLm1ldGEuaXNUYWJCYXImJmUuJHJvdXRlLnBhcmFtcy5kZXRhaWwmJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ci5lbWl0KCJvblRhYkl0ZW1UYXAiLGUuJHJvdXRlLnBhcmFtcy5kZXRhaWwpfSksMCksci5wdWJsaXNoSGFuZGxlcigib25QYWdlU2hvdyIsZSxlLiRwYWdlLmlkKSk7Im9uUGFnZVNjcm9sbCIhPT1uJiZ0LmRlYnVnKCIiLmNvbmNhdChlLiRwYWdlLnJvdXRlLCJbIikuY29uY2F0KGUuJHBhZ2UuaWQsIl3vvJoiKS5jb25jYXQobiwiIGhhdmUgYmVlbiBpbnZva2VkIikpO3JldHVybiBmdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9dC4kdm18fHQsdC5fX2NhbGxfaG9vayYmdC5fX2NhbGxfaG9vayhlLG4pfShlLG4saSl9LG4oImU5YzQiKSxuKCI5OWFmIil9KS5jYWxsKHRoaXMsbigiNWE1MiIpWyJkZWZhdWx0Il0sbigiYTlhYSIpKX0sNTY5MjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYzQzMCIpLGk9bigiYzZjZCIpOyh0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaVt0XXx8KGlbdF09dm9pZCAwIT09ZT9lOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMjYuMSIsbW9kZTpyPyJwdXJlIjoiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMTQtMjAyMiBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSIsbGljZW5zZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My4yNi4xL0xJQ0VOU0UiLHNvdXJjZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMifSl9LCI1NmVmIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZDA2NiIpLGk9bigiZTMzMCIpLGE9bigiMjQxYyIpLG89bigiNzQxOCIpLHM9bigiODI1YSIpLGM9aShbXS5jb25jYXQpO3QuZXhwb3J0cz1yKCJSZWZsZWN0Iiwib3duS2V5cyIpfHxmdW5jdGlvbih0KXt2YXIgZT1hLmYocyh0KSksbj1vLmY7cmV0dXJuIG4/YyhlLG4odCkpOmV9fSw1NzYwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLlNjcm9sbGVyPWk7dmFyIHI9bigiZDEzOCIpO2Z1bmN0aW9uIGkodCxlKXtlPWV8fHt9LHRoaXMuX2VsZW1lbnQ9dCx0aGlzLl9vcHRpb25zPWUsdGhpcy5fZW5hYmxlU25hcD1lLmVuYWJsZVNuYXB8fCExLHRoaXMuX2l0ZW1TaXplPWUuaXRlbVNpemV8fDAsdGhpcy5fZW5hYmxlWD1lLmVuYWJsZVh8fCExLHRoaXMuX2VuYWJsZVk9ZS5lbmFibGVZfHwhMSx0aGlzLl9zaG91bGREaXNwYXRjaFNjcm9sbEV2ZW50PSEhZS5vblNjcm9sbCx0aGlzLl9lbmFibGVYPyh0aGlzLl9leHRlbnQ9KGUuc2Nyb2xsV2lkdGh8fHRoaXMuX2VsZW1lbnQub2Zmc2V0V2lkdGgpLXRoaXMuX2VsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRXaWR0aCx0aGlzLl9zY3JvbGxXaWR0aD1lLnNjcm9sbFdpZHRoKToodGhpcy5fZXh0ZW50PShlLnNjcm9sbEhlaWdodHx8dGhpcy5fZWxlbWVudC5vZmZzZXRIZWlnaHQpLXRoaXMuX2VsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRIZWlnaHQsdGhpcy5fc2Nyb2xsSGVpZ2h0PWUuc2Nyb2xsSGVpZ2h0KSx0aGlzLl9wb3NpdGlvbj0wLHRoaXMuX3Njcm9sbD1uZXcgci5TY3JvbGwodGhpcy5fZXh0ZW50LGUuZnJpY3Rpb24sZS5zcHJpbmcpLHRoaXMuX29uVHJhbnNpdGlvbkVuZD10aGlzLm9uVHJhbnNpdGlvbkVuZC5iaW5kKHRoaXMpLHRoaXMudXBkYXRlUG9zaXRpb24oKX1pLnByb3RvdHlwZS5vblRvdWNoU3RhcnQ9ZnVuY3Rpb24oKXt0aGlzLl9zdGFydFBvc2l0aW9uPXRoaXMuX3Bvc2l0aW9uLHRoaXMuX2xhc3RDaGFuZ2VQb3M9dGhpcy5fc3RhcnRQb3NpdGlvbix0aGlzLl9zdGFydFBvc2l0aW9uPjA/dGhpcy5fc3RhcnRQb3NpdGlvbi89LjU6dGhpcy5fc3RhcnRQb3NpdGlvbjwtdGhpcy5fZXh0ZW50JiYodGhpcy5fc3RhcnRQb3NpdGlvbj0odGhpcy5fc3RhcnRQb3NpdGlvbit0aGlzLl9leHRlbnQpLy41LXRoaXMuX2V4dGVudCksdGhpcy5fYW5pbWF0aW9uJiYodGhpcy5fYW5pbWF0aW9uLmNhbmNlbCgpLHRoaXMuX3Njcm9sbGluZz0hMSksdGhpcy51cGRhdGVQb3NpdGlvbigpfSxpLnByb3RvdHlwZS5vblRvdWNoTW92ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX3N0YXJ0UG9zaXRpb247dGhpcy5fZW5hYmxlWD9uKz10OnRoaXMuX2VuYWJsZVkmJihuKz1lKSxuPjA/bio9LjU6bjwtdGhpcy5fZXh0ZW50JiYobj0uNSoobit0aGlzLl9leHRlbnQpLXRoaXMuX2V4dGVudCksdGhpcy5fcG9zaXRpb249bix0aGlzLnVwZGF0ZVBvc2l0aW9uKCksdGhpcy5kaXNwYXRjaFNjcm9sbCgpfSxpLnByb3RvdHlwZS5vblRvdWNoRW5kPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO2lmKHRoaXMuX2VuYWJsZVNuYXAmJnRoaXMuX3Bvc2l0aW9uPi10aGlzLl9leHRlbnQmJnRoaXMuX3Bvc2l0aW9uPDApe2lmKHRoaXMuX2VuYWJsZVkmJihNYXRoLmFicyhlKTx0aGlzLl9pdGVtU2l6ZSYmTWF0aC5hYnMobi55KTwzMDB8fE1hdGguYWJzKG4ueSk8MTUwKSlyZXR1cm4gdm9pZCB0aGlzLnNuYXAoKTtpZih0aGlzLl9lbmFibGVYJiYoTWF0aC5hYnModCk8dGhpcy5faXRlbVNpemUmJk1hdGguYWJzKG4ueCk8MzAwfHxNYXRoLmFicyhuLngpPDE1MCkpcmV0dXJuIHZvaWQgdGhpcy5zbmFwKCl9aWYodGhpcy5fZW5hYmxlWD90aGlzLl9zY3JvbGwuc2V0KHRoaXMuX3Bvc2l0aW9uLG4ueCk6dGhpcy5fZW5hYmxlWSYmdGhpcy5fc2Nyb2xsLnNldCh0aGlzLl9wb3NpdGlvbixuLnkpLHRoaXMuX2VuYWJsZVNuYXApe3ZhciBpPXRoaXMuX3Njcm9sbC5fZnJpY3Rpb24ueCgxMDApLGE9aSV0aGlzLl9pdGVtU2l6ZSxvPU1hdGguYWJzKGEpPnRoaXMuX2l0ZW1TaXplLzI/aS0odGhpcy5faXRlbVNpemUtTWF0aC5hYnMoYSkpOmktYTtvPD0wJiZvPj0tdGhpcy5fZXh0ZW50JiZ0aGlzLl9zY3JvbGwuc2V0VmVsb2NpdHlCeUVuZChvKX10aGlzLl9sYXN0VGltZT1EYXRlLm5vdygpLHRoaXMuX2xhc3REZWxheT0wLHRoaXMuX3Njcm9sbGluZz0hMCx0aGlzLl9sYXN0Q2hhbmdlUG9zPXRoaXMuX3Bvc2l0aW9uLHRoaXMuX2xhc3RJZHg9TWF0aC5mbG9vcihNYXRoLmFicyh0aGlzLl9wb3NpdGlvbi90aGlzLl9pdGVtU2l6ZSkpLHRoaXMuX2FuaW1hdGlvbj1mdW5jdGlvbih0LGUsbil7dmFyIHI9e2lkOjAsY2FuY2VsbGVkOiExfTtyZXR1cm4gZnVuY3Rpb24gdChlLG4scixpKXtpZighZXx8IWUuY2FuY2VsbGVkKXtyKG4pO3ZhciBhPW4uZG9uZSgpO2F8fGUuY2FuY2VsbGVkfHwoZS5pZD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodC5iaW5kKG51bGwsZSxuLHIsaSkpKSxhJiZpJiZpKG4pfX0ocix0LGUsbikse2NhbmNlbDpmdW5jdGlvbih0KXt0JiZ0LmlkJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0LmlkKSx0JiYodC5jYW5jZWxsZWQ9ITApfS5iaW5kKG51bGwsciksbW9kZWw6dH19KHRoaXMuX3Njcm9sbCwoZnVuY3Rpb24oKXt2YXIgdD1EYXRlLm5vdygpLGU9KHQtci5fc2Nyb2xsLl9zdGFydFRpbWUpLzFlMyxuPXIuX3Njcm9sbC54KGUpO3IuX3Bvc2l0aW9uPW4sci51cGRhdGVQb3NpdGlvbigpO3ZhciBpPXIuX3Njcm9sbC5keChlKTtyLl9zaG91bGREaXNwYXRjaFNjcm9sbEV2ZW50JiZ0LXIuX2xhc3RUaW1lPnIuX2xhc3REZWxheSYmKHIuZGlzcGF0Y2hTY3JvbGwoKSxyLl9sYXN0RGVsYXk9TWF0aC5hYnMoMmUzL2kpLHIuX2xhc3RUaW1lPXQpfSksKGZ1bmN0aW9uKCl7ci5fZW5hYmxlU25hcCYmKG88PTAmJm8+PS1yLl9leHRlbnQmJihyLl9wb3NpdGlvbj1vLHIudXBkYXRlUG9zaXRpb24oKSksImZ1bmN0aW9uIj09PXR5cGVvZiByLl9vcHRpb25zLm9uU25hcCYmci5fb3B0aW9ucy5vblNuYXAoTWF0aC5mbG9vcihNYXRoLmFicyhyLl9wb3NpdGlvbikvci5faXRlbVNpemUpKSksci5fc2hvdWxkRGlzcGF0Y2hTY3JvbGxFdmVudCYmci5kaXNwYXRjaFNjcm9sbCgpLHIuX3Njcm9sbGluZz0hMX0pKX0saS5wcm90b3R5cGUub25UcmFuc2l0aW9uRW5kPWZ1bmN0aW9uKCl7dGhpcy5fZWxlbWVudC5zdHlsZS50cmFuc2l0aW9uPSIiLHRoaXMuX2VsZW1lbnQuc3R5bGUud2Via2l0VHJhbnNpdGlvbj0iIix0aGlzLl9lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMuX29uVHJhbnNpdGlvbkVuZCksdGhpcy5fZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRUcmFuc2l0aW9uRW5kIix0aGlzLl9vblRyYW5zaXRpb25FbmQpLHRoaXMuX3NuYXBwaW5nJiYodGhpcy5fc25hcHBpbmc9ITEpLHRoaXMuZGlzcGF0Y2hTY3JvbGwoKX0saS5wcm90b3R5cGUuc25hcD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2l0ZW1TaXplLGU9dGhpcy5fcG9zaXRpb24ldCxuPU1hdGguYWJzKGUpPnRoaXMuX2l0ZW1TaXplLzI/dGhpcy5fcG9zaXRpb24tKHQtTWF0aC5hYnMoZSkpOnRoaXMuX3Bvc2l0aW9uLWU7dGhpcy5fcG9zaXRpb24hPT1uJiYodGhpcy5fc25hcHBpbmc9ITAsdGhpcy5zY3JvbGxUbygtbiksImZ1bmN0aW9uIj09PXR5cGVvZiB0aGlzLl9vcHRpb25zLm9uU25hcCYmdGhpcy5fb3B0aW9ucy5vblNuYXAoTWF0aC5mbG9vcihNYXRoLmFicyh0aGlzLl9wb3NpdGlvbikvdGhpcy5faXRlbVNpemUpKSl9LGkucHJvdG90eXBlLnNjcm9sbFRvPWZ1bmN0aW9uKHQsZSl7dGhpcy5fYW5pbWF0aW9uJiYodGhpcy5fYW5pbWF0aW9uLmNhbmNlbCgpLHRoaXMuX3Njcm9sbGluZz0hMSksIm51bWJlciI9PT10eXBlb2YgdCYmKHRoaXMuX3Bvc2l0aW9uPS10KSx0aGlzLl9wb3NpdGlvbjwtdGhpcy5fZXh0ZW50P3RoaXMuX3Bvc2l0aW9uPS10aGlzLl9leHRlbnQ6dGhpcy5fcG9zaXRpb24+MCYmKHRoaXMuX3Bvc2l0aW9uPTApLHRoaXMuX2VsZW1lbnQuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtICIrKGV8fC4yKSsicyBlYXNlLW91dCIsdGhpcy5fZWxlbWVudC5zdHlsZS53ZWJraXRUcmFuc2l0aW9uPSItd2Via2l0LXRyYW5zZm9ybSAiKyhlfHwuMikrInMgZWFzZS1vdXQiLHRoaXMudXBkYXRlUG9zaXRpb24oKSx0aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMuX29uVHJhbnNpdGlvbkVuZCksdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRUcmFuc2l0aW9uRW5kIix0aGlzLl9vblRyYW5zaXRpb25FbmQpfSxpLnByb3RvdHlwZS5kaXNwYXRjaFNjcm9sbD1mdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgdGhpcy5fb3B0aW9ucy5vblNjcm9sbCYmTWF0aC5yb3VuZCh0aGlzLl9sYXN0UG9zKSE9PU1hdGgucm91bmQodGhpcy5fcG9zaXRpb24pKXt0aGlzLl9sYXN0UG9zPXRoaXMuX3Bvc2l0aW9uO3ZhciB0PXt0YXJnZXQ6e3Njcm9sbExlZnQ6dGhpcy5fZW5hYmxlWD8tdGhpcy5fcG9zaXRpb246MCxzY3JvbGxUb3A6dGhpcy5fZW5hYmxlWT8tdGhpcy5fcG9zaXRpb246MCxzY3JvbGxIZWlnaHQ6dGhpcy5fc2Nyb2xsSGVpZ2h0fHx0aGlzLl9lbGVtZW50Lm9mZnNldEhlaWdodCxzY3JvbGxXaWR0aDp0aGlzLl9zY3JvbGxXaWR0aHx8dGhpcy5fZWxlbWVudC5vZmZzZXRXaWR0aCxvZmZzZXRIZWlnaHQ6dGhpcy5fZWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldEhlaWdodCxvZmZzZXRXaWR0aDp0aGlzLl9lbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGh9fTt0aGlzLl9vcHRpb25zLm9uU2Nyb2xsKHQpfX0saS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj0wLGk9dGhpcy5fcG9zaXRpb247dGhpcy5fZW5hYmxlWD8ocj10aGlzLl9lbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoPyhlfHx0aGlzLl9lbGVtZW50Lm9mZnNldFdpZHRoKS10aGlzLl9lbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGg6MCx0aGlzLl9zY3JvbGxXaWR0aD1lKToocj10aGlzLl9lbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoPyhlfHx0aGlzLl9lbGVtZW50Lm9mZnNldEhlaWdodCktdGhpcy5fZWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldEhlaWdodDowLHRoaXMuX3Njcm9sbEhlaWdodD1lKSwibnVtYmVyIj09PXR5cGVvZiB0JiYodGhpcy5fcG9zaXRpb249LXQpLHRoaXMuX3Bvc2l0aW9uPC1yP3RoaXMuX3Bvc2l0aW9uPS1yOnRoaXMuX3Bvc2l0aW9uPjAmJih0aGlzLl9wb3NpdGlvbj0wKSx0aGlzLl9pdGVtU2l6ZT1ufHx0aGlzLl9pdGVtU2l6ZSx0aGlzLnVwZGF0ZVBvc2l0aW9uKCksaSE9PXRoaXMuX3Bvc2l0aW9uJiYodGhpcy5kaXNwYXRjaFNjcm9sbCgpLCJmdW5jdGlvbiI9PT10eXBlb2YgdGhpcy5fb3B0aW9ucy5vblNuYXAmJnRoaXMuX29wdGlvbnMub25TbmFwKE1hdGguZmxvb3IoTWF0aC5hYnModGhpcy5fcG9zaXRpb24pL3RoaXMuX2l0ZW1TaXplKSkpLHRoaXMuX2V4dGVudD1yLHRoaXMuX3Njcm9sbC5fZXh0ZW50PXJ9LGkucHJvdG90eXBlLnVwZGF0ZVBvc2l0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9IiI7dGhpcy5fZW5hYmxlWD90PSJ0cmFuc2xhdGVYKCIrdGhpcy5fcG9zaXRpb24rInB4KSB0cmFuc2xhdGVaKDApIjp0aGlzLl9lbmFibGVZJiYodD0idHJhbnNsYXRlWSgiK3RoaXMuX3Bvc2l0aW9uKyJweCkgdHJhbnNsYXRlWigwKSIpLHRoaXMuX2VsZW1lbnQuc3R5bGUud2Via2l0VHJhbnNmb3JtPXQsdGhpcy5fZWxlbWVudC5zdHlsZS50cmFuc2Zvcm09dH0saS5wcm90b3R5cGUuaXNTY3JvbGxpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2Nyb2xsaW5nfHx0aGlzLl9zbmFwcGluZ319LCI1NzdlIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZjVkZiIpLGk9U3RyaW5nO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigiU3ltYm9sIj09PXIodCkpdGhyb3cgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyIpO3JldHVybiBpKHQpfX0sIjU3YjkiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJjNjViIiksaT1uKCJkMDY2IiksYT1uKCJiNjIyIiksbz1uKCJjYjJkIik7dC5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ9aSgiU3ltYm9sIiksZT10JiZ0LnByb3RvdHlwZSxuPWUmJmUudmFsdWVPZixzPWEoInRvUHJpbWl0aXZlIik7ZSYmIWVbc10mJm8oZSxzLChmdW5jdGlvbih0KXtyZXR1cm4gcihuLHRoaXMpfSkse2FyaXR5OjF9KX19LDU4OTc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7ZS5kZWZhdWx0PXttZXRob2RzOntiZWZvcmVUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7fSxhZnRlclRyYW5zaXRpb246ZnVuY3Rpb24oKXt9fX19LDU4OTk6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9Ilx0XG5cdlxmXHIgwqDhmoDigIDigIHigILigIPigITigIXigIbigIfigIjigInigIrigK/igZ/jgIBcdTIwMjhcdTIwMjlcdWZlZmYifSwiNThhNyI6ZnVuY3Rpb24odCl7dC5leHBvcnRzPUpTT04ucGFyc2UoJ3sidW5pLmFwcC5xdWl0IjoiUHJlc3MgYmFjayBidXR0b24gYWdhaW4gdG8gZXhpdCIsInVuaS5hc3luYy5lcnJvciI6IlRoZSBjb25uZWN0aW9uIHRpbWVkIG91dCwgY2xpY2sgdGhlIHNjcmVlbiB0byB0cnkgYWdhaW4uIiwidW5pLnNob3dBY3Rpb25TaGVldC5jYW5jZWwiOiJDYW5jZWwiLCJ1bmkuc2hvd1RvYXN0LnVucGFpcmVkIjoiUGxlYXNlIG5vdGUgc2hvd1RvYXN0IG11c3QgYmUgcGFpcmVkIHdpdGggaGlkZVRvYXN0IiwidW5pLnNob3dMb2FkaW5nLnVucGFpcmVkIjoiUGxlYXNlIG5vdGUgc2hvd0xvYWRpbmcgbXVzdCBiZSBwYWlyZWQgd2l0aCBoaWRlTG9hZGluZyIsInVuaS5zaG93TW9kYWwuY2FuY2VsIjoiQ2FuY2VsIiwidW5pLnNob3dNb2RhbC5jb25maXJtIjoiT0siLCJ1bmkuY2hvb3NlSW1hZ2UuY2FuY2VsIjoiQ2FuY2VsIiwidW5pLmNob29zZUltYWdlLnNvdXJjZVR5cGUuYWxidW0iOiJBbGJ1bSIsInVuaS5jaG9vc2VJbWFnZS5zb3VyY2VUeXBlLmNhbWVyYSI6IkNhbWVyYSIsInVuaS5jaG9vc2VWaWRlby5jYW5jZWwiOiJDYW5jZWwiLCJ1bmkuY2hvb3NlVmlkZW8uc291cmNlVHlwZS5hbGJ1bSI6IkFsYnVtIiwidW5pLmNob29zZVZpZGVvLnNvdXJjZVR5cGUuY2FtZXJhIjoiQ2FtZXJhIiwidW5pLmNob29zZUZpbGUubm90VXNlckFjdGl2YXRpb24iOiJGaWxlIGNob29zZXIgZGlhbG9nIGNhbiBvbmx5IGJlIHNob3duIHdpdGggYSB1c2VyIGFjdGl2YXRpb24iLCJ1bmkucHJldmlld0ltYWdlLmNhbmNlbCI6IkNhbmNlbCIsInVuaS5wcmV2aWV3SW1hZ2UuYnV0dG9uLnNhdmUiOiJTYXZlIEltYWdlIiwidW5pLnByZXZpZXdJbWFnZS5zYXZlLnN1Y2Nlc3MiOiJTYXZlZCBzdWNjZXNzZnVsbHkiLCJ1bmkucHJldmlld0ltYWdlLnNhdmUuZmFpbCI6IlNhdmUgZmFpbGVkIiwidW5pLnNldENsaXBib2FyZERhdGEuc3VjY2VzcyI6IkNvbnRlbnQgY29waWVkIiwidW5pLnNjYW5Db2RlLnRpdGxlIjoiU2NhbiBjb2RlIiwidW5pLnNjYW5Db2RlLmFsYnVtIjoiQWxidW0iLCJ1bmkuc2NhbkNvZGUuZmFpbCI6IlJlY29nbml0aW9uIGZhaWx1cmUiLCJ1bmkuc2NhbkNvZGUuZmxhc2gub24iOiJUYXAgdG8gdHVybiBsaWdodCBvbiIsInVuaS5zY2FuQ29kZS5mbGFzaC5vZmYiOiJUYXAgdG8gdHVybiBsaWdodCBvZmYiLCJ1bmkuc3RhcnRTb3RlckF1dGhlbnRpY2F0aW9uLmF1dGhDb250ZW50IjoiRmluZ2VycHJpbnQgcmVjb2duaXRpb24iLCJ1bmkuc3RhcnRTb3RlckF1dGhlbnRpY2F0aW9uLndhaXRpbmdDb250ZW50IjoiVW5yZWNvZ25pemFibGUiLCJ1bmkucGlja2VyLmRvbmUiOiJEb25lIiwidW5pLnBpY2tlci5jYW5jZWwiOiJDYW5jZWwiLCJ1bmkudmlkZW8uZGFubXUiOiJEYW5tdSIsInVuaS52aWRlby52b2x1bWUiOiJWb2x1bWUiLCJ1bmkuYnV0dG9uLmZlZWRiYWNrLnRpdGxlIjoiZmVlZGJhY2siLCJ1bmkuYnV0dG9uLmZlZWRiYWNrLnNlbmQiOiJzZW5kIiwidW5pLmNob29zZUxvY2F0aW9uLnNlYXJjaCI6IkZpbmQgUGxhY2UiLCJ1bmkuY2hvb3NlTG9jYXRpb24uY2FuY2VsIjoiQ2FuY2VsIn0nKX0sIjU4YTgiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMzMwIiksaT1uKCIxZDgwIiksYT1uKCI1NzdlIiksbz1uKCI1ODk5Iikscz1yKCIiLnJlcGxhY2UpLGM9IlsiK28rIl0iLHU9UmVnRXhwKCJeIitjK2MrIioiKSxsPVJlZ0V4cChjK2MrIiokIiksZj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49YShpKGUpKTtyZXR1cm4gMSZ0JiYobj1zKG4sdSwiIikpLDImdCYmKG49cyhuLGwsIiIpKSxufX07dC5leHBvcnRzPXtzdGFydDpmKDEpLGVuZDpmKDIpLHRyaW06ZigzKX19LDU5MjY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImI0MmUiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9K3Q7cmV0dXJuIGUhPT1lfHwwPT09ZT8wOnIoZSl9fSwiNTllZCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjE2MjYiKSxpPW4oIjBkNTEiKSxhPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYocih0KSlyZXR1cm4gdDt0aHJvdyBhKGkodCkrIiBpcyBub3QgYSBmdW5jdGlvbiIpfX0sIjVhMzQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI0NGU3IiksaT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKHIodCkpdGhyb3cgaSgiVGhlIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCByZWd1bGFyIGV4cHJlc3Npb25zIik7cmV0dXJuIHR9fSwiNWE0NyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjIzZTciKSxpPW4oIjA0ZjgiKSxhPW4oImQwMzkiKSxvPW4oIjc0MTgiKSxzPW4oIjdiMGIiKSxjPSFpfHxhKChmdW5jdGlvbigpe28uZigxKX0pKTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6Y30se2dldE93blByb3BlcnR5U3ltYm9sczpmdW5jdGlvbih0KXt2YXIgZT1vLmY7cmV0dXJuIGU/ZShzKHQpKTpbXX19KX0sIjVhNTIiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCIzYzY1Iik7dmFyIHI9QXJyYXkucHJvdG90eXBlLnVuc2hpZnQ7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gci5jYWxsKHQsIltzeXN0ZW1dIiksdH1mdW5jdGlvbiBhKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPSEwOyJkZWJ1ZyIhPT1lfHxfX3VuaUNvbmZpZy5kZWJ1Z3x8KG49ITEpLG4mJnQuY29uc29sZVtlXS5hcHBseSh0LmNvbnNvbGUsaShhcmd1bWVudHMpKX19dmFyIG89e2xvZzphKCJsb2ciKSxpbmZvOmEoImluZm8iKSx3YXJuOmEoIndhcm4iKSxkZWJ1ZzphKCJkZWJ1ZyIpLGVycm9yOmEoImVycm9yIil9O2UuZGVmYXVsdD1vfSkuY2FsbCh0aGlzLG4oImM4YmEiKSl9LCI1YWJlIjpmdW5jdGlvbih0LGUpeyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtpZigib2JqZWN0Ij09PXR5cGVvZiB3aW5kb3cpaWYoIkludGVyc2VjdGlvbk9ic2VydmVyImluIHdpbmRvdyYmIkludGVyc2VjdGlvbk9ic2VydmVyRW50cnkiaW4gd2luZG93JiYiaW50ZXJzZWN0aW9uUmF0aW8iaW4gd2luZG93LkludGVyc2VjdGlvbk9ic2VydmVyRW50cnkucHJvdG90eXBlKSJpc0ludGVyc2VjdGluZyJpbiB3aW5kb3cuSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeS5wcm90b3R5cGV8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeS5wcm90b3R5cGUsImlzSW50ZXJzZWN0aW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW50ZXJzZWN0aW9uUmF0aW8+MH19KTtlbHNle3ZhciB0PXdpbmRvdy5kb2N1bWVudCxlPVtdO3IucHJvdG90eXBlLlRIUk9UVExFX1RJTUVPVVQ9MTAwLHIucHJvdG90eXBlLlBPTExfSU5URVJWQUw9bnVsbCxyLnByb3RvdHlwZS5VU0VfTVVUQVRJT05fT0JTRVJWRVI9ITAsci5wcm90b3R5cGUub2JzZXJ2ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9vYnNlcnZhdGlvblRhcmdldHMuc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZWxlbWVudD09dH0pKTtpZighZSl7aWYoIXR8fDEhPXQubm9kZVR5cGUpdGhyb3cgbmV3IEVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBFbGVtZW50Iik7dGhpcy5fcmVnaXN0ZXJJbnN0YW5jZSgpLHRoaXMuX29ic2VydmF0aW9uVGFyZ2V0cy5wdXNoKHtlbGVtZW50OnQsZW50cnk6bnVsbH0pLHRoaXMuX21vbml0b3JJbnRlcnNlY3Rpb25zKCksdGhpcy5fY2hlY2tGb3JJbnRlcnNlY3Rpb25zKCl9fSxyLnByb3RvdHlwZS51bm9ic2VydmU9ZnVuY3Rpb24odCl7dGhpcy5fb2JzZXJ2YXRpb25UYXJnZXRzPXRoaXMuX29ic2VydmF0aW9uVGFyZ2V0cy5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmVsZW1lbnQhPXR9KSksdGhpcy5fb2JzZXJ2YXRpb25UYXJnZXRzLmxlbmd0aHx8KHRoaXMuX3VubW9uaXRvckludGVyc2VjdGlvbnMoKSx0aGlzLl91bnJlZ2lzdGVySW5zdGFuY2UoKSl9LHIucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLl9vYnNlcnZhdGlvblRhcmdldHM9W10sdGhpcy5fdW5tb25pdG9ySW50ZXJzZWN0aW9ucygpLHRoaXMuX3VucmVnaXN0ZXJJbnN0YW5jZSgpfSxyLnByb3RvdHlwZS50YWtlUmVjb3Jkcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3F1ZXVlZEVudHJpZXMuc2xpY2UoKTtyZXR1cm4gdGhpcy5fcXVldWVkRW50cmllcz1bXSx0fSxyLnByb3RvdHlwZS5faW5pdFRocmVzaG9sZHM9ZnVuY3Rpb24odCl7dmFyIGU9dHx8WzBdO3JldHVybiBBcnJheS5pc0FycmF5KGUpfHwoZT1bZV0pLGUuc29ydCgpLmZpbHRlcigoZnVuY3Rpb24odCxlLG4pe2lmKCJudW1iZXIiIT10eXBlb2YgdHx8aXNOYU4odCl8fHQ8MHx8dD4xKXRocm93IG5ldyBFcnJvcigidGhyZXNob2xkIG11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxIGluY2x1c2l2ZWx5Iik7cmV0dXJuIHQhPT1uW2UtMV19KSl9LHIucHJvdG90eXBlLl9wYXJzZVJvb3RNYXJnaW49ZnVuY3Rpb24odCl7dmFyIGU9dHx8IjBweCIsbj1lLnNwbGl0KC9ccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPS9eKC0/XGQqXC4/XGQrKShweHwlKSQvLmV4ZWModCk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJyb290TWFyZ2luIG11c3QgYmUgc3BlY2lmaWVkIGluIHBpeGVscyBvciBwZXJjZW50Iik7cmV0dXJue3ZhbHVlOnBhcnNlRmxvYXQoZVsxXSksdW5pdDplWzJdfX0pKTtyZXR1cm4gblsxXT1uWzFdfHxuWzBdLG5bMl09blsyXXx8blswXSxuWzNdPW5bM118fG5bMV0sbn0sci5wcm90b3R5cGUuX21vbml0b3JJbnRlcnNlY3Rpb25zPWZ1bmN0aW9uKCl7dGhpcy5fbW9uaXRvcmluZ0ludGVyc2VjdGlvbnN8fCh0aGlzLl9tb25pdG9yaW5nSW50ZXJzZWN0aW9ucz0hMCx0aGlzLlBPTExfSU5URVJWQUw/dGhpcy5fbW9uaXRvcmluZ0ludGVydmFsPXNldEludGVydmFsKHRoaXMuX2NoZWNrRm9ySW50ZXJzZWN0aW9ucyx0aGlzLlBPTExfSU5URVJWQUwpOihhKHdpbmRvdywicmVzaXplIix0aGlzLl9jaGVja0ZvckludGVyc2VjdGlvbnMsITApLGEodCwic2Nyb2xsIix0aGlzLl9jaGVja0ZvckludGVyc2VjdGlvbnMsITApLHRoaXMuVVNFX01VVEFUSU9OX09CU0VSVkVSJiYiTXV0YXRpb25PYnNlcnZlciJpbiB3aW5kb3cmJih0aGlzLl9kb21PYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLl9jaGVja0ZvckludGVyc2VjdGlvbnMpLHRoaXMuX2RvbU9ic2VydmVyLm9ic2VydmUodCx7YXR0cmlidXRlczohMCxjaGlsZExpc3Q6ITAsY2hhcmFjdGVyRGF0YTohMCxzdWJ0cmVlOiEwfSkpKSl9LHIucHJvdG90eXBlLl91bm1vbml0b3JJbnRlcnNlY3Rpb25zPWZ1bmN0aW9uKCl7dGhpcy5fbW9uaXRvcmluZ0ludGVyc2VjdGlvbnMmJih0aGlzLl9tb25pdG9yaW5nSW50ZXJzZWN0aW9ucz0hMSxjbGVhckludGVydmFsKHRoaXMuX21vbml0b3JpbmdJbnRlcnZhbCksdGhpcy5fbW9uaXRvcmluZ0ludGVydmFsPW51bGwsbyh3aW5kb3csInJlc2l6ZSIsdGhpcy5fY2hlY2tGb3JJbnRlcnNlY3Rpb25zLCEwKSxvKHQsInNjcm9sbCIsdGhpcy5fY2hlY2tGb3JJbnRlcnNlY3Rpb25zLCEwKSx0aGlzLl9kb21PYnNlcnZlciYmKHRoaXMuX2RvbU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLl9kb21PYnNlcnZlcj1udWxsKSl9LHIucHJvdG90eXBlLl9jaGVja0ZvckludGVyc2VjdGlvbnM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9yb290SXNJbkRvbSgpLGU9dD90aGlzLl9nZXRSb290UmVjdCgpOnUoKTt0aGlzLl9vYnNlcnZhdGlvblRhcmdldHMuZm9yRWFjaCgoZnVuY3Rpb24ocil7dmFyIGE9ci5lbGVtZW50LG89YyhhKSxzPXRoaXMuX3Jvb3RDb250YWluc1RhcmdldChhKSx1PXIuZW50cnksbD10JiZzJiZ0aGlzLl9jb21wdXRlVGFyZ2V0QW5kUm9vdEludGVyc2VjdGlvbihhLGUpLGY9ci5lbnRyeT1uZXcgbih7dGltZTppKCksdGFyZ2V0OmEsYm91bmRpbmdDbGllbnRSZWN0Om8scm9vdEJvdW5kczplLGludGVyc2VjdGlvblJlY3Q6bH0pO3U/dCYmcz90aGlzLl9oYXNDcm9zc2VkVGhyZXNob2xkKHUsZikmJnRoaXMuX3F1ZXVlZEVudHJpZXMucHVzaChmKTp1JiZ1LmlzSW50ZXJzZWN0aW5nJiZ0aGlzLl9xdWV1ZWRFbnRyaWVzLnB1c2goZik6dGhpcy5fcXVldWVkRW50cmllcy5wdXNoKGYpfSksdGhpcyksdGhpcy5fcXVldWVkRW50cmllcy5sZW5ndGgmJnRoaXMuX2NhbGxiYWNrKHRoaXMudGFrZVJlY29yZHMoKSx0aGlzKX0sci5wcm90b3R5cGUuX2NvbXB1dGVUYXJnZXRBbmRSb290SW50ZXJzZWN0aW9uPWZ1bmN0aW9uKGUsbil7aWYoIm5vbmUiIT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKS5kaXNwbGF5KXt2YXIgcj1jKGUpLGk9cixhPWYoZSksbz0hMTt3aGlsZSghbyl7dmFyIHU9bnVsbCxsPTE9PWEubm9kZVR5cGU/d2luZG93LmdldENvbXB1dGVkU3R5bGUoYSk6e307aWYoIm5vbmUiPT1sLmRpc3BsYXkpcmV0dXJuO2lmKGE9PXRoaXMucm9vdHx8YT09dD8obz0hMCx1PW4pOmEhPXQuYm9keSYmYSE9dC5kb2N1bWVudEVsZW1lbnQmJiJ2aXNpYmxlIiE9bC5vdmVyZmxvdyYmKHU9YyhhKSksdSYmKGk9cyh1LGkpLCFpKSlicmVhazthPWYoYSl9cmV0dXJuIGl9fSxyLnByb3RvdHlwZS5fZ2V0Um9vdFJlY3Q9ZnVuY3Rpb24oKXt2YXIgZTtpZih0aGlzLnJvb3QpZT1jKHRoaXMucm9vdCk7ZWxzZXt2YXIgbj10LmRvY3VtZW50RWxlbWVudCxyPXQuYm9keTtlPXt0b3A6MCxsZWZ0OjAscmlnaHQ6bi5jbGllbnRXaWR0aHx8ci5jbGllbnRXaWR0aCx3aWR0aDpuLmNsaWVudFdpZHRofHxyLmNsaWVudFdpZHRoLGJvdHRvbTpuLmNsaWVudEhlaWdodHx8ci5jbGllbnRIZWlnaHQsaGVpZ2h0Om4uY2xpZW50SGVpZ2h0fHxyLmNsaWVudEhlaWdodH19cmV0dXJuIHRoaXMuX2V4cGFuZFJlY3RCeVJvb3RNYXJnaW4oZSl9LHIucHJvdG90eXBlLl9leHBhbmRSZWN0QnlSb290TWFyZ2luPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3Jvb3RNYXJnaW5WYWx1ZXMubWFwKChmdW5jdGlvbihlLG4pe3JldHVybiJweCI9PWUudW5pdD9lLnZhbHVlOmUudmFsdWUqKG4lMj90LndpZHRoOnQuaGVpZ2h0KS8xMDB9KSksbj17dG9wOnQudG9wLWVbMF0scmlnaHQ6dC5yaWdodCtlWzFdLGJvdHRvbTp0LmJvdHRvbStlWzJdLGxlZnQ6dC5sZWZ0LWVbM119O3JldHVybiBuLndpZHRoPW4ucmlnaHQtbi5sZWZ0LG4uaGVpZ2h0PW4uYm90dG9tLW4udG9wLG59LHIucHJvdG90eXBlLl9oYXNDcm9zc2VkVGhyZXNob2xkPWZ1bmN0aW9uKHQsZSl7dmFyIG49dCYmdC5pc0ludGVyc2VjdGluZz90LmludGVyc2VjdGlvblJhdGlvfHwwOi0xLHI9ZS5pc0ludGVyc2VjdGluZz9lLmludGVyc2VjdGlvblJhdGlvfHwwOi0xO2lmKG4hPT1yKWZvcih2YXIgaT0wO2k8dGhpcy50aHJlc2hvbGRzLmxlbmd0aDtpKyspe3ZhciBhPXRoaXMudGhyZXNob2xkc1tpXTtpZihhPT1ufHxhPT1yfHxhPG4hPT1hPHIpcmV0dXJuITB9fSxyLnByb3RvdHlwZS5fcm9vdElzSW5Eb209ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5yb290fHxsKHQsdGhpcy5yb290KX0sci5wcm90b3R5cGUuX3Jvb3RDb250YWluc1RhcmdldD1mdW5jdGlvbihlKXtyZXR1cm4gbCh0aGlzLnJvb3R8fHQsZSl9LHIucHJvdG90eXBlLl9yZWdpc3Rlckluc3RhbmNlPWZ1bmN0aW9uKCl7ZS5pbmRleE9mKHRoaXMpPDAmJmUucHVzaCh0aGlzKX0sci5wcm90b3R5cGUuX3VucmVnaXN0ZXJJbnN0YW5jZT1mdW5jdGlvbigpe3ZhciB0PWUuaW5kZXhPZih0aGlzKTstMSE9dCYmZS5zcGxpY2UodCwxKX0sd2luZG93LkludGVyc2VjdGlvbk9ic2VydmVyPXIsd2luZG93LkludGVyc2VjdGlvbk9ic2VydmVyRW50cnk9bn1mdW5jdGlvbiBuKHQpe3RoaXMudGltZT10LnRpbWUsdGhpcy50YXJnZXQ9dC50YXJnZXQsdGhpcy5yb290Qm91bmRzPXQucm9vdEJvdW5kcyx0aGlzLmJvdW5kaW5nQ2xpZW50UmVjdD10LmJvdW5kaW5nQ2xpZW50UmVjdCx0aGlzLmludGVyc2VjdGlvblJlY3Q9dC5pbnRlcnNlY3Rpb25SZWN0fHx1KCksdGhpcy5pc0ludGVyc2VjdGluZz0hIXQuaW50ZXJzZWN0aW9uUmVjdDt2YXIgZT10aGlzLmJvdW5kaW5nQ2xpZW50UmVjdCxuPWUud2lkdGgqZS5oZWlnaHQscj10aGlzLmludGVyc2VjdGlvblJlY3QsaT1yLndpZHRoKnIuaGVpZ2h0O3RoaXMuaW50ZXJzZWN0aW9uUmF0aW89bj9OdW1iZXIoKGkvbikudG9GaXhlZCg0KSk6dGhpcy5pc0ludGVyc2VjdGluZz8xOjB9ZnVuY3Rpb24gcih0LGUpe3ZhciBuPWV8fHt9O2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uIik7aWYobi5yb290JiYxIT1uLnJvb3Qubm9kZVR5cGUpdGhyb3cgbmV3IEVycm9yKCJyb290IG11c3QgYmUgYW4gRWxlbWVudCIpO3RoaXMuX2NoZWNrRm9ySW50ZXJzZWN0aW9ucz1mdW5jdGlvbih0LGUpe3ZhciBuPW51bGw7cmV0dXJuIGZ1bmN0aW9uKCl7bnx8KG49c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0KCksbj1udWxsfSksZSkpfX0odGhpcy5fY2hlY2tGb3JJbnRlcnNlY3Rpb25zLmJpbmQodGhpcyksdGhpcy5USFJPVFRMRV9USU1FT1VUKSx0aGlzLl9jYWxsYmFjaz10LHRoaXMuX29ic2VydmF0aW9uVGFyZ2V0cz1bXSx0aGlzLl9xdWV1ZWRFbnRyaWVzPVtdLHRoaXMuX3Jvb3RNYXJnaW5WYWx1ZXM9dGhpcy5fcGFyc2VSb290TWFyZ2luKG4ucm9vdE1hcmdpbiksdGhpcy50aHJlc2hvbGRzPXRoaXMuX2luaXRUaHJlc2hvbGRzKG4udGhyZXNob2xkKSx0aGlzLnJvb3Q9bi5yb290fHxudWxsLHRoaXMucm9vdE1hcmdpbj10aGlzLl9yb290TWFyZ2luVmFsdWVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWUrdC51bml0fSkpLmpvaW4oIiAiKX1mdW5jdGlvbiBpKCl7cmV0dXJuIHdpbmRvdy5wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93JiZwZXJmb3JtYW5jZS5ub3coKX1mdW5jdGlvbiBhKHQsZSxuLHIpeyJmdW5jdGlvbiI9PXR5cGVvZiB0LmFkZEV2ZW50TGlzdGVuZXI/dC5hZGRFdmVudExpc3RlbmVyKGUsbixyfHwhMSk6ImZ1bmN0aW9uIj09dHlwZW9mIHQuYXR0YWNoRXZlbnQmJnQuYXR0YWNoRXZlbnQoIm9uIitlLG4pfWZ1bmN0aW9uIG8odCxlLG4scil7ImZ1bmN0aW9uIj09dHlwZW9mIHQucmVtb3ZlRXZlbnRMaXN0ZW5lcj90LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxuLHJ8fCExKToiZnVuY3Rpb24iPT10eXBlb2YgdC5kZXRhdGNoRXZlbnQmJnQuZGV0YXRjaEV2ZW50KCJvbiIrZSxuKX1mdW5jdGlvbiBzKHQsZSl7dmFyIG49TWF0aC5tYXgodC50b3AsZS50b3ApLHI9TWF0aC5taW4odC5ib3R0b20sZS5ib3R0b20pLGk9TWF0aC5tYXgodC5sZWZ0LGUubGVmdCksYT1NYXRoLm1pbih0LnJpZ2h0LGUucmlnaHQpLG89YS1pLHM9ci1uO3JldHVybiBvPj0wJiZzPj0wJiZ7dG9wOm4sYm90dG9tOnIsbGVmdDppLHJpZ2h0OmEsd2lkdGg6byxoZWlnaHQ6c319ZnVuY3Rpb24gYyh0KXt2YXIgZTt0cnl7ZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNhdGNoKG4pe31yZXR1cm4gZT8oZS53aWR0aCYmZS5oZWlnaHR8fChlPXt0b3A6ZS50b3AscmlnaHQ6ZS5yaWdodCxib3R0b206ZS5ib3R0b20sbGVmdDplLmxlZnQsd2lkdGg6ZS5yaWdodC1lLmxlZnQsaGVpZ2h0OmUuYm90dG9tLWUudG9wfSksZSk6dSgpfWZ1bmN0aW9uIHUoKXtyZXR1cm57dG9wOjAsYm90dG9tOjAsbGVmdDowLHJpZ2h0OjAsd2lkdGg6MCxoZWlnaHQ6MH19ZnVuY3Rpb24gbCh0LGUpe3ZhciBuPWU7d2hpbGUobil7aWYobj09dClyZXR1cm4hMDtuPWYobil9cmV0dXJuITF9ZnVuY3Rpb24gZih0KXt2YXIgZT10LnBhcmVudE5vZGU7cmV0dXJuIGUmJjExPT1lLm5vZGVUeXBlJiZlLmhvc3Q/ZS5ob3N0OmUmJmUuYXNzaWduZWRTbG90P2UuYXNzaWduZWRTbG90LnBhcmVudE5vZGU6ZX19KSgpfSwiNWI4MCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbiB0KGUsbil7aWYobil7aWYoMD09PW4uaW5kZXhPZigiLyIpKXJldHVybiBufWVsc2V7aWYobj1lLDA9PT1uLmluZGV4T2YoIi8iKSlyZXR1cm4gbjt2YXIgcj1nZXRDdXJyZW50UGFnZXMoKTtlPXIubGVuZ3RoP3Jbci5sZW5ndGgtMV0uJHBhZ2Uucm91dGU6IiJ9aWYoMD09PW4uaW5kZXhPZigiLi8iKSlyZXR1cm4gdChlLG4uc3Vic3RyKDIpKTtmb3IodmFyIGk9bi5zcGxpdCgiLyIpLGE9aS5sZW5ndGgsbz0wO288YSYmIi4uIj09PWlbb107bysrKTtpLnNwbGljZSgwLG8pLG49aS5qb2luKCIvIik7dmFyIHM9ZS5sZW5ndGg+MD9lLnNwbGl0KCIvIik6W107cmV0dXJuIHMuc3BsaWNlKHMubGVuZ3RoLW8tMSxvKzEpLCIvIitzLmNvbmNhdChpKS5qb2luKCIvIil9LG4oImM5NzUiKSxuKCJhNDM0IiksbigiOTlhZiIpfSwiNWM1YyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuY2xlYXJTdG9yYWdlPXUsZS5jbGVhclN0b3JhZ2VTeW5jPWZ1bmN0aW9uKCl7dSgpfSxlLmdldFN0b3JhZ2U9cyxlLmdldFN0b3JhZ2VJbmZvPWwsZS5nZXRTdG9yYWdlSW5mb1N5bmM9ZnVuY3Rpb24oKXt2YXIgdD1sKCk7cmV0dXJuIGRlbGV0ZSB0LmVyck1zZyx0fSxlLmdldFN0b3JhZ2VTeW5jPWZ1bmN0aW9uKHQpe3ZhciBlPXMoe2tleTp0fSk7cmV0dXJuIGUuZGF0YX0sZS5yZW1vdmVTdG9yYWdlPWMsZS5yZW1vdmVTdG9yYWdlU3luYz1mdW5jdGlvbih0KXtjKHtrZXk6dH0pfSxlLnNldFN0b3JhZ2U9byxlLnNldFN0b3JhZ2VTeW5jPWZ1bmN0aW9uKHQsZSl7byh7a2V5OnQsZGF0YTplfSl9O3ZhciBpPXIobigiNTNjYSIpKTtuKCJjOTc1IiksbigiYjY0YiIpLG4oImFjMWYiKSxuKCIwMGI0IiksbigiZTljNCIpLG4oIjE0ZDkiKSxuKCJhOWUzIik7ZnVuY3Rpb24gYSh0KXt0cnl7dmFyIGU9InN0cmluZyI9PT10eXBlb2YgdD9KU09OLnBhcnNlKHQpOnQsbj1lLnR5cGU7aWYoWyJvYmplY3QiLCJzdHJpbmciLCJudW1iZXIiLCJib29sZWFuIiwidW5kZWZpbmVkIl0uaW5kZXhPZihuKT49MCl7dmFyIHI9T2JqZWN0LmtleXMoZSk7aWYoMj09PXIubGVuZ3RoJiYiZGF0YSJpbiBlKXtpZigoMCxpLmRlZmF1bHQpKGUuZGF0YSk9PT1uKXJldHVybiBlLmRhdGE7aWYoIm9iamVjdCI9PT1uJiYvXlxkezR9LVxkezJ9LVxkezJ9VFxkezJ9XDpcZHsyfVw6XGR7Mn1cLlxkezN9WiQvLnRlc3QoZS5kYXRhKSlyZXR1cm4gbmV3IERhdGUoZS5kYXRhKX1lbHNlIGlmKDE9PT1yLmxlbmd0aClyZXR1cm4iIn19Y2F0Y2goYSl7fX1mdW5jdGlvbiBvKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LGU9dC5rZXksbj10LmRhdGEscj0oMCxpLmRlZmF1bHQpKG4pLGE9InN0cmluZyI9PT1yP246SlNPTi5zdHJpbmdpZnkoe3R5cGU6cixkYXRhOm59KTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oZSxhKX1jYXRjaChvKXtyZXR1cm57ZXJyTXNnOiJzZXRTdG9yYWdlOmZhaWwgIi5jb25jYXQobyl9fXJldHVybntlcnJNc2c6InNldFN0b3JhZ2U6b2sifX1mdW5jdGlvbiBzKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LGU9dC5rZXksbj1sb2NhbFN0b3JhZ2UmJmxvY2FsU3RvcmFnZS5nZXRJdGVtKGUpO2lmKCJzdHJpbmciIT09dHlwZW9mIG4pcmV0dXJue2RhdGE6IiIsZXJyTXNnOiJnZXRTdG9yYWdlOmZhaWwifTt2YXIgcj1uO3RyeXt2YXIgaT1KU09OLnBhcnNlKG4pLG89YShpKTt2b2lkIDAhPT1vJiYocj1vKX1jYXRjaChzKXt9cmV0dXJue2RhdGE6cixlcnJNc2c6ImdldFN0b3JhZ2U6b2sifX1mdW5jdGlvbiBjKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LGU9dC5rZXk7cmV0dXJuIGxvY2FsU3RvcmFnZSYmbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZSkse2Vyck1zZzoicmVtb3ZlU3RvcmFnZTpvayJ9fWZ1bmN0aW9uIHUoKXtyZXR1cm4gbG9jYWxTdG9yYWdlJiZsb2NhbFN0b3JhZ2UuY2xlYXIoKSx7ZXJyTXNnOiJjbGVhclN0b3JhZ2U6b2sifX1mdW5jdGlvbiBsKCl7Zm9yKHZhciB0PWxvY2FsU3RvcmFnZSYmbG9jYWxTdG9yYWdlLmxlbmd0aHx8MCxlPVtdLG49MCxyPTA7cjx0O3IrKyl7dmFyIGk9bG9jYWxTdG9yYWdlLmtleShyKSxhPWxvY2FsU3RvcmFnZS5nZXRJdGVtKGkpO24rPWkubGVuZ3RoK2EubGVuZ3RoLCJ1bmktc3RvcmFnZS1rZXlzIiE9PWkmJmUucHVzaChpKX1yZXR1cm57a2V5czplLGN1cnJlbnRTaXplOk1hdGguY2VpbCgyKm4vMTAyNCksbGltaXRTaXplOk51bWJlci5NQVhfVkFMVUUsZXJyTXNnOiJnZXRTdG9yYWdlSW5mbzpvayJ9fX0sIjVjNmMiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fX0sIjVjYzYiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI3NGU4Iik7cigiVWludDgiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0KHRoaXMsZSxuLHIpfX0pKX0sIjVkMGUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgaT1yKG4oIjI5MDkiKSk7bigiZmI2YSIpLG4oImQ4MWQiKSxuKCJkM2I3IiksbigiMTRkOSIpLG4oImM5NzUiKSxuKCJhYzFmIiksbigiMDBiNCIpLG4oIjE1OWIiKSxuKCI1MzE5IiksbigiOTlhZiIpLG4oIjNjNjUiKSxuKCJhY2U0IiksbigiOGE1OSIpLG4oIjkwN2EiKSxuKCI5YThjIiksbigiYTk3NSIpLG4oIjczNWUiKSxuKCJjMWFjIiksbigiZDEzOSIpLG4oIjNhN2IiKSxuKCI5ODZhIiksbigiMWQwMiIpLG4oImQ1ZDYiKSxuKCI4MmY4IiksbigiZTkxZiIpLG4oIjYwYmQiKSxuKCI1Zjk2IiksbigiMzI4MCIpLG4oIjNmY2MiKSxuKCJjYTkxIiksbigiMjVhMSIpLG4oImNkMjYiKSxuKCIzYzVkIiksbigiMjk1NCIpLG4oIjY0OWUiKSxuKCIyMTljIiksbigiYjM5YSIpLG4oIjcyZjciKTt2YXIgYSxvPW4oIjk4N2QiKSxzPW4oImI5OWYiKSxjPXIobigiNzA0MSIpKSx1PW4oImIyODYiKTtmdW5jdGlvbiBsKHQpe3JldHVybiB0PXQuc2xpY2UoMCksdFszXT10WzNdLzI1NSwicmdiYSgiK3Quam9pbigiLCIpKyIpIn1mdW5jdGlvbiBmKHQsZSl7cmV0dXJuW10ubWFwLmNhbGwoZSwoZnVuY3Rpb24oZSl7dmFyIG49dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57aWRlbnRpZmllcjplLmlkZW50aWZpZXIseDplLmNsaWVudFgtbi5sZWZ0LHk6ZS5jbGllbnRZLW4udG9wfX0pKX1mdW5jdGlvbiBkKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDtyZXR1cm4gYXx8KGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikpLGEud2lkdGg9dCxhLmhlaWdodD1lLGF9dmFyIGg9e25hbWU6IkNhbnZhcyIsbWl4aW5zOltvLnN1YnNjcmliZXJdLHByb3BzOntjYW52YXNJZDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sZGlzYWJsZVNjcm9sbDp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LGhpZHBpOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57YWN0aW9uc1dhaXRpbmc6ITF9fSxjb21wdXRlZDp7aWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW52YXNJZH0sX2xpc3RlbmVyczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1PYmplY3QuYXNzaWduKHt9LHRoaXMuJGxpc3RlbmVycyk7cmV0dXJuWyJ0b3VjaHN0YXJ0IiwidG91Y2htb3ZlIiwidG91Y2hlbmQiXS5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgcj1lW25dLGk9W107ciYmaS5wdXNoKChmdW5jdGlvbihlKXt0LiR0cmlnZ2VyKG4sT2JqZWN0LmFzc2lnbih7fSxlLHt0b3VjaGVzOmYoZS5jdXJyZW50VGFyZ2V0LGUudG91Y2hlcyksY2hhbmdlZFRvdWNoZXM6ZihlLmN1cnJlbnRUYXJnZXQsZS5jaGFuZ2VkVG91Y2hlcyl9KSl9KSksdC5kaXNhYmxlU2Nyb2xsJiYidG91Y2htb3ZlIj09PW4mJmkucHVzaCh0Ll90b3VjaG1vdmUpLGVbbl09aX0pKSxlfSxwaXhlbFJhdGlvOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGlkcGk/cy5waXhlbFJhdGlvOjF9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5fYWN0aW9uc0RlZmVyPVtdLHRoaXMuX2ltYWdlcz17fX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuX3Jlc2l6ZSgpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcmVmcy5jYW52YXM7dC5oZWlnaHQ9dC53aWR0aD0wfSxtZXRob2RzOntfaGFuZGxlU3Vic2NyaWJlOmZ1bmN0aW9uKHQpe3ZhciBlPXQudHlwZSxuPXQuZGF0YSxyPXZvaWQgMD09PW4/e306bixpPXRoaXNbZV07MCE9PWUuaW5kZXhPZigiXyIpJiYiZnVuY3Rpb24iPT09dHlwZW9mIGkmJmkocil9LF9yZXNpemU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kcmVmcy5jYW52YXMsbj0hdHx8ZS53aWR0aCE9PU1hdGguZmxvb3IodC53aWR0aCp0aGlzLnBpeGVsUmF0aW8pfHxlLmhlaWdodCE9PU1hdGguZmxvb3IodC5oZWlnaHQqdGhpcy5waXhlbFJhdGlvKTtpZihuKWlmKGUud2lkdGg+MCYmZS5oZWlnaHQ+MCl7dmFyIHI9ZS5nZXRDb250ZXh0KCIyZCIpLGk9ci5nZXRJbWFnZURhdGEoMCwwLGUud2lkdGgsZS5oZWlnaHQpOygwLHMud3JhcHBlcikoZSx0aGlzLmhpZHBpKSxyLnB1dEltYWdlRGF0YShpLDAsMCl9ZWxzZSgwLHMud3JhcHBlcikoZSx0aGlzLmhpZHBpKX0sX3RvdWNobW92ZTpmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCl9LGFjdGlvbnNDaGFuZ2VkOmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscj1lLmFjdGlvbnMsYT1lLnJlc2VydmUsbz1lLmNhbGxiYWNrSWQscz10aGlzO2lmKHIpaWYodGhpcy5hY3Rpb25zV2FpdGluZyl0aGlzLl9hY3Rpb25zRGVmZXIucHVzaChbcixhLG9dKTtlbHNle3ZhciBjPXRoaXMuJHJlZnMuY2FudmFzLHU9Yy5nZXRDb250ZXh0KCIyZCIpO2F8fCh1LmZpbGxTdHlsZT0iIzAwMDAwMCIsdS5zdHJva2VTdHlsZT0iIzAwMDAwMCIsdS5zaGFkb3dDb2xvcj0iIzAwMDAwMCIsdS5zaGFkb3dCbHVyPTAsdS5zaGFkb3dPZmZzZXRYPTAsdS5zaGFkb3dPZmZzZXRZPTAsdS5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLHUuY2xlYXJSZWN0KDAsMCxjLndpZHRoLGMuaGVpZ2h0KSksdGhpcy5wcmVsb2FkSW1hZ2Uocik7Zm9yKHZhciBmPWZ1bmN0aW9uKHQpe3ZhciBlPXJbdF0sYT1lLm1ldGhvZCxjPWUuZGF0YTtpZigvXnNldC8udGVzdChhKSYmInNldFRyYW5zZm9ybSIhPT1hKXt2YXIgZixkPWFbM10udG9Mb3dlckNhc2UoKSthLnNsaWNlKDQpO2lmKCJmaWxsU3R5bGUiPT09ZHx8InN0cm9rZVN0eWxlIj09PWQpe2lmKCJub3JtYWwiPT09Y1swXSlmPWwoY1sxXSk7ZWxzZSBpZigibGluZWFyIj09PWNbMF0pe3ZhciB2PXUuY3JlYXRlTGluZWFyR3JhZGllbnQuYXBwbHkodSwoMCxpLmRlZmF1bHQpKGNbMV0pKTtjWzJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0sbj1sKHRbMV0pO3YuYWRkQ29sb3JTdG9wKGUsbil9KSksZj12fWVsc2UgaWYoInJhZGlhbCI9PT1jWzBdKXt2YXIgZz1jWzFdWzBdLG09Y1sxXVsxXSxiPWNbMV1bMl0seT11LmNyZWF0ZVJhZGlhbEdyYWRpZW50KGcsbSwwLGcsbSxiKTtjWzJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0sbj1sKHRbMV0pO3kuYWRkQ29sb3JTdG9wKGUsbil9KSksZj15fWVsc2UgaWYoInBhdHRlcm4iPT09Y1swXSl7dmFyIF89bi5jaGVja0ltYWdlTG9hZGVkKGNbMV0sci5zbGljZSh0KzEpLG8sKGZ1bmN0aW9uKHQpe3QmJih1W2RdPXUuY3JlYXRlUGF0dGVybih0LGNbMl0pKX0pKTtyZXR1cm4gXz8iY29udGludWUiOiJicmVhayJ9dVtkXT1mfWVsc2UgaWYoImdsb2JhbEFscGhhIj09PWQpdVtkXT1jWzBdLzI1NTtlbHNlIGlmKCJzaGFkb3ciPT09ZCloPVsic2hhZG93T2Zmc2V0WCIsInNoYWRvd09mZnNldFkiLCJzaGFkb3dCbHVyIiwic2hhZG93Q29sb3IiXSxjLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dVtoW2VdXT0ic2hhZG93Q29sb3IiPT09aFtlXT9sKHQpOnR9KSk7ZWxzZSBpZigiZm9udFNpemUiPT09ZCl7dmFyIHc9dS5fX2ZvbnRfX3x8dS5mb250O3UuX19mb250X189dS5mb250PXcucmVwbGFjZSgvXGQrXC4/XGQqcHgvLGNbMF0rInB4Iil9ZWxzZSJsaW5lRGFzaCI9PT1kPyh1LnNldExpbmVEYXNoKGNbMF0pLHUubGluZURhc2hPZmZzZXQ9Y1sxXXx8MCk6InRleHRCYXNlbGluZSI9PT1kPygibm9ybWFsIj09PWNbMF0mJihjWzBdPSJhbHBoYWJldGljIiksdVtkXT1jWzBdKToiZm9udCI9PT1kP3UuX19mb250X189dS5mb250PWNbMF06dVtkXT1jWzBdfWVsc2UgaWYoImZpbGxQYXRoIj09PWF8fCJzdHJva2VQYXRoIj09PWEpYT1hLnJlcGxhY2UoL1BhdGgvLCIiKSx1LmJlZ2luUGF0aCgpLGMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dVt0Lm1ldGhvZF0uYXBwbHkodSx0LmRhdGEpfSkpLHVbYV0oKTtlbHNlIGlmKCJmaWxsVGV4dCI9PT1hKXUuZmlsbFRleHQuYXBwbHkodSxjKTtlbHNlIGlmKCJkcmF3SW1hZ2UiPT09YSl7aWYocD1mdW5jdGlvbigpe3ZhciBlPSgwLGkuZGVmYXVsdCkoYyksbj1lWzBdLGE9ZS5zbGljZSgxKTtpZihzLl9pbWFnZXM9cy5faW1hZ2VzfHx7fSwhcy5jaGVja0ltYWdlTG9hZGVkKG4sci5zbGljZSh0KzEpLG8sKGZ1bmN0aW9uKHQpe3QmJnUuZHJhd0ltYWdlLmFwcGx5KHUsW3RdLmNvbmNhdCgoMCxpLmRlZmF1bHQpKGEuc2xpY2UoNCw4KSksKDAsaS5kZWZhdWx0KShhLnNsaWNlKDAsNCkpKSl9KSkpcmV0dXJuImJyZWFrIn0oKSwiYnJlYWsiPT09cClyZXR1cm4iYnJlYWsifWVsc2UiY2xpcCI9PT1hPyhjLmZvckVhY2goKGZ1bmN0aW9uKHQpe3VbdC5tZXRob2RdLmFwcGx5KHUsdC5kYXRhKX0pKSx1LmNsaXAoKSk6dVthXS5hcHBseSh1LGMpfSxkPTA7ZDxyLmxlbmd0aDtkKyspe3ZhciBoLHAsdj1mKGQpO2lmKCJicmVhayI9PT12KWJyZWFrfSF0aGlzLmFjdGlvbnNXYWl0aW5nJiZvJiZ0LnB1Ymxpc2hIYW5kbGVyKCJvbkNhbnZhc01ldGhvZENhbGxiYWNrIix7Y2FsbGJhY2tJZDpvLGRhdGE6e2Vyck1zZzoiZHJhd0NhbnZhczpvayJ9fSx0aGlzLiRwYWdlLmlkKX19LHByZWxvYWRJbWFnZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG49dC5tZXRob2Qscj10LmRhdGEsaT0iIjsiZHJhd0ltYWdlIj09PW4/KGk9clswXSxpPWUuJGdldFJlYWxQYXRoKGkpLHJbMF09aSk6InNldEZpbGxTdHlsZSI9PT1uJiYicGF0dGVybiI9PT1yWzBdJiYoaT1yWzFdLGk9ZS4kZ2V0UmVhbFBhdGgoaSksclsxXT1pKSxpJiYhZS5faW1hZ2VzW2ldJiZmdW5jdGlvbigpe3ZhciB0PWUuX2ltYWdlc1tpXT1uZXcgSW1hZ2U7dC5vbmxvYWQ9ZnVuY3Rpb24oKXt0LnJlYWR5PSEwfSwhMTsoMCx1LmdldFNhbWVPcmlnaW5VcmwpKGkpLnRoZW4oKGZ1bmN0aW9uKGUpe3Quc3JjPWV9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7dC5zcmM9aX0pKX0oKX0pKX0sY2hlY2tJbWFnZUxvYWRlZDpmdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLGE9dGhpcy5faW1hZ2VzW3RdO3JldHVybiBhLnJlYWR5PyhyKGEpLCEwKToodGhpcy5fYWN0aW9uc0RlZmVyLnVuc2hpZnQoW2UsITBdKSx0aGlzLmFjdGlvbnNXYWl0aW5nPSEwLGEub25sb2FkPWZ1bmN0aW9uKCl7YS5yZWFkeT0hMCxyKGEpLGkuYWN0aW9uc1dhaXRpbmc9ITE7dmFyIHQ9aS5fYWN0aW9uc0RlZmVyLnNsaWNlKDApO2kuX2FjdGlvbnNEZWZlcj1bXTtmb3IodmFyIGU9dC5zaGlmdCgpO2U7KWkuYWN0aW9uc0NoYW5nZWQoe2FjdGlvbnM6ZVswXSxyZXNlcnZlOmVbMV0sY2FsbGJhY2tJZDpufSksZT10LnNoaWZ0KCl9LCExKX0sZ2V0SW1hZ2VEYXRhOmZ1bmN0aW9uKGUpe3ZhciBuLHI9ZS54LGk9dm9pZCAwPT09cj8wOnIsYT1lLnksbz12b2lkIDA9PT1hPzA6YSxzPWUud2lkdGgsYz1lLmhlaWdodCx1PWUuZGVzdFdpZHRoLGw9ZS5kZXN0SGVpZ2h0LGY9ZS5oaWRwaSxoPXZvaWQgMD09PWZ8fGYscD1lLmRhdGFUeXBlLHY9ZS5xdWFsaXR5LGc9dm9pZCAwPT09dj8xOnYsbT1lLnR5cGUsYj12b2lkIDA9PT1tPyJwbmciOm0seT1lLmNhbGxiYWNrSWQsXz10aGlzLiRyZWZzLmNhbnZhcyx3PV8ub2Zmc2V0V2lkdGgtaTtzPXM/TWF0aC5taW4ocyx3KTp3O3ZhciB4PV8ub2Zmc2V0SGVpZ2h0LW87Yz1jP01hdGgubWluKGMseCk6eCxoPyh1PXMsbD1jKTp1fHxsP3U/bHx8KGw9TWF0aC5yb3VuZChjL3MqdSkpOnU9TWF0aC5yb3VuZChzL2MqbCk6KHU9TWF0aC5yb3VuZChzKnRoaXMucGl4ZWxSYXRpbyksbD1NYXRoLnJvdW5kKGMqdGhpcy5waXhlbFJhdGlvKSk7dmFyIFMsVD1kKHUsbCksQz1ULmdldENvbnRleHQoIjJkIik7ImpwZWciIT09YiYmImpwZyIhPT1ifHwoYj0ianBlZyIsQy5maWxsU3R5bGU9IiNmZmYiLEMuZmlsbFJlY3QoMCwwLHUsbCkpLEMuX19oaWRwaV9fPSEwLEMuZHJhd0ltYWdlQnlDYW52YXMoXyxpLG8scyxjLDAsMCx1LGwsITEpO3RyeXtpZigiYmFzZTY0Ij09PXApbj1ULnRvRGF0YVVSTCgiaW1hZ2UvIi5jb25jYXQoYiksZyk7ZWxzZXt2YXIgaz1DLmdldEltYWdlRGF0YSgwLDAsdSxsKTtuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGsuZGF0YSl9Uz17ZXJyTXNnOiJjYW52YXNHZXRJbWFnZURhdGE6b2siLGRhdGE6bixjb21wcmVzc2VkOnZvaWQgMCx3aWR0aDp1LGhlaWdodDpsfX1jYXRjaChPKXtTPXtlcnJNc2c6ImNhbnZhc0dldEltYWdlRGF0YTpmYWlsICIuY29uY2F0KE8pfX1pZihULmhlaWdodD1ULndpZHRoPTAsQy5fX2hpZHBpX189ITEsIXkpcmV0dXJuIFM7dC5wdWJsaXNoSGFuZGxlcigib25DYW52YXNNZXRob2RDYWxsYmFjayIse2NhbGxiYWNrSWQ6eSxkYXRhOlN9LHRoaXMuJHBhZ2UuaWQpfSxwdXRJbWFnZURhdGE6ZnVuY3Rpb24oZSl7dmFyIG49ZS5kYXRhLHI9ZS54LGk9ZS55LGE9ZS53aWR0aCxvPWUuaGVpZ2h0LHM9KGUuY29tcHJlc3NlZCxlLmNhbGxiYWNrSWQpO3RyeXtvfHwobz1NYXRoLnJvdW5kKG4ubGVuZ3RoLzQvYSkpO3ZhciBjPWQoYSxvKSx1PWMuZ2V0Q29udGV4dCgiMmQiKTt1LnB1dEltYWdlRGF0YShuZXcgSW1hZ2VEYXRhKG5ldyBVaW50OENsYW1wZWRBcnJheShuKSxhLG8pLDAsMCksdGhpcy4kcmVmcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoYyxyLGksYSxvKSxjLmhlaWdodD1jLndpZHRoPTB9Y2F0Y2gobCl7cmV0dXJuIHZvaWQgdC5wdWJsaXNoSGFuZGxlcigib25DYW52YXNNZXRob2RDYWxsYmFjayIse2NhbGxiYWNrSWQ6cyxkYXRhOntlcnJNc2c6ImNhbnZhc1B1dEltYWdlRGF0YTpmYWlsIn19LHRoaXMuJHBhZ2UuaWQpfXQucHVibGlzaEhhbmRsZXIoIm9uQ2FudmFzTWV0aG9kQ2FsbGJhY2siLHtjYWxsYmFja0lkOnMsZGF0YTp7ZXJyTXNnOiJjYW52YXNQdXRJbWFnZURhdGE6b2sifX0sdGhpcy4kcGFnZS5pZCl9LHRvVGVtcEZpbGVQYXRoOmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscj1lLngsaT12b2lkIDA9PT1yPzA6cixhPWUueSxvPXZvaWQgMD09PWE/MDphLHM9ZS53aWR0aCx1PWUuaGVpZ2h0LGw9ZS5kZXN0V2lkdGgsZj1lLmRlc3RIZWlnaHQsZD1lLmZpbGVUeXBlLGg9ZS5xdWFsaXR5LHA9ZS5kaXJuYW1lLHY9ZS5jYWxsYmFja0lkLGc9dGhpcy5nZXRJbWFnZURhdGEoe3g6aSx5Om8sd2lkdGg6cyxoZWlnaHQ6dSxkZXN0V2lkdGg6bCxkZXN0SGVpZ2h0OmYsaGlkcGk6ITEsZGF0YVR5cGU6ImJhc2U2NCIsdHlwZTpkLHF1YWxpdHk6aH0pO2cuZGF0YSYmZy5kYXRhLmxlbmd0aD8oMCxjLmRlZmF1bHQpKGcuZGF0YSxwLChmdW5jdGlvbihlLHIpe3ZhciBpPSJ0b1RlbXBGaWxlUGF0aDoiLmNvbmNhdChlPyJmYWlsIjoib2siKTtlJiYoaSs9IiAiLmNvbmNhdChlLm1lc3NhZ2UpKSx0LnB1Ymxpc2hIYW5kbGVyKCJvbkNhbnZhc01ldGhvZENhbGxiYWNrIix7Y2FsbGJhY2tJZDp2LGRhdGE6e2Vyck1zZzppLHRlbXBGaWxlUGF0aDpyfX0sbi4kcGFnZS5pZCl9KSk6dC5wdWJsaXNoSGFuZGxlcigib25DYW52YXNNZXRob2RDYWxsYmFjayIse2NhbGxiYWNrSWQ6dixkYXRhOntlcnJNc2c6Zy5lcnJNc2cucmVwbGFjZSgiY2FudmFzUHV0SW1hZ2VEYXRhIiwidG9UZW1wRmlsZVBhdGgiKX19LHRoaXMuJHBhZ2UuaWQpfX19O2UuZGVmYXVsdD1ofSkuY2FsbCh0aGlzLG4oImM1YzMiKSl9LCI1ZGFmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKSxuLmQoZSwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksbi5kKGUsImEiLChmdW5jdGlvbigpe30pKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuJGNyZWF0ZUVsZW1lbnQ7dGhpcy5fc2VsZi5fYztyZXR1cm4gdGhpcy5fbSgwKX0saT1bZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRjcmVhdGVFbGVtZW50LGU9dGhpcy5fc2VsZi5fY3x8dDtyZXR1cm4gZSgiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1hc3luYy1sb2FkaW5nIn0sW2UoImkiLHtzdGF0aWNDbGFzczoidW5pLWxvYWRpbmcifSldKX1dfSwiNWUxMyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJiNjRiIiksbigiMTRkOSIpLG4oIjRkZTQiKSxuKCJhNDM0IiksbigiOTlhZiIpO3ZhciBpPXIobigiZDRlYyIpKSxhPXIobigiYmVlMiIpKSxvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3ZhciByPXRoaXM7KDAsaS5kZWZhdWx0KSh0aGlzLHQpLHRoaXMuaWQ9ZSx0aGlzLmxpc3RlbmVyPXt9LHRoaXMuZW1pdENhY2hlPXt9LG4mJk9iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Iub24odCxuW3RdKX0pKX1yZXR1cm4oMCxhLmRlZmF1bHQpKHQsW3trZXk6ImVtaXQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGU+MT9lLTE6MCkscj0xO3I8ZTtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTt2YXIgaT10aGlzLmxpc3RlbmVyW3RdO2lmKCFpKXJldHVybih0aGlzLmVtaXRDYWNoZVt0XXx8KHRoaXMuZW1pdENhY2hlW3RdPVtdKSkucHVzaChuKTtpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuZm4uYXBwbHkodC5mbixuKX0pKSx0aGlzLmxpc3RlbmVyW3RdPWkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4ib25jZSIhPT10LnR5cGV9KSl9fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLl9hZGRMaXN0ZW5lcih0LCJvbiIsZSksdGhpcy5fY2xlYXJDYWNoZSh0KX19LHtrZXk6Im9uY2UiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dGhpcy5fYWRkTGlzdGVuZXIodCwib25jZSIsZSksdGhpcy5fY2xlYXJDYWNoZSh0KX19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmxpc3RlbmVyW3RdO2lmKG4paWYoZSlmb3IodmFyIHI9MDtyPG4ubGVuZ3RoOyluW3JdLmZuPT09ZSYmKG4uc3BsaWNlKHIsMSksci0tKSxyKys7ZWxzZSBkZWxldGUgdGhpcy5saXN0ZW5lclt0XX19LHtrZXk6Il9jbGVhckNhY2hlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmVtaXRDYWNoZVt0XTtpZihlKWZvcig7ZS5sZW5ndGg+MDspdGhpcy5lbWl0LmFwcGx5KHRoaXMsW3RdLmNvbmNhdChlLnNoaWZ0KCkpKX19LHtrZXk6Il9hZGRMaXN0ZW5lciIsdmFsdWU6ZnVuY3Rpb24odCxlLG4peyh0aGlzLmxpc3RlbmVyW3RdfHwodGhpcy5saXN0ZW5lclt0XT1bXSkpLnB1c2goe2ZuOm4sdHlwZTplfSl9fV0pLHR9KCk7ZS5kZWZhdWx0PW99LCI1ZTc3IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiMWEyZCIpLGE9RnVuY3Rpb24ucHJvdG90eXBlLG89ciYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixzPWkoYSwibmFtZSIpLGM9cyYmInNvbWV0aGluZyI9PT1mdW5jdGlvbigpe30ubmFtZSx1PXMmJighcnx8ciYmbyhhLCJuYW1lIikuY29uZmlndXJhYmxlKTt0LmV4cG9ydHM9e0VYSVNUUzpzLFBST1BFUjpjLENPTkZJR1VSQUJMRTp1fX0sIjVlN2UiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsaSxhLG89bigiMjNlNyIpLHM9bigiYzQzMCIpLGM9bigiNjA1ZCIpLHU9bigiZGE4NCIpLGw9bigiYzY1YiIpLGY9bigiY2IyZCIpLGQ9bigiZDJiYiIpLGg9bigiZDQ0ZSIpLHA9bigiMjYyNiIpLHY9bigiNTllZCIpLGc9bigiMTYyNiIpLG09bigiODYxZCIpLGI9bigiMTlhYSIpLHk9bigiNDg0MCIpLF89bigiMmNmNCIpLnNldCx3PW4oImI1NzUiKSx4PW4oIjQ0ZGUiKSxTPW4oImU2NjciKSxUPW4oIjAxYjQiKSxDPW4oIjY5ZjMiKSxrPW4oImQyNTYiKSxPPW4oIjQ3MzgiKSxFPW4oImYwNjkiKSxJPU8uQ09OU1RSVUNUT1IsUD1PLlJFSkVDVElPTl9FVkVOVCxNPU8uU1VCQ0xBU1NJTkcsQT1DLmdldHRlckZvcigiUHJvbWlzZSIpLCQ9Qy5zZXQsTD1rJiZrLnByb3RvdHlwZSxqPWssUj1MLE49dS5UeXBlRXJyb3IsQj11LmRvY3VtZW50LEQ9dS5wcm9jZXNzLEY9RS5mLFc9RixIPSEhKEImJkIuY3JlYXRlRXZlbnQmJnUuZGlzcGF0Y2hFdmVudCksVj1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4hKCFtKHQpfHwhZyhlPXQudGhlbikpJiZlfSxVPWZ1bmN0aW9uKHQsZSl7dmFyIG4scixpLGE9ZS52YWx1ZSxvPTE9PWUuc3RhdGUscz1vP3Qub2s6dC5mYWlsLGM9dC5yZXNvbHZlLHU9dC5yZWplY3QsZj10LmRvbWFpbjt0cnl7cz8ob3x8KDI9PT1lLnJlamVjdGlvbiYmRyhlKSxlLnJlamVjdGlvbj0xKSwhMD09PXM/bj1hOihmJiZmLmVudGVyKCksbj1zKGEpLGYmJihmLmV4aXQoKSxpPSEwKSksbj09PXQucHJvbWlzZT91KE4oIlByb21pc2UtY2hhaW4gY3ljbGUiKSk6KHI9VihuKSk/bChyLG4sYyx1KTpjKG4pKTp1KGEpfWNhdGNoKGQpe2YmJiFpJiZmLmV4aXQoKSx1KGQpfX0scT1mdW5jdGlvbih0LGUpe3Qubm90aWZpZWR8fCh0Lm5vdGlmaWVkPSEwLHcoKGZ1bmN0aW9uKCl7dmFyIG4scj10LnJlYWN0aW9uczt3aGlsZShuPXIuZ2V0KCkpVShuLHQpO3Qubm90aWZpZWQ9ITEsZSYmIXQucmVqZWN0aW9uJiZZKHQpfSkpKX0sej1mdW5jdGlvbih0LGUsbil7dmFyIHIsaTtIPyhyPUIuY3JlYXRlRXZlbnQoIkV2ZW50Iiksci5wcm9taXNlPWUsci5yZWFzb249bixyLmluaXRFdmVudCh0LCExLCEwKSx1LmRpc3BhdGNoRXZlbnQocikpOnI9e3Byb21pc2U6ZSxyZWFzb246bn0sIVAmJihpPXVbIm9uIit0XSk/aShyKToidW5oYW5kbGVkcmVqZWN0aW9uIj09PXQmJngoIlVuaGFuZGxlZCBwcm9taXNlIHJlamVjdGlvbiIsbil9LFk9ZnVuY3Rpb24odCl7bChfLHUsKGZ1bmN0aW9uKCl7dmFyIGUsbj10LmZhY2FkZSxyPXQudmFsdWUsaT1YKHQpO2lmKGkmJihlPVMoKGZ1bmN0aW9uKCl7Yz9ELmVtaXQoInVuaGFuZGxlZFJlamVjdGlvbiIscixuKTp6KCJ1bmhhbmRsZWRyZWplY3Rpb24iLG4scil9KSksdC5yZWplY3Rpb249Y3x8WCh0KT8yOjEsZS5lcnJvcikpdGhyb3cgZS52YWx1ZX0pKX0sWD1mdW5jdGlvbih0KXtyZXR1cm4gMSE9PXQucmVqZWN0aW9uJiYhdC5wYXJlbnR9LEc9ZnVuY3Rpb24odCl7bChfLHUsKGZ1bmN0aW9uKCl7dmFyIGU9dC5mYWNhZGU7Yz9ELmVtaXQoInJlamVjdGlvbkhhbmRsZWQiLGUpOnooInJlamVjdGlvbmhhbmRsZWQiLGUsdC52YWx1ZSl9KSl9LFE9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBmdW5jdGlvbihyKXt0KGUscixuKX19LEo9ZnVuY3Rpb24odCxlLG4pe3QuZG9uZXx8KHQuZG9uZT0hMCxuJiYodD1uKSx0LnZhbHVlPWUsdC5zdGF0ZT0yLHEodCwhMCkpfSxLPWZ1bmN0aW9uKHQsZSxuKXtpZighdC5kb25lKXt0LmRvbmU9ITAsbiYmKHQ9bik7dHJ5e2lmKHQuZmFjYWRlPT09ZSl0aHJvdyBOKCJQcm9taXNlIGNhbid0IGJlIHJlc29sdmVkIGl0c2VsZiIpO3ZhciByPVYoZSk7cj93KChmdW5jdGlvbigpe3ZhciBuPXtkb25lOiExfTt0cnl7bChyLGUsUShLLG4sdCksUShKLG4sdCkpfWNhdGNoKGkpe0oobixpLHQpfX0pKToodC52YWx1ZT1lLHQuc3RhdGU9MSxxKHQsITEpKX1jYXRjaChpKXtKKHtkb25lOiExfSxpLHQpfX19O2lmKEkmJihqPWZ1bmN0aW9uKHQpe2IodGhpcyxSKSx2KHQpLGwocix0aGlzKTt2YXIgZT1BKHRoaXMpO3RyeXt0KFEoSyxlKSxRKEosZSkpfWNhdGNoKG4pe0ooZSxuKX19LFI9ai5wcm90b3R5cGUscj1mdW5jdGlvbih0KXskKHRoaXMse3R5cGU6IlByb21pc2UiLGRvbmU6ITEsbm90aWZpZWQ6ITEscGFyZW50OiExLHJlYWN0aW9uczpuZXcgVCxyZWplY3Rpb246ITEsc3RhdGU6MCx2YWx1ZTp2b2lkIDB9KX0sci5wcm90b3R5cGU9ZihSLCJ0aGVuIiwoZnVuY3Rpb24odCxlKXt2YXIgbj1BKHRoaXMpLHI9Rih5KHRoaXMsaikpO3JldHVybiBuLnBhcmVudD0hMCxyLm9rPSFnKHQpfHx0LHIuZmFpbD1nKGUpJiZlLHIuZG9tYWluPWM/RC5kb21haW46dm9pZCAwLDA9PW4uc3RhdGU/bi5yZWFjdGlvbnMuYWRkKHIpOncoKGZ1bmN0aW9uKCl7VShyLG4pfSkpLHIucHJvbWlzZX0pKSxpPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHIsZT1BKHQpO3RoaXMucHJvbWlzZT10LHRoaXMucmVzb2x2ZT1RKEssZSksdGhpcy5yZWplY3Q9UShKLGUpfSxFLmY9Rj1mdW5jdGlvbih0KXtyZXR1cm4gdD09PWp8fHZvaWQgMD09PXQ/bmV3IGkodCk6Vyh0KX0sIXMmJmcoaykmJkwhPT1PYmplY3QucHJvdG90eXBlKSl7YT1MLnRoZW4sTXx8ZihMLCJ0aGVuIiwoZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiBuZXcgaigoZnVuY3Rpb24odCxlKXtsKGEsbix0LGUpfSkpLnRoZW4odCxlKX0pLHt1bnNhZmU6ITB9KTt0cnl7ZGVsZXRlIEwuY29uc3RydWN0b3J9Y2F0Y2goWil7fWQmJmQoTCxSKX1vKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsd3JhcDohMCxmb3JjZWQ6SX0se1Byb21pc2U6an0pLGgoaiwiUHJvbWlzZSIsITEsITApLHAoIlByb21pc2UiKX0sIjVlZWQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMjU2IiksaT1uKCIxYzdlIiksYT1uKCI0NzM4IikuQ09OU1RSVUNUT1I7dC5leHBvcnRzPWF8fCFpKChmdW5jdGlvbih0KXtyLmFsbCh0KS50aGVuKHZvaWQgMCwoZnVuY3Rpb24oKXt9KSl9KSl9LCI1ZWVlIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS4kb25jZT1lLiRvbj1lLiRvZmY9ZS4kZW1pdD12b2lkIDA7dmFyIHI9W3tuYW1lOiJldmVudCIsdHlwZTpbU3RyaW5nLEFycmF5XSxyZXF1aXJlZDohMH0se25hbWU6ImNhbGxiYWNrIix0eXBlOkZ1bmN0aW9uLHJlcXVpcmVkOiEwfV07ZS4kb249cjt2YXIgaT1yO2UuJG9uY2U9aTt2YXIgYT1be25hbWU6ImV2ZW50Iix0eXBlOltTdHJpbmcsQXJyYXldfSx7bmFtZToiY2FsbGJhY2siLHR5cGU6RnVuY3Rpb259XTtlLiRvZmY9YTt2YXIgbz1be25hbWU6ImV2ZW50Iix0eXBlOlN0cmluZyxyZXF1aXJlZDohMH1dO2UuJGVtaXQ9b30sIjVmMTMiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oKXtpZihyPXJ8fGlbIl9fRENfU1RBVF9VVUlEIl0sIXIpe3I9RGF0ZS5ub3coKSsiIitNYXRoLmZsb29yKDFlNypNYXRoLnJhbmRvbSgpKTt0cnl7aVsiX19EQ19TVEFUX1VVSUQiXT1yfWNhdGNoKHQpe319cmV0dXJuIHJ9O3ZhciByLGk9bmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQmJih3aW5kb3cubG9jYWxTdG9yYWdlfHx3aW5kb3cuc2Vzc2lvblN0b3JhZ2UpfHx7fX0sIjVmOTYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiZTMzMCIpLGE9ci5hVHlwZWRBcnJheSxvPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxzPWkoW10uam9pbik7bygiam9pbiIsKGZ1bmN0aW9uKHQpe3JldHVybiBzKGEodGhpcyksdCl9KSl9LCI1ZmIyIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImUzMzAiKSxpPS9bXlwwLVx1MDA3RV0vLGE9L1suXHUzMDAyXHVGRjBFXHVGRjYxXS9nLG89Ik92ZXJmbG93OiBpbnB1dCBuZWVkcyB3aWRlciBpbnRlZ2VycyB0byBwcm9jZXNzIixzPVJhbmdlRXJyb3IsYz1yKGEuZXhlYyksdT1NYXRoLmZsb29yLGw9U3RyaW5nLmZyb21DaGFyQ29kZSxmPXIoIiIuY2hhckNvZGVBdCksZD1yKFtdLmpvaW4pLGg9cihbXS5wdXNoKSxwPXIoIiIucmVwbGFjZSksdj1yKCIiLnNwbGl0KSxnPXIoIiIudG9Mb3dlckNhc2UpLG09ZnVuY3Rpb24odCl7cmV0dXJuIHQrMjIrNzUqKHQ8MjYpfSxiPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj0wO3Q9bj91KHQvNzAwKTp0Pj4xLHQrPXUodC9lKTt3aGlsZSh0PjQ1NSl0PXUodC8zNSkscis9MzY7cmV0dXJuIHUociszNip0Lyh0KzM4KSl9LHk9ZnVuY3Rpb24odCl7dmFyIGU9W107dD1mdW5jdGlvbih0KXt2YXIgZT1bXSxuPTAscj10Lmxlbmd0aDt3aGlsZShuPHIpe3ZhciBpPWYodCxuKyspO2lmKGk+PTU1Mjk2JiZpPD01NjMxOSYmbjxyKXt2YXIgYT1mKHQsbisrKTs1NjMyMD09KDY0NTEyJmEpP2goZSwoKDEwMjMmaSk8PDEwKSsoMTAyMyZhKSs2NTUzNik6KGgoZSxpKSxuLS0pfWVsc2UgaChlLGkpfXJldHVybiBlfSh0KTt2YXIgbixyLGk9dC5sZW5ndGgsYT0xMjgsYz0wLHA9NzI7Zm9yKG49MDtuPHQubGVuZ3RoO24rKylyPXRbbl0scjwxMjgmJmgoZSxsKHIpKTt2YXIgdj1lLmxlbmd0aCxnPXY7diYmaChlLCItIik7d2hpbGUoZzxpKXt2YXIgeT0yMTQ3NDgzNjQ3O2ZvcihuPTA7bjx0Lmxlbmd0aDtuKyspcj10W25dLHI+PWEmJnI8eSYmKHk9cik7dmFyIF89ZysxO2lmKHktYT51KCgyMTQ3NDgzNjQ3LWMpL18pKXRocm93IHMobyk7Zm9yKGMrPSh5LWEpKl8sYT15LG49MDtuPHQubGVuZ3RoO24rKyl7aWYocj10W25dLHI8YSYmKytjPjIxNDc0ODM2NDcpdGhyb3cgcyhvKTtpZihyPT1hKXt2YXIgdz1jLHg9MzY7d2hpbGUoMSl7dmFyIFM9eDw9cD8xOng+PXArMjY/MjY6eC1wO2lmKHc8UylicmVhazt2YXIgVD13LVMsQz0zNi1TO2goZSxsKG0oUytUJUMpKSksdz11KFQvQykseCs9MzZ9aChlLGwobSh3KSkpLHA9YihjLF8sZz09diksYz0wLGcrK319YysrLGErK31yZXR1cm4gZChlLCIiKX07dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLG4scj1bXSxvPXYocChnKHQpLGEsIi4iKSwiLiIpO2ZvcihlPTA7ZTxvLmxlbmd0aDtlKyspbj1vW2VdLGgocixjKGksbik/InhuLS0iK3kobik6bik7cmV0dXJuIGQociwiLiIpfX0sIjVmZTciOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKHQsZSxuLHIpe3QuYWRkRXZlbnRMaXN0ZW5lcihlLChmdW5jdGlvbih0KXsiZnVuY3Rpb24iPT09dHlwZW9mIG4mJiExPT09bih0KSYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpKX0pLHtjYXB0dXJlOnIscGFzc2l2ZTohMX0pfSxpPXtiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9fbW91c2VNb3ZlRXZlbnRMaXN0ZW5lciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fX21vdXNlVXBFdmVudExpc3RlbmVyKX0sbWV0aG9kczp7dG91Y2h0cmFjazpmdW5jdGlvbih0LGUsbil7dmFyIGksYSxvLHM9dGhpcyxjPXRoaXMsdT0wLGw9MCxmPTAsZD0wLGg9ZnVuY3Rpb24odCxuLHIsaSl7aWYoITE9PT1jW2VdKHt0YXJnZXQ6dC50YXJnZXQsY3VycmVudFRhcmdldDp0LmN1cnJlbnRUYXJnZXQscHJldmVudERlZmF1bHQ6dC5wcmV2ZW50RGVmYXVsdC5iaW5kKHQpLHN0b3BQcm9wYWdhdGlvbjp0LnN0b3BQcm9wYWdhdGlvbi5iaW5kKHQpLHRvdWNoZXM6dC50b3VjaGVzLGNoYW5nZWRUb3VjaGVzOnQuY2hhbmdlZFRvdWNoZXMsZGV0YWlsOntzdGF0ZTpuLHg6cix5OmksZHg6ci11LGR5OmktbCxkZHg6ci1mLGRkeTppLWQsdGltZVN0YW1wOnQudGltZVN0YW1wfX0pKXJldHVybiExfSxwPW51bGw7cih0LCJ0b3VjaHN0YXJ0IiwoZnVuY3Rpb24odCl7aWYoYT0hMCwxPT09dC50b3VjaGVzLmxlbmd0aCYmIXApcmV0dXJuIHA9dCx1PWY9dC50b3VjaGVzWzBdLnBhZ2VYLGw9ZD10LnRvdWNoZXNbMF0ucGFnZVksaCh0LCJzdGFydCIsdSxsKX0pKSxyKHQsIm1vdXNlZG93biIsKGZ1bmN0aW9uKHQpe2lmKG89ITAsIWEmJiFwKXJldHVybiBwPXQsdT1mPXQucGFnZVgsbD1kPXQucGFnZVksaCh0LCJzdGFydCIsdSxsKX0pKSxyKHQsInRvdWNobW92ZSIsKGZ1bmN0aW9uKHQpe2lmKDE9PT10LnRvdWNoZXMubGVuZ3RoJiZwKXt2YXIgZT1oKHQsIm1vdmUiLHQudG91Y2hlc1swXS5wYWdlWCx0LnRvdWNoZXNbMF0ucGFnZVkpO3JldHVybiBmPXQudG91Y2hlc1swXS5wYWdlWCxkPXQudG91Y2hlc1swXS5wYWdlWSxlfX0pKTt2YXIgdj10aGlzLl9fY2xpY2tFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfSxnPXRoaXMuX19tb3VzZU1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQpe2lmKCFhJiZvJiZwKXshaSYmKE1hdGguYWJzKGYtdSk+Mnx8TWF0aC5hYnMoZC1sKT4yKSYmKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix2LCEwKSxpPSEwKTt2YXIgZT1oKHQsIm1vdmUiLHQucGFnZVgsdC5wYWdlWSk7cmV0dXJuIGY9dC5wYWdlWCxkPXQucGFnZVksZX19O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsZykscih0LCJ0b3VjaGVuZCIsKGZ1bmN0aW9uKHQpe2lmKDA9PT10LnRvdWNoZXMubGVuZ3RoJiZwKXJldHVybiBhPSExLHA9bnVsbCxoKHQsImVuZCIsdC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWCx0LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZKX0pKTt2YXIgbT10aGlzLl9fbW91c2VVcEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24odCl7aWYobz0hMSwhYSYmcClyZXR1cm4gaSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIscy5fX2NsaWNrRXZlbnRMaXN0ZW5lciwhMCksaT0hMX0pLDApLHA9bnVsbCxoKHQsImVuZCIsdC5wYWdlWCx0LnBhZ2VZKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsbSkscih0LCJ0b3VjaGNhbmNlbCIsKGZ1bmN0aW9uKHQpe2lmKHApe2E9ITE7dmFyIGU9cDtyZXR1cm4gcD1udWxsLGgodCxuPyJjYW5jZWwiOiJlbmQiLGUudG91Y2hlc1swXS5wYWdlWCxlLnRvdWNoZXNbMF0ucGFnZVkpfX0pKX19fTtlLmRlZmF1bHQ9aX0sNjAwNTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuKDAsci5kZWZhdWx0KSh0KX07dmFyIHI9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fShuKCI2Yjc1IikpfSwiNjA1ZCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImM2YjYiKSxpPW4oImRhODQiKTt0LmV4cG9ydHM9InByb2Nlc3MiPT1yKGkucHJvY2Vzcyl9LDYwNjk6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjZjNTkiKSxpPW4oIjYwNWQiKTt0LmV4cG9ydHM9IXImJiFpJiYib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmIm9iamVjdCI9PXR5cGVvZiBkb2N1bWVudH0sIjYwYmQiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZGE4NCIpLGk9bigiZDAzOSIpLGE9bigiZTMzMCIpLG89bigiZWJiNSIpLHM9bigiZTI2MCIpLGM9bigiYjYyMiIpLHU9YygiaXRlcmF0b3IiKSxsPXIuVWludDhBcnJheSxmPWEocy52YWx1ZXMpLGQ9YShzLmtleXMpLGg9YShzLmVudHJpZXMpLHA9by5hVHlwZWRBcnJheSx2PW8uZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxnPWwmJmwucHJvdG90eXBlLG09IWkoKGZ1bmN0aW9uKCl7Z1t1XS5jYWxsKFsxXSl9KSksYj0hIWcmJmcudmFsdWVzJiZnW3VdPT09Zy52YWx1ZXMmJiJ2YWx1ZXMiPT09Zy52YWx1ZXMubmFtZSx5PWZ1bmN0aW9uKCl7cmV0dXJuIGYocCh0aGlzKSl9O3YoImVudHJpZXMiLChmdW5jdGlvbigpe3JldHVybiBoKHAodGhpcykpfSksbSksdigia2V5cyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGQocCh0aGlzKSl9KSxtKSx2KCJ2YWx1ZXMiLHksbXx8IWIse25hbWU6InZhbHVlcyJ9KSx2KHUseSxtfHwhYix7bmFtZToidmFsdWVzIn0pfSwiNjBkYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI4M2FiIiksaT1uKCJlMzMwIiksYT1uKCJjNjViIiksbz1uKCJkMDM5Iikscz1uKCJkZjc1IiksYz1uKCI3NDE4IiksdT1uKCJkMWU3IiksbD1uKCI3YjBiIiksZj1uKCI0NGFkIiksZD1PYmplY3QuYXNzaWduLGg9T2JqZWN0LmRlZmluZVByb3BlcnR5LHA9aShbXS5jb25jYXQpO3QuZXhwb3J0cz0hZHx8bygoZnVuY3Rpb24oKXtpZihyJiYxIT09ZCh7YjoxfSxkKGgoe30sImEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2godGhpcywiYiIse3ZhbHVlOjMsZW51bWVyYWJsZTohMX0pfX0pLHtiOjJ9KSkuYilyZXR1cm4hMDt2YXIgdD17fSxlPXt9LG49U3ltYm9sKCk7cmV0dXJuIHRbbl09NywiYWJjZGVmZ2hpamtsbW5vcHFyc3QiLnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPXR9KSksNyE9ZCh7fSx0KVtuXXx8ImFiY2RlZmdoaWprbG1ub3BxcnN0IiE9cyhkKHt9LGUpKS5qb2luKCIiKX0pKT9mdW5jdGlvbih0LGUpe3ZhciBuPWwodCksaT1hcmd1bWVudHMubGVuZ3RoLG89MSxkPWMuZixoPXUuZjt3aGlsZShpPm8pe3ZhciB2LGc9Zihhcmd1bWVudHNbbysrXSksbT1kP3AocyhnKSxkKGcpKTpzKGcpLGI9bS5sZW5ndGgseT0wO3doaWxlKGI+eSl2PW1beSsrXSxyJiYhYShoLGcsdil8fChuW3ZdPWdbdl0pfXJldHVybiBufTpkfSwiNjBmNiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUubWVyZ2VUaXRsZU5WaWV3PWZ1bmN0aW9uKHQsZSl7KDAsYS5pc1BsYWluT2JqZWN0KShlKSYmKCgwLGEuaGFzT3duKShlLCJiYWNrZ3JvdW5kQ29sb3IiKSYmKHQuYmFja2dyb3VuZENvbG9yPWUuYmFja2dyb3VuZENvbG9yKSwoMCxhLmhhc093bikoZSwiYnV0dG9ucyIpJiYodC5idXR0b25zPWUuYnV0dG9ucyksKDAsYS5oYXNPd24pKGUsInRpdGxlQ29sb3IiKSYmKHQudGV4dENvbG9yPWUudGl0bGVDb2xvciksKDAsYS5oYXNPd24pKGUsInRpdGxlVGV4dCIpJiYodC50aXRsZVRleHQ9ZS50aXRsZVRleHQpLCgwLGEuaGFzT3duKShlLCJ0aXRsZVNpemUiKSYmKHQudGl0bGVTaXplPWUudGl0bGVTaXplKSwoMCxhLmhhc093bikoZSwidHlwZSIpJiYodC50eXBlPWUudHlwZSksKDAsYS5oYXNPd24pKGUsInNlYXJjaElucHV0IikmJiJvYmplY3QiPT09KDAsaS5kZWZhdWx0KShlLnNlYXJjaElucHV0KSYmKHQuc2VhcmNoSW5wdXQ9T2JqZWN0LmFzc2lnbih7YXV0b0ZvY3VzOiExLGFsaWduOiJjZW50ZXIiLGNvbG9yOiIjMDAwMDAwIixiYWNrZ3JvdW5kQ29sb3I6InJnYmEoMjU1LDI1NSwyNTUsMC41KSIsYm9yZGVyUmFkaXVzOiIwcHgiLHBsYWNlaG9sZGVyOiIiLHBsYWNlaG9sZGVyQ29sb3I6IiNDQ0NDQ0MiLGRpc2FibGVkOiExfSxlLnNlYXJjaElucHV0KSkpO3JldHVybiB0fSxlLndyYXBwZXJNUEV2ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0Lm1wPU9iamVjdC5hc3NpZ24oeyJAd2FybmluZyI6Im1wIGlzIGRlcHJlY2F0ZWQifSx0KSx0Ll9wcm9jZXNzZWQ9ITAsdH07dmFyIGk9cihuKCI1M2NhIikpLGE9bigiZGI2YSIpfSw2MTgwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oIjdkYjAiKSxuKCJkM2I3IiksbigiYjY0YiIpLG4oImNhYWQiKSxuKCIyNTMyIik7dmFyIHI9e25hbWU6IktleXByZXNzIixwcm9wczp7ZGlzYWJsZTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXtlc2M6WyJFc2MiLCJFc2NhcGUiXSx0YWI6IlRhYiIsZW50ZXI6IkVudGVyIixzcGFjZTpbIiAiLCJTcGFjZWJhciJdLHVwOlsiVXAiLCJBcnJvd1VwIl0sbGVmdDpbIkxlZnQiLCJBcnJvd0xlZnQiXSxyaWdodDpbIlJpZ2h0IiwiQXJyb3dSaWdodCJdLGRvd246WyJEb3duIiwiQXJyb3dEb3duIl0sZGVsZXRlOlsiQmFja3NwYWNlIiwiRGVsZXRlIiwiRGVsIl19LG49ZnVuY3Rpb24obil7aWYoIXQuZGlzYWJsZSl7dmFyIHI9T2JqZWN0LmtleXMoZSkuZmluZCgoZnVuY3Rpb24odCl7dmFyIHI9bi5rZXksaT1lW3RdO3JldHVybiBpPT09cnx8QXJyYXkuaXNBcnJheShpKSYmaS5pbmNsdWRlcyhyKX0pKTtyJiZzZXRUaW1lb3V0KChmdW5jdGlvbigpe3QuJGVtaXQocixuKX0pLDApfX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLG4pLHRoaXMuJG9uY2UoImhvb2s6YmVmb3JlRGVzdHJveSIsKGZ1bmN0aW9uKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLG4pfSkpfSxyZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH19O2UuZGVmYXVsdD1yfSwiNjIxYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJkYTg0IiksaT1uKCJlMzMwIiksYT1uKCI4M2FiIiksbz1uKCI0YjExIikscz1uKCI1ZTc3IiksYz1uKCI5MTEyIiksdT1uKCI2OTY0IiksbD1uKCJkMDM5IiksZj1uKCIxOWFhIiksZD1uKCI1OTI2IiksaD1uKCI1MGM0IikscD1uKCIwYjI1Iiksdj1uKCI3N2E3IiksZz1uKCJlMTYzIiksbT1uKCJkMmJiIiksYj1uKCIyNDFjIikuZix5PW4oIjliZjIiKS5mLF89bigiODFkNSIpLHc9bigiNGRhZSIpLHg9bigiZDQ0ZSIpLFM9bigiNjlmMyIpLFQ9cy5QUk9QRVIsQz1zLkNPTkZJR1VSQUJMRSxrPVMuZ2V0LE89Uy5zZXQsRT1yWyJBcnJheUJ1ZmZlciJdLEk9RSxQPUkmJklbInByb3RvdHlwZSJdLE09clsiRGF0YVZpZXciXSxBPU0mJk1bInByb3RvdHlwZSJdLCQ9T2JqZWN0LnByb3RvdHlwZSxMPXIuQXJyYXksaj1yLlJhbmdlRXJyb3IsUj1pKF8pLE49aShbXS5yZXZlcnNlKSxCPXYucGFjayxEPXYudW5wYWNrLEY9ZnVuY3Rpb24odCl7cmV0dXJuWzI1NSZ0XX0sVz1mdW5jdGlvbih0KXtyZXR1cm5bMjU1JnQsdD4+OCYyNTVdfSxIPWZ1bmN0aW9uKHQpe3JldHVyblsyNTUmdCx0Pj44JjI1NSx0Pj4xNiYyNTUsdD4+MjQmMjU1XX0sVj1mdW5jdGlvbih0KXtyZXR1cm4gdFszXTw8MjR8dFsyXTw8MTZ8dFsxXTw8OHx0WzBdfSxVPWZ1bmN0aW9uKHQpe3JldHVybiBCKHQsMjMsNCl9LHE9ZnVuY3Rpb24odCl7cmV0dXJuIEIodCw1Miw4KX0sej1mdW5jdGlvbih0LGUpe3kodFsicHJvdG90eXBlIl0sZSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGsodGhpcylbZV19fSl9LFk9ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9cChuKSxhPWsodCk7aWYoaStlPmEuYnl0ZUxlbmd0aCl0aHJvdyBqKCJXcm9uZyBpbmRleCIpO3ZhciBvPWsoYS5idWZmZXIpLmJ5dGVzLHM9aSthLmJ5dGVPZmZzZXQsYz13KG8scyxzK2UpO3JldHVybiByP2M6TihjKX0sWD1mdW5jdGlvbih0LGUsbixyLGksYSl7dmFyIG89cChuKSxzPWsodCk7aWYobytlPnMuYnl0ZUxlbmd0aCl0aHJvdyBqKCJXcm9uZyBpbmRleCIpO2Zvcih2YXIgYz1rKHMuYnVmZmVyKS5ieXRlcyx1PW8rcy5ieXRlT2Zmc2V0LGw9cigraSksZj0wO2Y8ZTtmKyspY1t1K2ZdPWxbYT9mOmUtZi0xXX07aWYobyl7dmFyIEc9VCYmIkFycmF5QnVmZmVyIiE9PUUubmFtZTtpZihsKChmdW5jdGlvbigpe0UoMSl9KSkmJmwoKGZ1bmN0aW9uKCl7bmV3IEUoLTEpfSkpJiYhbCgoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEUsbmV3IEUoMS41KSxuZXcgRShOYU4pLDEhPUUubGVuZ3RofHxHJiYhQ30pKSlHJiZDJiZjKEUsIm5hbWUiLCJBcnJheUJ1ZmZlciIpO2Vsc2V7ST1mdW5jdGlvbih0KXtyZXR1cm4gZih0aGlzLFApLG5ldyBFKHAodCkpfSxJWyJwcm90b3R5cGUiXT1QO2Zvcih2YXIgUSxKPWIoRSksSz0wO0oubGVuZ3RoPks7KShRPUpbSysrXSlpbiBJfHxjKEksUSxFW1FdKTtQLmNvbnN0cnVjdG9yPUl9bSYmZyhBKSE9PSQmJm0oQSwkKTt2YXIgWj1uZXcgTShuZXcgSSgyKSksdHQ9aShBLnNldEludDgpO1ouc2V0SW50OCgwLDIxNDc0ODM2NDgpLFouc2V0SW50OCgxLDIxNDc0ODM2NDkpLCFaLmdldEludDgoMCkmJlouZ2V0SW50OCgxKXx8dShBLHtzZXRJbnQ4OmZ1bmN0aW9uKHQsZSl7dHQodGhpcyx0LGU8PDI0Pj4yNCl9LHNldFVpbnQ4OmZ1bmN0aW9uKHQsZSl7dHQodGhpcyx0LGU8PDI0Pj4yNCl9fSx7dW5zYWZlOiEwfSl9ZWxzZSBJPWZ1bmN0aW9uKHQpe2YodGhpcyxQKTt2YXIgZT1wKHQpO08odGhpcyx7Ynl0ZXM6UihMKGUpLDApLGJ5dGVMZW5ndGg6ZX0pLGF8fCh0aGlzLmJ5dGVMZW5ndGg9ZSl9LFA9SVsicHJvdG90eXBlIl0sTT1mdW5jdGlvbih0LGUsbil7Zih0aGlzLEEpLGYodCxQKTt2YXIgcj1rKHQpLmJ5dGVMZW5ndGgsaT1kKGUpO2lmKGk8MHx8aT5yKXRocm93IGooIldyb25nIG9mZnNldCIpO2lmKG49dm9pZCAwPT09bj9yLWk6aChuKSxpK24+cil0aHJvdyBqKCJXcm9uZyBsZW5ndGgiKTtPKHRoaXMse2J1ZmZlcjp0LGJ5dGVMZW5ndGg6bixieXRlT2Zmc2V0Oml9KSxhfHwodGhpcy5idWZmZXI9dCx0aGlzLmJ5dGVMZW5ndGg9bix0aGlzLmJ5dGVPZmZzZXQ9aSl9LEE9TVsicHJvdG90eXBlIl0sYSYmKHooSSwiYnl0ZUxlbmd0aCIpLHooTSwiYnVmZmVyIikseihNLCJieXRlTGVuZ3RoIikseihNLCJieXRlT2Zmc2V0IikpLHUoQSx7Z2V0SW50ODpmdW5jdGlvbih0KXtyZXR1cm4gWSh0aGlzLDEsdClbMF08PDI0Pj4yNH0sZ2V0VWludDg6ZnVuY3Rpb24odCl7cmV0dXJuIFkodGhpcywxLHQpWzBdfSxnZXRJbnQxNjpmdW5jdGlvbih0KXt2YXIgZT1ZKHRoaXMsMix0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4oZVsxXTw8OHxlWzBdKTw8MTY+PjE2fSxnZXRVaW50MTY6ZnVuY3Rpb24odCl7dmFyIGU9WSh0aGlzLDIsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuIGVbMV08PDh8ZVswXX0sZ2V0SW50MzI6ZnVuY3Rpb24odCl7cmV0dXJuIFYoWSh0aGlzLDQsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkpfSxnZXRVaW50MzI6ZnVuY3Rpb24odCl7cmV0dXJuIFYoWSh0aGlzLDQsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbih0KXtyZXR1cm4gRChZKHRoaXMsNCx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKSwyMyl9LGdldEZsb2F0NjQ6ZnVuY3Rpb24odCl7cmV0dXJuIEQoWSh0aGlzLDgsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksNTIpfSxzZXRJbnQ4OmZ1bmN0aW9uKHQsZSl7WCh0aGlzLDEsdCxGLGUpfSxzZXRVaW50ODpmdW5jdGlvbih0LGUpe1godGhpcywxLHQsRixlKX0sc2V0SW50MTY6ZnVuY3Rpb24odCxlKXtYKHRoaXMsMix0LFcsZSxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldFVpbnQxNjpmdW5jdGlvbih0LGUpe1godGhpcywyLHQsVyxlLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0SW50MzI6ZnVuY3Rpb24odCxlKXtYKHRoaXMsNCx0LEgsZSxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldFVpbnQzMjpmdW5jdGlvbih0LGUpe1godGhpcyw0LHQsSCxlLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0RmxvYXQzMjpmdW5jdGlvbih0LGUpe1godGhpcyw0LHQsVSxlLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0RmxvYXQ2NDpmdW5jdGlvbih0LGUpe1godGhpcyw4LHQscSxlLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX19KTt4KEksIkFycmF5QnVmZmVyIikseChNLCJEYXRhVmlldyIpLHQuZXhwb3J0cz17QXJyYXlCdWZmZXI6SSxEYXRhVmlldzpNfX0sIjYyZDkiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQscil7dmFyIGk9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuQ29tcG9uZW50RGVzY3JpcHRvcj12b2lkIDAsZS5jcmVhdGVDb21wb25lbnREZXNjcmlwdG9yPWZ1bmN0aW9uKHQpe3ZhciBlPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV07ZSYmdCYmdC4kb3B0aW9ucy5uYW1lJiYwPT09dC4kb3B0aW9ucy5uYW1lLmluZGV4T2YoIlZVbmkiKSYmKHQ9dC4kcGFyZW50KTtpZih0KXJldHVybiJfX3d4c0NvbXBvbmVudERlc2NyaXB0b3IiaW4gdHx8KHQuX193eHNDb21wb25lbnREZXNjcmlwdG9yPW5ldyBkKHQpKSx0Ll9fd3hzQ29tcG9uZW50RGVzY3JpcHRvcn0sZS5wYXJzZVN0eWxlVGV4dD1mO3ZhciBhPWkobigiZDRlYyIpKSxvPWkobigiYmVlMiIpKTtuKCJkM2I3IiksbigiMTU5YiIpLG4oImFjMWYiKSxuKCI1MzE5IiksbigiMTRkOSIpLG4oIjEyNzYiKSxuKCI0OThhIiksbigiN2E4MiIpLG4oImM3NDAiKSxuKCJhNDM0IiksbigiZTljNCIpLG4oImM5NzUiKTt2YXIgcz1uKCJkYjZhIiksYz0vXlxzK3xccyskL2csdT0vXHMrLztmdW5jdGlvbiBsKHQsZSxuKXt2YXIgcj1bXSxpPWZ1bmN0aW9uKHQpe3JldHVybiBpPW4/ZnVuY3Rpb24odCl7cmV0dXJuIWUuY29udGFpbnModCl9OmZ1bmN0aW9uKHQpe3JldHVybiBlLmNvbnRhaW5zKHQpfSxpKHQpfTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXt0PXQucmVwbGFjZShjLCIiKSxpKHQpJiZyLnB1c2godCl9KSkscn1mdW5jdGlvbiBmKHQpe3ZhciBlPXt9LG49LzooLispLztyZXR1cm4gdC5zcGxpdCgvOyg/IVteKF0qXCkpL2cpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKHQpe3ZhciByPXQuc3BsaXQobik7ci5sZW5ndGg+MSYmKGVbclswXS50cmltKCldPXJbMV0udHJpbSgpKX19KSksZX12YXIgZD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7KDAsYS5kZWZhdWx0KSh0aGlzLGUpLHRoaXMuJHZtPXQsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIiRlbCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0LiRlbH19KX1yZXR1cm4oMCxvLmRlZmF1bHQpKGUsW3trZXk6InNlbGVjdENvbXBvbmVudCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy4kZWwmJnQpe3ZhciBlPXRoaXMuJGVsLnF1ZXJ5U2VsZWN0b3IodCksbj1lLl9fdnVlX198fGU7cmV0dXJuIG4uJGdldENvbXBvbmVudERlc2NyaXB0b3ImJm4uJGdldENvbXBvbmVudERlc2NyaXB0b3IobiwhMSl9fX0se2tleToic2VsZWN0QWxsQ29tcG9uZW50cyIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoIXRoaXMuJGVsfHwhdClyZXR1cm5bXTtmb3IodmFyIGU9W10sbj10aGlzLiRlbC5xdWVyeVNlbGVjdG9yQWxsKHQpLHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGk9bltyXSxhPWkuX192dWVfX3x8aTthLiRnZXRDb21wb25lbnREZXNjcmlwdG9yJiZlLnB1c2goYS4kZ2V0Q29tcG9uZW50RGVzY3JpcHRvcihhLCExKSl9cmV0dXJuIGV9fSx7a2V5OiJzZXRTdHlsZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuJGVsJiZ0Pygic3RyaW5nIj09PXR5cGVvZiB0JiYodD1mKHQpKSwoMCxzLmlzUGxhaW5PYmplY3QpKHQpJiYodGhpcy4kZWwuX193eHNTdHlsZT10LHRoaXMuJHZtLiRmb3JjZVVwZGF0ZSgpKSx0aGlzKTp0aGlzfX0se2tleToiYWRkQ2xhc3MiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCksbj0wO248dDtuKyspZVtuXT1hcmd1bWVudHNbbl07aWYoIXRoaXMuJGVsfHwhZS5sZW5ndGgpcmV0dXJuIHRoaXM7dmFyIHI9bChlLHRoaXMuJGVsLmNsYXNzTGlzdCwhMCk7aWYoci5sZW5ndGgpe3ZhciBpPXRoaXMuJGVsLl9fd3hzQWRkQ2xhc3N8fCIiO3RoaXMuJGVsLl9fd3hzQWRkQ2xhc3M9aSsoaT8iICI6IiIpK3Iuam9pbigiICIpLHRoaXMuJHZtLiRmb3JjZVVwZGF0ZSgpfXJldHVybiB0aGlzfX0se2tleToicmVtb3ZlQ2xhc3MiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCksbj0wO248dDtuKyspZVtuXT1hcmd1bWVudHNbbl07aWYoIXRoaXMuJGVsfHwhZS5sZW5ndGgpcmV0dXJuIHRoaXM7dmFyIHI9dGhpcy4kZWwuY2xhc3NMaXN0LGk9dGhpcy4kZWwuX193eHNBZGRDbGFzcz90aGlzLiRlbC5fX3d4c0FkZENsYXNzLnNwbGl0KHUpOltdLGE9bChlLHIsITEpO2lmKGEubGVuZ3RoKXt2YXIgbz1bXTthLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPWkuZmluZEluZGV4KChmdW5jdGlvbihlKXtyZXR1cm4gZT09PXR9KSk7LTEhPT1lJiZpLnNwbGljZShlLDEpLG8ucHVzaCh0KX0pKSx0aGlzLiRlbC5fX3d4c1JlbW92ZUNsYXNzPW8sdGhpcy4kZWwuX193eHNBZGRDbGFzcz1pLmpvaW4oIiAiKSx0aGlzLiR2bS4kZm9yY2VVcGRhdGUoKX1yZXR1cm4gdGhpc319LHtrZXk6Imhhc0NsYXNzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy4kZWwmJnRoaXMuJGVsLmNsYXNzTGlzdC5jb250YWlucyh0KX19LHtrZXk6ImdldENvbXB1dGVkU3R5bGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGVsP3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuJGVsKTp7fX19LHtrZXk6ImdldERhdGFzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGVsJiZ0aGlzLiRlbC5kYXRhc2V0fX0se2tleToiY2FsbE1ldGhvZCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O2UgaW4gdGhpcy4kdm0/dGhpcy4kdm1bZV0oSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuKSkpOnRoaXMuJHZtLl8kaWQmJnQucHVibGlzaEhhbmRsZXIoIm9uV3hzSW52b2tlQ2FsbE1ldGhvZCIse2NpZDp0aGlzLiR2bS5fJGlkLG1ldGhvZDplLGFyZ3M6bn0pfX0se2tleToicmVxdWVzdEFuaW1hdGlvbkZyYW1lIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gci5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCksdGhpc319LHtrZXk6ImdldFN0YXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRlbCYmKHRoaXMuJGVsLl9fd3hzU3RhdGV8fCh0aGlzLiRlbC5fX3d4c1N0YXRlPXt9KSl9fSx7a2V5OiJ0cmlnZ2VyRXZlbnQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gdGhpcy4kdm0uJGVtaXQodCxlKSx0aGlzfX0se2tleToic2V0VGltZW91dCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gd2luZG93LnNldFRpbWVvdXQodCxlKX19LHtrZXk6ImNsZWFyVGltZW91dCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHdpbmRvdy5jbGVhclRpbWVvdXQodCl9fSx7a2V5OiJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfX1dKSxlfSgpO2UuQ29tcG9uZW50RGVzY3JpcHRvcj1kfSkuY2FsbCh0aGlzLG4oImM1YzMiKSxuKCJjOGJhIikpfSwiNjMxYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUudGFiQmFyPXZvaWQgMCxuKCJkM2I3IiksbigiMTU5YiIpO3ZhciBpPXIobigiZTE0MyIpKSxhPW4oIjgxZTgiKSxvPW4oIjY3NTYiKSxzPV9fdW5pQ29uZmlnLnRhYkJhcnx8e307X191bmlDb25maWcudGFiQmFyPWkuZGVmYXVsdC5vYnNlcnZhYmxlKCgwLG8ucGFyc2VUaGVtZSkoKDAsYS5pbml0VGFiQmFySTE4bikocykpKSwoMCxvLm9uVGhlbWVDaGFuZ2UpKChmdW5jdGlvbigpe3ZhciB0PSgwLG8ucGFyc2VUaGVtZSkoKDAsYS5pbml0VGFiQmFySTE4bikocykpO19fdW5pQ29uZmlnLnRhYkJhci5iYWNrZ3JvdW5kQ29sb3I9dC5iYWNrZ3JvdW5kQ29sb3IsX191bmlDb25maWcudGFiQmFyLmJvcmRlclN0eWxlPXQuYm9yZGVyU3R5bGUsX191bmlDb25maWcudGFiQmFyLmNvbG9yPXQuY29sb3IsX191bmlDb25maWcudGFiQmFyLnNlbGVjdGVkQ29sb3I9dC5zZWxlY3RlZENvbG9yLF9fdW5pQ29uZmlnLnRhYkJhci5ibHVyRWZmZWN0PXQuYmx1ckVmZmVjdCx0Lmxpc3QmJnQubGlzdC5sZW5ndGgmJl9fdW5pQ29uZmlnLnRhYkJhci5saXN0Lmxlbmd0aCYmdC5saXN0LmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7X191bmlDb25maWcudGFiQmFyLmxpc3RbZV0uaWNvblBhdGg9dC5pY29uUGF0aCxfX3VuaUNvbmZpZy50YWJCYXIubGlzdFtlXS5zZWxlY3RlZEljb25QYXRoPXQuc2VsZWN0ZWRJY29uUGF0aH0pKX0pKTt2YXIgYz1fX3VuaUNvbmZpZy50YWJCYXI7ZS50YWJCYXI9Y30sIjYzM2QiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5oaWRlTmF2aWdhdGlvbkJhckxvYWRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGkoImhpZGVOYXZpZ2F0aW9uQmFyTG9hZGluZyIsdCl9LGUuc2V0TmF2aWdhdGlvbkJhckNvbG9yPWZ1bmN0aW9uKHQpe3JldHVybiBpKCJzZXROYXZpZ2F0aW9uQmFyQ29sb3IiLHQpfSxlLnNldE5hdmlnYXRpb25CYXJUaXRsZT1mdW5jdGlvbih0KXtyZXR1cm4gaSgic2V0TmF2aWdhdGlvbkJhclRpdGxlIix0KX0sZS5zaG93TmF2aWdhdGlvbkJhckxvYWRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGkoInNob3dOYXZpZ2F0aW9uQmFyTG9hZGluZyIsdCl9O3ZhciByPW4oImMxNWYiKTtmdW5jdGlvbiBpKGUpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPSgwLHIuZ2V0UGFnZUhvbGRlcikobi5fX3BhZ2VfXyk7aWYoaSlzd2l0Y2goZSl7Y2FzZSJzZXROYXZpZ2F0aW9uQmFyQ29sb3IiOnZhciBhPW4uZnJvbnRDb2xvcixvPW4uYmFja2dyb3VuZENvbG9yLHM9bi5hbmltYXRpb24sYz1zLmR1cmF0aW9uLHU9cy50aW1pbmdGdW5jO2EmJihpLm5hdmlnYXRpb25CYXIudGV4dENvbG9yPSIjMDAwMDAwIj09PWE/ImJsYWNrIjoid2hpdGUiKSxvJiYoaS5uYXZpZ2F0aW9uQmFyLmJhY2tncm91bmRDb2xvcj1vKSx0LmVtaXQoIm9uTmF2aWdhdGlvbkJhckNoYW5nZSIse3RleHRDb2xvcjoiIzAwMDAwMCI9PT1hPyIjMDAwIjoiI2ZmZiIsYmFja2dyb3VuZENvbG9yOmkubmF2aWdhdGlvbkJhci5iYWNrZ3JvdW5kQ29sb3J9KSxpLm5hdmlnYXRpb25CYXIuZHVyYXRpb249YysibXMiLGkubmF2aWdhdGlvbkJhci50aW1pbmdGdW5jPXU7YnJlYWs7Y2FzZSJzaG93TmF2aWdhdGlvbkJhckxvYWRpbmciOmkubmF2aWdhdGlvbkJhci5sb2FkaW5nPSEwO2JyZWFrO2Nhc2UiaGlkZU5hdmlnYXRpb25CYXJMb2FkaW5nIjppLm5hdmlnYXRpb25CYXIubG9hZGluZz0hMTticmVhaztjYXNlInNldE5hdmlnYXRpb25CYXJUaXRsZSI6dmFyIGw9bi50aXRsZTtpLm5hdmlnYXRpb25CYXIudGl0bGVUZXh0PWwsKDAsci5pc0N1cnJlbnRQYWdlKShpKSYmKGRvY3VtZW50LnRpdGxlPWwpLHQuZW1pdCgib25OYXZpZ2F0aW9uQmFyQ2hhbmdlIix7dGl0bGVUZXh0Omx9KTticmVha31yZXR1cm57fX19KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sNjM3NDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpLGk9T2JqZWN0LmRlZmluZVByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3RyeXtpKHIsdCx7dmFsdWU6ZSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KX1jYXRjaChuKXtyW3RdPWV9cmV0dXJuIGV9fSwiNjQ5ZSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IiksaT1uKCJiNzI3Iikuc29tZSxhPXIuYVR5cGVkQXJyYXksbz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7bygic29tZSIsKGZ1bmN0aW9uKHQpe3JldHVybiBpKGEodGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSl9LCI2NGIyIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxlKXtmb3IodmFyIG49dGhpcy4kY2hpbGRyZW4saT1uLmxlbmd0aCxhPWFyZ3VtZW50cy5sZW5ndGgsbz1uZXcgQXJyYXkoYT4yP2EtMjowKSxzPTI7czxhO3MrKylvW3MtMl09YXJndW1lbnRzW3NdO2Zvcih2YXIgYz0wO2M8aTtjKyspe3ZhciB1PW5bY10sbD11LiRvcHRpb25zLm5hbWUmJnUuJG9wdGlvbnMubmFtZS5zdWJzdHIoNCk7aWYofnQuaW5kZXhPZihsKSlyZXR1cm4gdS4kZW1pdC5hcHBseSh1LFtlXS5jb25jYXQobykpLCExO2lmKCExPT09ci5hcHBseSh1LFt0LGVdLmNvbmNhdChbb10pKSlyZXR1cm4hMX19bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImM5NzUiKSxuKCI5OWFmIik7dmFyIGk9e21ldGhvZHM6eyRkaXNwYXRjaDpmdW5jdGlvbih0LGUpeyJzdHJpbmciPT09dHlwZW9mIHQmJih0PVt0XSk7dmFyIG49dGhpcy4kcGFyZW50fHx0aGlzLiRyb290LHI9bi4kb3B0aW9ucy5uYW1lJiZuLiRvcHRpb25zLm5hbWUuc3Vic3RyKDQpO3doaWxlKG4mJighcnx8IX50LmluZGV4T2YocikpKW49bi4kcGFyZW50LG4mJihyPW4uJG9wdGlvbnMubmFtZSYmbi4kb3B0aW9ucy5uYW1lLnN1YnN0cig0KSk7aWYobil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkoaT4yP2ktMjowKSxvPTI7bzxpO28rKylhW28tMl09YXJndW1lbnRzW29dO24uJGVtaXQuYXBwbHkobixbZV0uY29uY2F0KGEpKX19LCRicm9hZGNhc3Q6ZnVuY3Rpb24odCxlKXsic3RyaW5nIj09PXR5cGVvZiB0JiYodD1bdF0pO2Zvcih2YXIgbj1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KG4+Mj9uLTI6MCksYT0yO2E8bjthKyspaVthLTJdPWFyZ3VtZW50c1thXTtyLmFwcGx5KHRoaXMsW3QsZV0uY29uY2F0KGkpKX19fTtlLmRlZmF1bHQ9aX0sIjY0ZmUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRpc2FibGVTY3JvbGxCb3VuY2U9ZnVuY3Rpb24odCl7dC5kaXNhYmxlfSxlLmluaXRTY3JvbGxCb3VuY2U9ZnVuY3Rpb24oKXt9fSw2NTQ3OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMzMwIiksaT1uKCI1OTI2IiksYT1uKCI1NzdlIiksbz1uKCIxZDgwIikscz1yKCIiLmNoYXJBdCksYz1yKCIiLmNoYXJDb2RlQXQpLHU9cigiIi5zbGljZSksbD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgcixsLGY9YShvKGUpKSxkPWkobiksaD1mLmxlbmd0aDtyZXR1cm4gZDwwfHxkPj1oP3Q/IiI6dm9pZCAwOihyPWMoZixkKSxyPDU1Mjk2fHxyPjU2MzE5fHxkKzE9PT1ofHwobD1jKGYsZCsxKSk8NTYzMjB8fGw+NTczNDM/dD9zKGYsZCk6cjp0P3UoZixkLGQrMik6bC01NjMyMCsoci01NTI5Njw8MTApKzY1NTM2KX19O3QuZXhwb3J0cz17Y29kZUF0OmwoITEpLGNoYXJBdDpsKCEwKX19LCI2NWYwIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMGI0MiIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcocih0KSkoMD09PWU/MDplKX19LDY3NTY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiZ2V0VGhlbWUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLmdldFRoZW1lfX0pLGUub2ZmVGhlbWVDaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06ZnVuY3Rpb24oKXt9O3Qub2ZmKCJhcGkuIithLk9OX1RIRU1FX0NIQU5HRSxlKX0sZS5vblRoZW1lQ2hhbmdlPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmZ1bmN0aW9uKCl7fTtfX3VuaUNvbmZpZy5kYXJrbW9kZSYmdC5vbigiYXBpLiIrYS5PTl9USEVNRV9DSEFOR0UsZSl9LGUucGFyc2VUaGVtZT1mdW5jdGlvbih0KXt2YXIgZT17fTtpZihfX3VuaUNvbmZpZy5kYXJrbW9kZSl7dmFyIG49KDAsaS5nZXRUaGVtZSkoKTtlPSgwLHIubm9ybWFsbGl6ZVN0eWxlcykodCxfX3VuaUNvbmZpZy50aGVtZUNvbmZpZyxuKX1yZXR1cm4gX191bmlDb25maWcuZGFya21vZGU/ZTp0fTt2YXIgcj1uKCJkYjZhIiksaT1uKCI0OWI2IiksYT1uKCIwZmJlIil9KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sIjY4ZWUiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMzMwIiksaT1uKCJkMDM5IiksYT1uKCIxNjI2Iiksbz1uKCJmNWRmIikscz1uKCJkMDY2IiksYz1uKCI4OTI1IiksdT1mdW5jdGlvbigpe30sbD1bXSxmPXMoIlJlZmxlY3QiLCJjb25zdHJ1Y3QiKSxkPS9eXHMqKD86Y2xhc3N8ZnVuY3Rpb24pXGIvLGg9cihkLmV4ZWMpLHA9IWQuZXhlYyh1KSx2PWZ1bmN0aW9uKHQpe2lmKCFhKHQpKXJldHVybiExO3RyeXtyZXR1cm4gZih1LGwsdCksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSxnPWZ1bmN0aW9uKHQpe2lmKCFhKHQpKXJldHVybiExO3N3aXRjaChvKHQpKXtjYXNlIkFzeW5jRnVuY3Rpb24iOmNhc2UiR2VuZXJhdG9yRnVuY3Rpb24iOmNhc2UiQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiI6cmV0dXJuITF9dHJ5e3JldHVybiBwfHwhIWgoZCxjKHQpKX1jYXRjaChlKXtyZXR1cm4hMH19O2cuc2hhbT0hMCx0LmV4cG9ydHM9IWZ8fGkoKGZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIHYodi5jYWxsKXx8IXYoT2JqZWN0KXx8IXYoKGZ1bmN0aW9uKCl7dD0hMH0pKXx8dH0pKT9nOnZ9LDY5NjQ6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImNiMmQiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaSBpbiBlKXIodCxpLGVbaV0sbik7cmV0dXJuIHR9fSwiNjlmMyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLGksYSxvPW4oImNkY2UiKSxzPW4oImRhODQiKSxjPW4oIjg2MWQiKSx1PW4oIjkxMTIiKSxsPW4oIjFhMmQiKSxmPW4oImM2Y2QiKSxkPW4oImY3NzIiKSxoPW4oImQwMTIiKSxwPXMuVHlwZUVycm9yLHY9cy5XZWFrTWFwO2lmKG98fGYuc3RhdGUpe3ZhciBnPWYuc3RhdGV8fChmLnN0YXRlPW5ldyB2KTtnLmdldD1nLmdldCxnLmhhcz1nLmhhcyxnLnNldD1nLnNldCxyPWZ1bmN0aW9uKHQsZSl7aWYoZy5oYXModCkpdGhyb3cgcCgiT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQiKTtyZXR1cm4gZS5mYWNhZGU9dCxnLnNldCh0LGUpLGV9LGk9ZnVuY3Rpb24odCl7cmV0dXJuIGcuZ2V0KHQpfHx7fX0sYT1mdW5jdGlvbih0KXtyZXR1cm4gZy5oYXModCl9fWVsc2V7dmFyIG09ZCgic3RhdGUiKTtoW21dPSEwLHI9ZnVuY3Rpb24odCxlKXtpZihsKHQsbSkpdGhyb3cgcCgiT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQiKTtyZXR1cm4gZS5mYWNhZGU9dCx1KHQsbSxlKSxlfSxpPWZ1bmN0aW9uKHQpe3JldHVybiBsKHQsbSk/dFttXTp7fX0sYT1mdW5jdGlvbih0KXtyZXR1cm4gbCh0LG0pfX10LmV4cG9ydHM9e3NldDpyLGdldDppLGhhczphLGVuZm9yY2U6ZnVuY3Rpb24odCl7cmV0dXJuIGEodCk/aSh0KTpyKHQse30pfSxnZXR0ZXJGb3I6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuO2lmKCFjKGUpfHwobj1pKGUpKS50eXBlIT09dCl0aHJvdyBwKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrdCsiIHJlcXVpcmVkIik7cmV0dXJuIG59fX19LCI2YWUwIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5nZXRXaW5kb3dJbmZvPWZ1bmN0aW9uKCl7dmFyIHQ9d2luZG93LnNjcmVlbixlPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLG49L15BcHBsZS8udGVzdChuYXZpZ2F0b3IudmVuZG9yKSYmIm51bWJlciI9PT10eXBlb2Ygd2luZG93Lm9yaWVudGF0aW9uLHI9biYmOTA9PT1NYXRoLmFicyh3aW5kb3cub3JpZW50YXRpb24pLG89bj9NYXRoW3I/Im1heCI6Im1pbiJdKHQud2lkdGgsdC5oZWlnaHQpOnQud2lkdGgscz1uP01hdGhbcj8ibWluIjoibWF4Il0odC5oZWlnaHQsdC53aWR0aCk6dC5oZWlnaHQsYz1NYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsbyl8fG8sdT13aW5kb3cuaW5uZXJIZWlnaHQsbD1hLmRlZmF1bHQudG9wLGY9e2xlZnQ6YS5kZWZhdWx0LmxlZnQscmlnaHQ6Yy1hLmRlZmF1bHQucmlnaHQsdG9wOmEuZGVmYXVsdC50b3AsYm90dG9tOnUtYS5kZWZhdWx0LmJvdHRvbSx3aWR0aDpjLWEuZGVmYXVsdC5sZWZ0LWEuZGVmYXVsdC5yaWdodCxoZWlnaHQ6dS1hLmRlZmF1bHQudG9wLWEuZGVmYXVsdC5ib3R0b219LGQ9KDAsaS5kZWZhdWx0KSgpLGg9ZC50b3AscD1kLmJvdHRvbTtyZXR1cm4gdS09aCx1LT1wLHt3aW5kb3dUb3A6aCx3aW5kb3dCb3R0b206cCx3aW5kb3dXaWR0aDpjLHdpbmRvd0hlaWdodDp1LHBpeGVsUmF0aW86ZSxzY3JlZW5XaWR0aDpvLHNjcmVlbkhlaWdodDpzLHN0YXR1c0JhckhlaWdodDpsLHNhZmVBcmVhOmYsc2FmZUFyZWFJbnNldHM6e3RvcDphLmRlZmF1bHQudG9wLHJpZ2h0OmEuZGVmYXVsdC5yaWdodCxib3R0b206YS5kZWZhdWx0LmJvdHRvbSxsZWZ0OmEuZGVmYXVsdC5sZWZ0fSxzY3JlZW5Ub3A6cy11fX0sbigiYWMxZiIpLG4oIjAwYjQiKTt2YXIgaT1yKG4oIjRmY2IiKSksYT1yKG4oImQ4YzgiKSl9LCI2YjY5IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiYWMxZiIpLG4oIjUzMTkiKTt2YXIgcj1uKCJkYjZhIiksaT17bW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fdG9nZ2xlTGlzdGVuZXJzKCJzdWJzY3JpYmUiLHRoaXMuaWQpLHRoaXMuJHdhdGNoKCJpZCIsKGZ1bmN0aW9uKGUsbil7dC5fdG9nZ2xlTGlzdGVuZXJzKCJ1bnN1YnNjcmliZSIsbiwhMCksdC5fdG9nZ2xlTGlzdGVuZXJzKCJzdWJzY3JpYmUiLGUsITApfSkpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fdG9nZ2xlTGlzdGVuZXJzKCJ1bnN1YnNjcmliZSIsdGhpcy5pZCksdGhpcy5fY29udGV4dElkJiZ0aGlzLl90b2dnbGVMaXN0ZW5lcnMoInVuc3Vic2NyaWJlIix0aGlzLl9jb250ZXh0SWQpfSxtZXRob2RzOntfdG9nZ2xlTGlzdGVuZXJzOmZ1bmN0aW9uKGUsbixpKXtpJiYhbnx8KDAsci5pc0ZuKSh0aGlzLl9oYW5kbGVTdWJzY3JpYmUpJiZ0W2VdKHRoaXMuJHBhZ2UuaWQrIi0iK3RoaXMuJG9wdGlvbnMubmFtZS5yZXBsYWNlKC9WVW5pKFtBLVpdKS8sIiQxIikudG9Mb3dlckNhc2UoKSsiLSIrbix0aGlzLl9oYW5kbGVTdWJzY3JpYmUpfSxfZ2V0Q29udGV4dEluZm86ZnVuY3Rpb24oKXt2YXIgdD0iY29udGV4dC0iLmNvbmNhdCh0aGlzLl91aWQpO3JldHVybiB0aGlzLl9jb250ZXh0SWR8fCh0aGlzLl90b2dnbGVMaXN0ZW5lcnMoInN1YnNjcmliZSIsdCksdGhpcy5fY29udGV4dElkPXQpLHtuYW1lOnRoaXMuJG9wdGlvbnMubmFtZS5yZXBsYWNlKC9WVW5pKFtBLVpdKS8sIiQxIikudG9Mb3dlckNhc2UoKSxpZDp0LHBhZ2U6dGhpcy4kcGFnZS5pZH19fX07ZS5kZWZhdWx0PWl9KS5jYWxsKHRoaXMsbigiYzVjMyIpKX0sIjZiNzUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn19LCI2Yjg3IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJkM2I3IiksbigiMTRkOSIpLG4oImM5NzUiKSxuKCJhNDM0Iik7dmFyIHIsaT1uKCJkYjZhIiksYT0haS5zdXBwb3J0c1Bhc3NpdmV8fHtwYXNzaXZlOiEwLGNhcHR1cmU6ITB9LG89W10scz0wO2Z1bmN0aW9uIGModCl7by5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS51c2VySW50ZXJhY3Q9dH0pKX1mdW5jdGlvbiB1KCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O2lmKCFyKXt2YXIgZT1bInRvdWNoc3RhcnQiLCJ0b3VjaG1vdmUiLCJ0b3VjaGVuZCIsIm1vdXNlZG93biIsIm1vdXNldXAiXTtlLmZvckVhY2goKGZ1bmN0aW9uKHQpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIodCwoZnVuY3Rpb24oKXshcyYmYyghMCkscysrLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7IS0tcyYmYyghMSl9KSwwKX0pLGEpfSkpLHI9ITB9by5wdXNoKHQpfXZhciBsPXtkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3VzZXJJbnRlcmFjdDohMX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt1KHRoaXMpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7KGZ1bmN0aW9uKHQpe3ZhciBlPW8uaW5kZXhPZih0KTtlPj0wJiZvLnNwbGljZShlLDEpfSkodGhpcyl9LGFkZEludGVyYWN0TGlzdGVuZXI6dSxnZXRTdGF0dXM6ZnVuY3Rpb24oKXtyZXR1cm4hIXN9fTtlLmRlZmF1bHQ9bH0sIjZjNTkiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPSJvYmplY3QiPT10eXBlb2YgRGVubyYmRGVubyYmIm9iamVjdCI9PXR5cGVvZiBEZW5vLnZlcnNpb259LCI2Y2E3IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIyMGIxIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiNmNiZCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiYTllMyIpLG4oImNhYWQiKSxuKCIyNTMyIiksbigiOTlhZiIpLG4oImM5NzUiKSxuKCJhY2Q4Iik7dmFyIHI9bigiOTg3ZCIpLGk9WyJkb25lIiwiZ28iLCJuZXh0Iiwic2VhcmNoIiwic2VuZCJdLGE9WyJub25lIiwidGV4dCIsImRlY2ltYWwiLCJudW1lcmljIiwidGVsIiwic2VhcmNoIiwiZW1haWwiLCJ1cmwiXSxvPXtuYW1lOiJUZXh0YXJlYSIsbWl4aW5zOltyLmZpZWxkXSxwcm9wczp7bmFtZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sbWF4bGVuZ3RoOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjE0MH0scGxhY2Vob2xkZXI6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGRpc2FibGVkOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0scGxhY2Vob2xkZXJDbGFzczp7dHlwZTpTdHJpbmcsZGVmYXVsdDoidGV4dGFyZWEtcGxhY2Vob2xkZXIifSxwbGFjZWhvbGRlclN0eWxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxhdXRvSGVpZ2h0Ont0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sY29uZmlybVR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6InJldHVybiIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiBpLmNvbmNhdCgicmV0dXJuIikuaW5jbHVkZXModCl9fSxpbnB1dG1vZGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6dm9pZCAwLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4hIX5hLmluZGV4T2YodCl9fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnt2YWx1ZUNvbXBvc2l0aW9uOiIiLGhlaWdodDowLGZvY3VzQ2hhbmdlU291cmNlOiIiLGZpeE1hcmdpbjowPT09U3RyaW5nKG5hdmlnYXRvci5wbGF0Zm9ybSkuaW5kZXhPZigiaVAiKSYmMD09PVN0cmluZyhuYXZpZ2F0b3IudmVuZG9yKS5pbmRleE9mKCJBcHBsZSIpJiYiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIhPT13aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1lZGlhfX0sY29tcHV0ZWQ6e21heGxlbmd0aE51bWJlcjpmdW5jdGlvbigpe3ZhciB0PU51bWJlcih0aGlzLm1heGxlbmd0aCk7cmV0dXJuIGlzTmFOKHQpPzE0MDp0fSx2YWx1ZUNvbXB1dGU6ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5jb21wb3Npbmc/dGhpcy52YWx1ZUNvbXBvc2l0aW9uOnRoaXMudmFsdWVTeW5jKS5zcGxpdCgiXG4iKX0saXNEb25lOmZ1bmN0aW9uKCl7cmV0dXJuIGkuaW5jbHVkZXModGhpcy5jb25maXJtVHlwZSl9fSx3YXRjaDp7Zm9jdXM6ZnVuY3Rpb24odCl7dCYmKHRoaXMuZm9jdXNDaGFuZ2VTb3VyY2U9ImZvY3VzIil9LGhlaWdodDpmdW5jdGlvbih0KXt2YXIgZT1wYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUodGhpcy4kZWwpLmxpbmVIZWlnaHQpO2lzTmFOKGUpJiYoZT10aGlzLiRyZWZzLmxpbmUub2Zmc2V0SGVpZ2h0KTt2YXIgbj1NYXRoLnJvdW5kKHQvZSk7dGhpcy4kdHJpZ2dlcigibGluZWNoYW5nZSIse30se2hlaWdodDp0LGhlaWdodFJweDo3NTAvd2luZG93LmlubmVyV2lkdGgqdCxsaW5lQ291bnQ6bn0pLHRoaXMuYXV0b0hlaWdodCYmKHRoaXMuJGVsLnN0eWxlLmhlaWdodD0iYXV0byIsdGhpcy4kcmVmcy53cmFwcGVyLnN0eWxlLmhlaWdodD10aGlzLmhlaWdodCsicHgiKX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLiRkaXNwYXRjaCgiRm9ybSIsInVuaS1mb3JtLWdyb3VwLXVwZGF0ZSIse3R5cGU6ImFkZCIsdm06dGhpc30pfSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5fcmVzaXplKHtoZWlnaHQ6dGhpcy4kcmVmcy5zZW5zb3IuJGVsLm9mZnNldEhlaWdodH0pO3ZhciB0PXRoaXM7d2hpbGUodCl7dmFyIGU9dC4kb3B0aW9ucy5fc2NvcGVJZDtlJiZ0aGlzLiRyZWZzLnBsYWNlaG9sZGVyLnNldEF0dHJpYnV0ZShlLCIiKSx0PXQuJHBhcmVudH19LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLiRkaXNwYXRjaCgiRm9ybSIsInVuaS1mb3JtLWdyb3VwLXVwZGF0ZSIse3R5cGU6InJlbW92ZSIsdm06dGhpc30pfSxtZXRob2RzOntfb25LZXlEb3duRW50ZXI6ZnVuY3Rpb24odCl7dGhpcy5pc0RvbmUmJnQucHJldmVudERlZmF1bHQoKX0sX29uS2V5VXBFbnRlcjpmdW5jdGlvbih0KXt0aGlzLmlzRG9uZSYmKHRoaXMuX2NvbmZpcm0odCksIXRoaXMuY29uZmlybUhvbGQmJnRoaXMuJHJlZnMudGV4dGFyZWEuYmx1cigpKX0sX29uQ29tcG9zaXRpb246ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJjb21wb3NpdGlvbnN0YXJ0Ijp0aGlzLmNvbXBvc2luZz0hMDticmVhaztjYXNlImNvbXBvc2l0aW9uZW5kIjp0aGlzLmNvbXBvc2luZyYmKHRoaXMuY29tcG9zaW5nPSExLHRoaXMuX29uSW5wdXQodCkpO2JyZWFrfSF0aGlzLmlnbm9yZUNvbXBvc2l0aW9uRXZlbnQmJnRoaXMuJHRyaWdnZXIodC50eXBlLHQse2RhdGE6dC5kYXRhfSl9LF9jb25maXJtOmZ1bmN0aW9uKHQpe3RoaXMuJHRyaWdnZXIoImNvbmZpcm0iLHQse3ZhbHVlOnRoaXMudmFsdWVTeW5jfSl9LF9saW5lY2hhbmdlOmZ1bmN0aW9uKHQpe3RoaXMuJHRyaWdnZXIoImxpbmVjaGFuZ2UiLHQse3ZhbHVlOnRoaXMudmFsdWVTeW5jfSl9LF9vblRvdWNoc3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLmZvY3VzQ2hhbmdlU291cmNlPSJ0b3VjaCJ9LF9yZXNpemU6ZnVuY3Rpb24odCl7dmFyIGU9dC5oZWlnaHQ7dGhpcy5oZWlnaHQ9ZX0sX29uSW5wdXQ6ZnVuY3Rpb24odCxlKXt0aGlzLmNvbXBvc2luZyYmdGhpcy5pZ25vcmVDb21wb3NpdGlvbkV2ZW50P3RoaXMudmFsdWVDb21wb3NpdGlvbj10LnRhcmdldC52YWx1ZToodGhpcy5pZ25vcmVDb21wb3NpdGlvbkV2ZW50fHwodGhpcy52YWx1ZVN5bmM9dGhpcy4kcmVmcy50ZXh0YXJlYS52YWx1ZSksdGhpcy4kdHJpZ2dlcklucHV0KHQse3ZhbHVlOnRoaXMudmFsdWVTeW5jLGN1cnNvcjp0aGlzLiRyZWZzLnRleHRhcmVhLnNlbGVjdGlvbkVuZH0sZSkpfSxfZ2V0Rm9ybURhdGE6ZnVuY3Rpb24oKXtyZXR1cm57dmFsdWU6dGhpcy52YWx1ZVN5bmMsa2V5OnRoaXMubmFtZX19LF9yZXNldEZvcm1EYXRhOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZVN5bmM9IiJ9fX07ZS5kZWZhdWx0PW99LCI2ZDYxIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImRhODQiKSxhPW4oImUzMzAiKSxvPW4oIjk0Y2EiKSxzPW4oImNiMmQiKSxjPW4oImYxODMiKSx1PW4oIjIyNjYiKSxsPW4oIjE5YWEiKSxmPW4oIjE2MjYiKSxkPW4oIjcyMzQiKSxoPW4oIjg2MWQiKSxwPW4oImQwMzkiKSx2PW4oIjFjN2UiKSxnPW4oImQ0NGUiKSxtPW4oIjcxNTYiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe3ZhciBiPS0xIT09dC5pbmRleE9mKCJNYXAiKSx5PS0xIT09dC5pbmRleE9mKCJXZWFrIiksXz1iPyJzZXQiOiJhZGQiLHc9aVt0XSx4PXcmJncucHJvdG90eXBlLFM9dyxUPXt9LEM9ZnVuY3Rpb24odCl7dmFyIGU9YSh4W3RdKTtzKHgsdCwiYWRkIj09dD9mdW5jdGlvbih0KXtyZXR1cm4gZSh0aGlzLDA9PT10PzA6dCksdGhpc306ImRlbGV0ZSI9PXQ/ZnVuY3Rpb24odCl7cmV0dXJuISh5JiYhaCh0KSkmJmUodGhpcywwPT09dD8wOnQpfToiZ2V0Ij09dD9mdW5jdGlvbih0KXtyZXR1cm4geSYmIWgodCk/dm9pZCAwOmUodGhpcywwPT09dD8wOnQpfToiaGFzIj09dD9mdW5jdGlvbih0KXtyZXR1cm4hKHkmJiFoKHQpKSYmZSh0aGlzLDA9PT10PzA6dCl9OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodGhpcywwPT09dD8wOnQsbiksdGhpc30pfSxrPW8odCwhZih3KXx8ISh5fHx4LmZvckVhY2gmJiFwKChmdW5jdGlvbigpeyhuZXcgdykuZW50cmllcygpLm5leHQoKX0pKSkpO2lmKGspUz1uLmdldENvbnN0cnVjdG9yKGUsdCxiLF8pLGMuZW5hYmxlKCk7ZWxzZSBpZihvKHQsITApKXt2YXIgTz1uZXcgUyxFPU9bX10oeT97fTotMCwxKSE9TyxJPXAoKGZ1bmN0aW9uKCl7Ty5oYXMoMSl9KSksUD12KChmdW5jdGlvbih0KXtuZXcgdyh0KX0pKSxNPSF5JiZwKChmdW5jdGlvbigpe3ZhciB0PW5ldyB3LGU9NTt3aGlsZShlLS0pdFtfXShlLGUpO3JldHVybiF0LmhhcygtMCl9KSk7UHx8KFM9ZSgoZnVuY3Rpb24odCxlKXtsKHQseCk7dmFyIG49bShuZXcgdyx0LFMpO3JldHVybiBkKGUpfHx1KGUsbltfXSx7dGhhdDpuLEFTX0VOVFJJRVM6Yn0pLG59KSksUy5wcm90b3R5cGU9eCx4LmNvbnN0cnVjdG9yPVMpLChJfHxNKSYmKEMoImRlbGV0ZSIpLEMoImhhcyIpLGImJkMoImdldCIpKSwoTXx8RSkmJkMoXykseSYmeC5jbGVhciYmZGVsZXRlIHguY2xlYXJ9cmV0dXJuIFRbdF09UyxyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOlMhPXd9LFQpLGcoUyx0KSx5fHxuLnNldFN0cm9uZyhTLHQsYiksU319LCI2ZjUzIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiZTMzMCIpLGE9bigiZGY3NSIpLG89bigiZmM2YSIpLHM9bigiZDFlNyIpLmYsYz1pKHMpLHU9aShbXS5wdXNoKSxsPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbixpPW8oZSkscz1hKGkpLGw9cy5sZW5ndGgsZj0wLGQ9W107d2hpbGUobD5mKW49c1tmKytdLHImJiFjKGksbil8fHUoZCx0P1tuLGlbbl1dOmlbbl0pO3JldHVybiBkfX07dC5leHBvcnRzPXtlbnRyaWVzOmwoITApLHZhbHVlczpsKCExKX19LDcwMzc6ZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHQuZXhwb3J0cz1yPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSx0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHNbImRlZmF1bHQiXT10LmV4cG9ydHMscihlKX1uKCJhNGQzIiksbigiZTAxYSIpLG4oImQzYjciKSxuKCJkMjhiIiksbigiM2NhMyIpLG4oImRkYjAiKSx0LmV4cG9ydHM9cix0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHNbImRlZmF1bHQiXT10LmV4cG9ydHN9LDcwNDE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0LGUsbil7bihudWxsLHQpfX0sNzE0OTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImQwNjYiKSxhPW4oImM0MzAiKSxvPW4oImQyNTYiKSxzPW4oIjQ3MzgiKS5DT05TVFJVQ1RPUixjPW4oImNkZjkiKSx1PWkoIlByb21pc2UiKSxsPWEmJiFzO3Ioe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMCxmb3JjZWQ6YXx8c30se3Jlc29sdmU6ZnVuY3Rpb24odCl7cmV0dXJuIGMobCYmdGhpcz09PXU/bzp0aGlzLHQpfX0pfSw3MTU2OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIxNjI2IiksaT1uKCI4NjFkIiksYT1uKCJkMmJiIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbyxzO3JldHVybiBhJiZyKG89ZS5jb25zdHJ1Y3RvcikmJm8hPT1uJiZpKHM9by5wcm90b3R5cGUpJiZzIT09bi5wcm90b3R5cGUmJmEodCxzKSx0fX0sNzIzNDpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09PXR8fHZvaWQgMD09PXR9fSwiNzJmNyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IikuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxpPW4oImQwMzkiKSxhPW4oImRhODQiKSxvPW4oImUzMzAiKSxzPWEuVWludDhBcnJheSxjPXMmJnMucHJvdG90eXBlfHx7fSx1PVtdLnRvU3RyaW5nLGw9byhbXS5qb2luKTtpKChmdW5jdGlvbigpe3UuY2FsbCh7fSl9KSkmJih1PWZ1bmN0aW9uKCl7cmV0dXJuIGwodGhpcyl9KTt2YXIgZj1jLnRvU3RyaW5nIT11O3IoInRvU3RyaW5nIix1LGYpfSw3MzI5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5pbnZva2U9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4oZT10KS5pbnZva2VDYWxsYmFja0hhbmRsZXIuYXBwbHkoZSxhcmd1bWVudHMpfSxlLnBhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LGUucmVtb3ZlPWZ1bmN0aW9uKGUpe3JldHVybiB0LnJlbW92ZUNhbGxiYWNrSGFuZGxlcihlKX0sZS51bnBhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LCI3MzVlIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImViYjUiKSxpPW4oIjgxZDUiKSxhPW4oImY0OTUiKSxvPW4oImY1ZGYiKSxzPW4oImM2NWIiKSxjPW4oImUzMzAiKSx1PW4oImQwMzkiKSxsPXIuYVR5cGVkQXJyYXksZj1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsZD1jKCIiLnNsaWNlKSxoPXUoKGZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gbmV3IEludDhBcnJheSgyKS5maWxsKHt2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHQrK319KSwxIT09dH0pKTtmKCJmaWxsIiwoZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aDtsKHRoaXMpO3ZhciBuPSJCaWciPT09ZChvKHRoaXMpLDAsMyk/YSh0KTordDtyZXR1cm4gcyhpLHRoaXMsbixlPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxlPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9KSxoKX0sIjczYmYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgcj1uKCJkYjZhIiksaT17ZGF0YTpmdW5jdGlvbigpe3JldHVybntzaG93TW9kYWw6e3Zpc2libGU6ITF9fX0sY3JlYXRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5vbigib25TaG93TW9kYWwiLChmdW5jdGlvbih0LG4pe2Uuc2hvd01vZGFsPXQsZS5vbk1vZGFsQ2xvc2VDYWxsYmFjaz1ufSkpLHQub24oIm9uSGlkZVBvcHVwIiwoZnVuY3Rpb24odCl7ZS5zaG93TW9kYWwudmlzaWJsZT0hMX0pKX0sbWV0aG9kczp7X29uTW9kYWxDbG9zZTpmdW5jdGlvbih0KXt0aGlzLnNob3dNb2RhbC52aXNpYmxlPSExLCgwLHIuaXNGbikodGhpcy5vbk1vZGFsQ2xvc2VDYWxsYmFjaykmJnRoaXMub25Nb2RhbENsb3NlQ2FsbGJhY2sodCl9fX07ZS5kZWZhdWx0PWl9KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sNzQxODpmdW5jdGlvbih0LGUpe2UuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSw3NDY1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjk5ZTAiKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LCI3NGU4IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImRhODQiKSxhPW4oImM2NWIiKSxvPW4oIjgzYWIiKSxzPW4oIjhhYTciKSxjPW4oImViYjUiKSx1PW4oIjYyMWEiKSxsPW4oIjE5YWEiKSxmPW4oIjVjNmMiKSxkPW4oIjkxMTIiKSxoPW4oImVhYzUiKSxwPW4oIjUwYzQiKSx2PW4oIjBiMjUiKSxnPW4oIjE4MmQiKSxtPW4oImEwNGIiKSxiPW4oIjFhMmQiKSx5PW4oImY1ZGYiKSxfPW4oIjg2MWQiKSx3PW4oImQ5YjUiKSx4PW4oIjdjNzMiKSxTPW4oIjNhOWIiKSxUPW4oImQyYmIiKSxDPW4oIjI0MWMiKS5mLGs9bigiYTA3OCIpLE89bigiYjcyNyIpLmZvckVhY2gsRT1uKCIyNjI2IiksST1uKCI5YmYyIiksUD1uKCIwNmNmIiksTT1uKCI2OWYzIiksQT1uKCI3MTU2IiksJD1NLmdldCxMPU0uc2V0LGo9TS5lbmZvcmNlLFI9SS5mLE49UC5mLEI9TWF0aC5yb3VuZCxEPWkuUmFuZ2VFcnJvcixGPXUuQXJyYXlCdWZmZXIsVz1GLnByb3RvdHlwZSxIPXUuRGF0YVZpZXcsVj1jLk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MsVT1jLlRZUEVEX0FSUkFZX1RBRyxxPWMuVHlwZWRBcnJheSx6PWMuVHlwZWRBcnJheVByb3RvdHlwZSxZPWMuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcixYPWMuaXNUeXBlZEFycmF5LEc9ZnVuY3Rpb24odCxlKXtZKHQpO3ZhciBuPTAscj1lLmxlbmd0aCxpPW5ldyB0KHIpO3doaWxlKHI+bilpW25dPWVbbisrXTtyZXR1cm4gaX0sUT1mdW5jdGlvbih0LGUpe1IodCxlLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gJCh0aGlzKVtlXX19KX0sSj1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gUyhXLHQpfHwiQXJyYXlCdWZmZXIiPT0oZT15KHQpKXx8IlNoYXJlZEFycmF5QnVmZmVyIj09ZX0sSz1mdW5jdGlvbih0LGUpe3JldHVybiBYKHQpJiYhdyhlKSYmZSBpbiB0JiZoKCtlKSYmZT49MH0sWj1mdW5jdGlvbih0LGUpe3JldHVybiBlPW0oZSksSyh0LGUpP2YoMix0W2VdKTpOKHQsZSl9LHR0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1tKGUpLCEoSyh0LGUpJiZfKG4pJiZiKG4sInZhbHVlIikpfHxiKG4sImdldCIpfHxiKG4sInNldCIpfHxuLmNvbmZpZ3VyYWJsZXx8YihuLCJ3cml0YWJsZSIpJiYhbi53cml0YWJsZXx8YihuLCJlbnVtZXJhYmxlIikmJiFuLmVudW1lcmFibGU/Uih0LGUsbik6KHRbZV09bi52YWx1ZSx0KX07bz8oVnx8KFAuZj1aLEkuZj10dCxRKHosImJ1ZmZlciIpLFEoeiwiYnl0ZU9mZnNldCIpLFEoeiwiYnl0ZUxlbmd0aCIpLFEoeiwibGVuZ3RoIikpLHIoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohVn0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpaLGRlZmluZVByb3BlcnR5OnR0fSksdC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbz10Lm1hdGNoKC9cZCskLylbMF0vOCxjPXQrKG4/IkNsYW1wZWQiOiIiKSsiQXJyYXkiLHU9ImdldCIrdCxmPSJzZXQiK3QsaD1pW2NdLG09aCxiPW0mJm0ucHJvdG90eXBlLHk9e30sdz1mdW5jdGlvbih0LGUpe1IodCxlLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbj0kKHQpO3JldHVybiBuLnZpZXdbdV0oZSpvK24uYnl0ZU9mZnNldCwhMCl9KHRoaXMsZSl9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3ZhciBpPSQodCk7biYmKHI9KHI9QihyKSk8MD8wOnI+MjU1PzI1NToyNTUmciksaS52aWV3W2ZdKGUqbytpLmJ5dGVPZmZzZXQsciwhMCl9KHRoaXMsZSx0KX0sZW51bWVyYWJsZTohMH0pfTtWP3MmJihtPWUoKGZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBsKHQsYiksQShmdW5jdGlvbigpe3JldHVybiBfKGUpP0ooZSk/dm9pZCAwIT09cj9uZXcgaChlLGcobixvKSxyKTp2b2lkIDAhPT1uP25ldyBoKGUsZyhuLG8pKTpuZXcgaChlKTpYKGUpP0cobSxlKTphKGssbSxlKTpuZXcgaCh2KGUpKX0oKSx0LG0pfSkpLFQmJlQobSxxKSxPKEMoaCksKGZ1bmN0aW9uKHQpe3QgaW4gbXx8ZChtLHQsaFt0XSl9KSksbS5wcm90b3R5cGU9Yik6KG09ZSgoZnVuY3Rpb24odCxlLG4scil7bCh0LGIpO3ZhciBpLHMsYyx1PTAsZj0wO2lmKF8oZSkpe2lmKCFKKGUpKXJldHVybiBYKGUpP0cobSxlKTphKGssbSxlKTtpPWUsZj1nKG4sbyk7dmFyIGQ9ZS5ieXRlTGVuZ3RoO2lmKHZvaWQgMD09PXIpe2lmKGQlbyl0aHJvdyBEKCJXcm9uZyBsZW5ndGgiKTtpZihzPWQtZixzPDApdGhyb3cgRCgiV3JvbmcgbGVuZ3RoIil9ZWxzZSBpZihzPXAocikqbyxzK2Y+ZCl0aHJvdyBEKCJXcm9uZyBsZW5ndGgiKTtjPXMvb31lbHNlIGM9dihlKSxzPWMqbyxpPW5ldyBGKHMpO0wodCx7YnVmZmVyOmksYnl0ZU9mZnNldDpmLGJ5dGVMZW5ndGg6cyxsZW5ndGg6Yyx2aWV3Om5ldyBIKGkpfSk7d2hpbGUodTxjKXcodCx1KyspfSkpLFQmJlQobSxxKSxiPW0ucHJvdG90eXBlPXgoeikpLGIuY29uc3RydWN0b3IhPT1tJiZkKGIsImNvbnN0cnVjdG9yIixtKSxqKGIpLlR5cGVkQXJyYXlDb25zdHJ1Y3Rvcj1tLFUmJmQoYixVLGMpO3ZhciBTPW0hPWg7eVtjXT1tLHIoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6UyxzaGFtOiFWfSx5KSwiQllURVNfUEVSX0VMRU1FTlQiaW4gbXx8ZChtLCJCWVRFU19QRVJfRUxFTUVOVCIsbyksIkJZVEVTX1BFUl9FTEVNRU5UImluIGJ8fGQoYiwiQllURVNfUEVSX0VMRU1FTlQiLG8pLEUoYyl9KTp0LmV4cG9ydHM9ZnVuY3Rpb24oKXt9fSw3NTUxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsZSl7dC4kcm91dGVyLmJlZm9yZUVhY2goKGZ1bmN0aW9uKG4scixpKXtmLmNhbGwodCxuLHIsaSxlKX0pKSx0LiRyb3V0ZXIuYWZ0ZXJFYWNoKChmdW5jdGlvbihlLG4pe2QuY2FsbCh0LGUsbil9KSl9LGUuZ2V0VGFiQmFyU2Nyb2xsUG9zaXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHNbdF19LG4oImM5NzUiKSxuKCIxNGQ5IiksbigiZDgxZCIpLG4oImE0MzQiKSxuKCJlMjVlIiksbigiZTljNCIpLG4oIjdkYjAiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oIjI2ZTkiKTt2YXIgcj1uKCI1NTlhIik7ZnVuY3Rpb24gaSh0KXstMT09PXRoaXMua2VlcEFsaXZlSW5jbHVkZS5pbmRleE9mKHQpJiZ0aGlzLmtlZXBBbGl2ZUluY2x1ZGUucHVzaCh0KX12YXIgYT1bXTtmdW5jdGlvbiBvKHQpe2lmKCJudW1iZXIiPT09dHlwZW9mIHQpYT10aGlzLmtlZXBBbGl2ZUluY2x1ZGUuc3BsaWNlKC0odC0xKSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VJbnQodC5zcGxpdCgiLSIpLnBvcCgpKX0pKTtlbHNle3ZhciBlPXRoaXMua2VlcEFsaXZlSW5jbHVkZS5pbmRleE9mKHQpOy0xIT09ZSYmdGhpcy5rZWVwQWxpdmVJbmNsdWRlLnNwbGljZShlLDEpfX12YXIgcz1PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIGModCxlLG4pe2UmJm4mJmUubWV0YS5pc1RhYkJhciYmbi5tZXRhLmlzVGFiQmFyJiZmdW5jdGlvbih0KXtzW3RdPXt4OndpbmRvdy5wYWdlWE9mZnNldCx5OndpbmRvdy5wYWdlWU9mZnNldH19KG4ucGFyYW1zLl9faWRfXyk7Zm9yKHZhciBpPWdldEN1cnJlbnRQYWdlcygpLGE9aS5sZW5ndGgtMTthPj0wO2EtLSl7dmFyIGM9aVthXSx1PWMuJHBhZ2UubWV0YTt1LmlzVGFiQmFyfHwoby5jYWxsKHRoaXMsdS5uYW1lKyItIitjLiRwYWdlLmlkKSwoMCxyLmNhbGxQYWdlSG9vaykoYywib25VbmxvYWQiKSl9fWZ1bmN0aW9uIHUodCl7X191bmlDb25maWcucmVMYXVuY2g9KF9fdW5pQ29uZmlnLnJlTGF1bmNofHwxKSsxO2Zvcih2YXIgZT1nZXRDdXJyZW50UGFnZXMoITApLG49ZS5sZW5ndGgtMTtuPj0wO24tLSkoMCxyLmNhbGxQYWdlSG9vaykoZVtuXSwib25VbmxvYWQiKSxlW25dLiRkZXN0cm95KCk7dGhpcy5rZWVwQWxpdmVJbmNsdWRlPVtdLHM9T2JqZWN0LmNyZWF0ZShudWxsKX12YXIgbD1bXTtmdW5jdGlvbiBmKHQsZSxuLHIpe2w9Z2V0Q3VycmVudFBhZ2VzKCEwKTt2YXIgYT1lLnBhcmFtcy5fX2lkX18scz10LnBhcmFtcy5fX2lkX18sZj10Lm1ldGEubmFtZSsiLSIrcztpZihzPT09YSYmInJlTGF1bmNoIiE9PXQudHlwZSl0LmZ1bGxQYXRoIT09ZS5mdWxsUGF0aD8oaS5jYWxsKHRoaXMsZiksbigpKTpuKCExKTtlbHNlIGlmKHQubWV0YS5pZCYmdC5tZXRhLmlkIT09cyluKHtwYXRoOnQucGF0aCxyZXBsYWNlOiEwfSk7ZWxzZXt2YXIgZD1lLm1ldGEubmFtZSsiLSIrYTtzd2l0Y2godC50eXBlKXtjYXNlIm5hdmlnYXRlVG8iOmJyZWFrO2Nhc2UicmVkaXJlY3RUbyI6by5jYWxsKHRoaXMsZCksZS5tZXRhJiZlLm1ldGEuaXNRdWl0JiYodC5tZXRhLmlzUXVpdD0hMCx0Lm1ldGEuaXNFbnRyeT0hIWUubWV0YS5pc0VudHJ5KTticmVhaztjYXNlInN3aXRjaFRhYiI6Yy5jYWxsKHRoaXMscix0LGUpO2JyZWFrO2Nhc2UicmVMYXVuY2giOnUuY2FsbCh0aGlzLGYpLHQubWV0YS5pc1F1aXQ9ITA7YnJlYWs7ZGVmYXVsdDphJiZhPnMmJihvLmNhbGwodGhpcyxkKSx0aGlzLiRyb3V0ZXIuXyRkZWx0YT4xJiZvLmNhbGwodGhpcyx0aGlzLiRyb3V0ZXIuXyRkZWx0YSkpO2JyZWFrfWlmKCJyZUxhdW5jaCIhPT10LnR5cGUmJiJyZWRpcmVjdFRvIiE9PXQudHlwZSYmZS5tZXRhLmlkJiZpLmNhbGwodGhpcyxkKSxpLmNhbGwodGhpcyxmKSx0Lm1ldGEmJnQubWV0YS5uYW1lKXtkb2N1bWVudC5ib2R5LmNsYXNzTmFtZT0idW5pLWJvZHkgIit0Lm1ldGEubmFtZTt2YXIgaD0ibnZ1ZS1kaXItIitfX3VuaUNvbmZpZy5udnVlWyJmbGV4LWRpcmVjdGlvbiJdO3QubWV0YS5pc05WdWU/KGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJudnVlIiwiIiksZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoaCwiIikpOihkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgibnZ1ZSIpLGRvY3VtZW50LmJvZHkucmVtb3ZlQXR0cmlidXRlKGgpKX1uKCl9fWZ1bmN0aW9uIGQoZSxuKXt2YXIgaSxvPW4ucGFyYW1zLl9faWRfXyxzPWUucGFyYW1zLl9faWRfXztmdW5jdGlvbiBjKHQpe2lmKHQpeygwLHIuY2FsbFBhZ2VIb29rKSh0LCJvblVubG9hZCIpO3ZhciBlPWwuaW5kZXhPZih0KTtlPj0wJiZsLnNwbGljZShlLDEpfX1zd2l0Y2goaT1uLm1ldGEuaXNTZXQ/bC5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC4kcGFnZS5tZXRhLnBhZ2VQYXRoPT09bi5tZXRhLnBhZ2VQYXRofSkpOmwuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuJHBhZ2UuaWQ9PT1vfSkpLGUudHlwZSl7Y2FzZSJuYXZpZ2F0ZVRvIjppJiYoMCxyLmNhbGxQYWdlSG9vaykoaSwib25IaWRlIik7YnJlYWs7Y2FzZSJyZWRpcmVjdFRvIjpjKGkpO2JyZWFrO2Nhc2Uic3dpdGNoVGFiIjpuLm1ldGEuaXNUYWJCYXImJmkmJigwLHIuY2FsbFBhZ2VIb29rKShpLCJvbkhpZGUiKTticmVhaztjYXNlInJlTGF1bmNoIjpicmVhaztkZWZhdWx0Om8mJm8+cyYmKGMoaSksdGhpcy4kcm91dGVyLl8kZGVsdGE+MSYmYS5yZXZlcnNlKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bC5maW5kKChmdW5jdGlvbihlKXtyZXR1cm4gZS4kcGFnZS5pZD09PXR9KSk7YyhlKX0pKSk7YnJlYWt9aWYoZGVsZXRlIHRoaXMuJHJvdXRlci5fJGRlbHRhLGEubGVuZ3RoPTAsInJlTGF1bmNoIiE9PWUudHlwZSl7dmFyIHUsZj1nZXRDdXJyZW50UGFnZXMoITApO3U9ZS5tZXRhLmlzU2V0P2YuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuJHBhZ2UubWV0YS5wYWdlUGF0aD09PWUubWV0YS5wYWdlUGF0aH0pKTpmLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LiRwYWdlLmlkPT09c30pKSx1JiYoc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0LmVtaXQoIm9uTmF2aWdhdGlvbkJhckNoYW5nZSIsdS4kcGFyZW50LiRwYXJlbnQubmF2aWdhdGlvbkJhciksKDAsci5jYWxsUGFnZUhvb2spKHUsIm9uU2hvdyIpfSksMCksZG9jdW1lbnQudGl0bGU9dS4kcGFyZW50LiRwYXJlbnQubmF2aWdhdGlvbkJhci50aXRsZVRleHQpfX19KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sNzY2NjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJhOWUzIiksbigiYWMxZiIpLG4oIjAwYjQiKSxuKCJhY2Q4IiksbigiMTRkOSIpLG4oImQ0MDEiKSxuKCJkM2I3IiksbigiMjVmMCIpO3ZhciBpPXIobigiNWZlNyIpKSxhPW4oIjlmMDQiKSxvPW4oIjY0ZmUiKSxzPSExO2Z1bmN0aW9uIGModCl7c3x8KHM9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe3QoKSxzPSExfSkpKX1mdW5jdGlvbiB1KHQsZSl7cmV0dXJuKygoMWUzKnQtMWUzKmUpLzFlMykudG9GaXhlZCgxKX1mdW5jdGlvbiBsKHQsZSxuKXt2YXIgcj17aWQ6MCxjYW5jZWxsZWQ6ITF9O3JldHVybiBmdW5jdGlvbiBlKG4scixpLGEpe2lmKCFufHwhbi5jYW5jZWxsZWQpe2kocik7dmFyIG89dC5kb25lKCk7b3x8bi5jYW5jZWxsZWR8fChuLmlkPXJlcXVlc3RBbmltYXRpb25GcmFtZShlLmJpbmQobnVsbCxuLHIsaSxhKSkpLG8mJmEmJmEocil9fShyLHQsZSxuKSx7Y2FuY2VsOmZ1bmN0aW9uKHQpe3QmJnQuaWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHQuaWQpLHQmJih0LmNhbmNlbGxlZD0hMCl9LmJpbmQobnVsbCxyKSxtb2RlbDp0fX12YXIgZj17bmFtZToiTW92YWJsZVZpZXciLG1peGluczpbaS5kZWZhdWx0XSxwcm9wczp7ZGlyZWN0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJub25lIn0saW5lcnRpYTp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LG91dE9mQm91bmRzOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0seDp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDowfSx5Ont0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjB9LGRhbXBpbmc6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MjB9LGZyaWN0aW9uOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjJ9LGRpc2FibGVkOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sc2NhbGU6e3R5cGU6W0Jvb2xlYW4sU3RyaW5nXSxkZWZhdWx0OiExfSxzY2FsZU1pbjp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDouNX0sc2NhbGVNYXg6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MTB9LHNjYWxlVmFsdWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MX0sYW5pbWF0aW9uOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57eFN5bmM6dGhpcy5fZ2V0UHgodGhpcy54KSx5U3luYzp0aGlzLl9nZXRQeCh0aGlzLnkpLHNjYWxlVmFsdWVTeW5jOk51bWJlcih0aGlzLnNjYWxlVmFsdWUpfHwxLHdpZHRoOjAsaGVpZ2h0OjAsbWluWDowLG1pblk6MCxtYXhYOjAsbWF4WTowfX0sY29tcHV0ZWQ6e2RhbXBpbmdOdW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD1OdW1iZXIodGhpcy5kYW1waW5nKTtyZXR1cm4gaXNOYU4odCk/MjA6dH0sZnJpY3Rpb25OdW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD1OdW1iZXIodGhpcy5mcmljdGlvbik7cmV0dXJuIGlzTmFOKHQpfHx0PD0wPzI6dH0sc2NhbGVNaW5OdW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD1OdW1iZXIodGhpcy5zY2FsZU1pbik7cmV0dXJuIGlzTmFOKHQpPy41OnR9LHNjYWxlTWF4TnVtYmVyOmZ1bmN0aW9uKCl7dmFyIHQ9TnVtYmVyKHRoaXMuc2NhbGVNYXgpO3JldHVybiBpc05hTih0KT8xMDp0fSx4TW92ZTpmdW5jdGlvbigpe3JldHVybiJhbGwiPT09dGhpcy5kaXJlY3Rpb258fCJob3Jpem9udGFsIj09PXRoaXMuZGlyZWN0aW9ufSx5TW92ZTpmdW5jdGlvbigpe3JldHVybiJhbGwiPT09dGhpcy5kaXJlY3Rpb258fCJ2ZXJ0aWNhbCI9PT10aGlzLmRpcmVjdGlvbn19LHdhdGNoOnt4OmZ1bmN0aW9uKHQpe3RoaXMueFN5bmM9dGhpcy5fZ2V0UHgodCl9LHhTeW5jOmZ1bmN0aW9uKHQpe3RoaXMuX3NldFgodCl9LHk6ZnVuY3Rpb24odCl7dGhpcy55U3luYz10aGlzLl9nZXRQeCh0KX0seVN5bmM6ZnVuY3Rpb24odCl7dGhpcy5fc2V0WSh0KX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXt0aGlzLl9faGFuZGxlVG91Y2hTdGFydCgpfSxzY2FsZVZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuc2NhbGVWYWx1ZVN5bmM9TnVtYmVyKHQpfHwwfSxzY2FsZVZhbHVlU3luYzpmdW5jdGlvbih0KXt0aGlzLl9zZXRTY2FsZVZhbHVlKHQpfSxzY2FsZU1pbk51bWJlcjpmdW5jdGlvbigpe3RoaXMuX3NldFNjYWxlTWluT3JNYXgoKX0sc2NhbGVNYXhOdW1iZXI6ZnVuY3Rpb24oKXt0aGlzLl9zZXRTY2FsZU1pbk9yTWF4KCl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5fb2Zmc2V0PXt4OjAseTowfSx0aGlzLl9zY2FsZU9mZnNldD17eDowLHk6MH0sdGhpcy5fdHJhbnNsYXRlWD0wLHRoaXMuX3RyYW5zbGF0ZVk9MCx0aGlzLl9zY2FsZT0xLHRoaXMuX29sZFNjYWxlPTEsdGhpcy5fU1REPW5ldyBhLlNURCgxLDkqTWF0aC5wb3codGhpcy5kYW1waW5nTnVtYmVyLDIpLzQwLHRoaXMuZGFtcGluZ051bWJlciksdGhpcy5fZnJpY3Rpb249bmV3IGEuRnJpY3Rpb24oMSx0aGlzLmZyaWN0aW9uTnVtYmVyKSx0aGlzLl9kZWNsaW5lWD1uZXcgYS5EZWNsaW5lLHRoaXMuX2RlY2xpbmVZPW5ldyBhLkRlY2xpbmUsdGhpcy5fX3RvdWNoSW5mbz17aGlzdG9yeVg6WzAsMF0saGlzdG9yeVk6WzAsMF0saGlzdG9yeVQ6WzAsMF19fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy50b3VjaHRyYWNrKHRoaXMuJGVsLCJfb25UcmFjayIpLHRoaXMuc2V0UGFyZW50KCksdGhpcy5fZnJpY3Rpb24ucmVjb25maWd1cmUoMSx0aGlzLmZyaWN0aW9uTnVtYmVyKSx0aGlzLl9TVEQucmVjb25maWd1cmUoMSw5Kk1hdGgucG93KHRoaXMuZGFtcGluZ051bWJlciwyKS80MCx0aGlzLmRhbXBpbmdOdW1iZXIpLHRoaXMuJGVsLnN0eWxlLnRyYW5zZm9ybU9yaWdpbj0iY2VudGVyIiwoMCxvLmluaXRTY3JvbGxCb3VuY2UpKCl9LG1ldGhvZHM6e19nZXRQeDpmdW5jdGlvbih0KXtyZXR1cm4vXGQrW3VyXXB4JC9pLnRlc3QodCk/dW5pLnVweDJweChwYXJzZUZsb2F0KHQpKTpOdW1iZXIodCl8fDB9LF9zZXRYOmZ1bmN0aW9uKHQpe2lmKHRoaXMueE1vdmUpe2lmKHQrdGhpcy5fc2NhbGVPZmZzZXQueD09PXRoaXMuX3RyYW5zbGF0ZVgpcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVg7dGhpcy5fU0ZBJiZ0aGlzLl9TRkEuY2FuY2VsKCksdGhpcy5fYW5pbWF0aW9uVG8odCt0aGlzLl9zY2FsZU9mZnNldC54LHRoaXMueVN5bmMrdGhpcy5fc2NhbGVPZmZzZXQueSx0aGlzLl9zY2FsZSl9cmV0dXJuIHR9LF9zZXRZOmZ1bmN0aW9uKHQpe2lmKHRoaXMueU1vdmUpe2lmKHQrdGhpcy5fc2NhbGVPZmZzZXQueT09PXRoaXMuX3RyYW5zbGF0ZVkpcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVk7dGhpcy5fU0ZBJiZ0aGlzLl9TRkEuY2FuY2VsKCksdGhpcy5fYW5pbWF0aW9uVG8odGhpcy54U3luYyt0aGlzLl9zY2FsZU9mZnNldC54LHQrdGhpcy5fc2NhbGVPZmZzZXQueSx0aGlzLl9zY2FsZSl9cmV0dXJuIHR9LF9zZXRTY2FsZU1pbk9yTWF4OmZ1bmN0aW9uKCl7aWYoIXRoaXMuc2NhbGUpcmV0dXJuITE7dGhpcy5fdXBkYXRlU2NhbGUodGhpcy5fc2NhbGUsITApLHRoaXMuX3VwZGF0ZU9sZFNjYWxlKHRoaXMuX3NjYWxlKX0sX3NldFNjYWxlVmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuISF0aGlzLnNjYWxlJiYodD10aGlzLl9hZGp1c3RTY2FsZSh0KSx0aGlzLl91cGRhdGVTY2FsZSh0LCEwKSx0aGlzLl91cGRhdGVPbGRTY2FsZSh0KSx0KX0sX19oYW5kbGVUb3VjaFN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5faXNTY2FsaW5nfHx0aGlzLmRpc2FibGVkfHwoKDAsby5kaXNhYmxlU2Nyb2xsQm91bmNlKSh7ZGlzYWJsZTohMH0pLHRoaXMuX0ZBJiZ0aGlzLl9GQS5jYW5jZWwoKSx0aGlzLl9TRkEmJnRoaXMuX1NGQS5jYW5jZWwoKSx0aGlzLl9fdG91Y2hJbmZvLmhpc3RvcnlYPVswLDBdLHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVk9WzAsMF0sdGhpcy5fX3RvdWNoSW5mby5oaXN0b3J5VD1bMCwwXSx0aGlzLnhNb3ZlJiYodGhpcy5fX2Jhc2VYPXRoaXMuX3RyYW5zbGF0ZVgpLHRoaXMueU1vdmUmJih0aGlzLl9fYmFzZVk9dGhpcy5fdHJhbnNsYXRlWSksdGhpcy4kZWwuc3R5bGUud2lsbENoYW5nZT0idHJhbnNmb3JtIix0aGlzLl9jaGVja0Nhbk1vdmU9bnVsbCx0aGlzLl9maXJzdE1vdmVEaXJlY3Rpb249bnVsbCx0aGlzLl9pc1RvdWNoaW5nPSEwKX0sX19oYW5kbGVUb3VjaE1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighdGhpcy5faXNTY2FsaW5nJiYhdGhpcy5kaXNhYmxlZCYmdGhpcy5faXNUb3VjaGluZyl7dmFyIG49dGhpcy5fdHJhbnNsYXRlWCxyPXRoaXMuX3RyYW5zbGF0ZVk7aWYobnVsbD09PXRoaXMuX2ZpcnN0TW92ZURpcmVjdGlvbiYmKHRoaXMuX2ZpcnN0TW92ZURpcmVjdGlvbj1NYXRoLmFicyh0LmRldGFpbC5keC90LmRldGFpbC5keSk+MT8iaHRvdWNobW92ZSI6InZ0b3VjaG1vdmUiKSx0aGlzLnhNb3ZlJiYobj10LmRldGFpbC5keCt0aGlzLl9fYmFzZVgsdGhpcy5fX3RvdWNoSW5mby5oaXN0b3J5WC5zaGlmdCgpLHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVgucHVzaChuKSx0aGlzLnlNb3ZlfHxudWxsIT09dGhpcy5fY2hlY2tDYW5Nb3ZlfHwodGhpcy5fY2hlY2tDYW5Nb3ZlPU1hdGguYWJzKHQuZGV0YWlsLmR4L3QuZGV0YWlsLmR5KTwxKSksdGhpcy55TW92ZSYmKHI9dC5kZXRhaWwuZHkrdGhpcy5fX2Jhc2VZLHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVkuc2hpZnQoKSx0aGlzLl9fdG91Y2hJbmZvLmhpc3RvcnlZLnB1c2gociksdGhpcy54TW92ZXx8bnVsbCE9PXRoaXMuX2NoZWNrQ2FuTW92ZXx8KHRoaXMuX2NoZWNrQ2FuTW92ZT1NYXRoLmFicyh0LmRldGFpbC5keS90LmRldGFpbC5keCk8MSkpLHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVQuc2hpZnQoKSx0aGlzLl9fdG91Y2hJbmZvLmhpc3RvcnlULnB1c2godC5kZXRhaWwudGltZVN0YW1wKSwhdGhpcy5fY2hlY2tDYW5Nb3ZlKXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIGk9InRvdWNoIjtuPHRoaXMubWluWD90aGlzLm91dE9mQm91bmRzPyhpPSJ0b3VjaC1vdXQtb2YtYm91bmRzIixuPXRoaXMubWluWC10aGlzLl9kZWNsaW5lWC54KHRoaXMubWluWC1uKSk6bj10aGlzLm1pblg6bj50aGlzLm1heFgmJih0aGlzLm91dE9mQm91bmRzPyhpPSJ0b3VjaC1vdXQtb2YtYm91bmRzIixuPXRoaXMubWF4WCt0aGlzLl9kZWNsaW5lWC54KG4tdGhpcy5tYXhYKSk6bj10aGlzLm1heFgpLHI8dGhpcy5taW5ZP3RoaXMub3V0T2ZCb3VuZHM/KGk9InRvdWNoLW91dC1vZi1ib3VuZHMiLHI9dGhpcy5taW5ZLXRoaXMuX2RlY2xpbmVZLngodGhpcy5taW5ZLXIpKTpyPXRoaXMubWluWTpyPnRoaXMubWF4WSYmKHRoaXMub3V0T2ZCb3VuZHM/KGk9InRvdWNoLW91dC1vZi1ib3VuZHMiLHI9dGhpcy5tYXhZK3RoaXMuX2RlY2xpbmVZLngoci10aGlzLm1heFkpKTpyPXRoaXMubWF4WSksYygoZnVuY3Rpb24oKXtlLl9zZXRUcmFuc2Zvcm0obixyLGUuX3NjYWxlLGkpfSkpfX19LF9faGFuZGxlVG91Y2hFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLl9pc1NjYWxpbmcmJiF0aGlzLmRpc2FibGVkJiZ0aGlzLl9pc1RvdWNoaW5nJiYoKDAsby5kaXNhYmxlU2Nyb2xsQm91bmNlKSh7ZGlzYWJsZTohMX0pLHRoaXMuJGVsLnN0eWxlLndpbGxDaGFuZ2U9ImF1dG8iLHRoaXMuX2lzVG91Y2hpbmc9ITEsIXRoaXMuX2NoZWNrQ2FuTW92ZSYmIXRoaXMuX3JldmlzZSgib3V0LW9mLWJvdW5kcyIpJiZ0aGlzLmluZXJ0aWEpKXt2YXIgZT0xZTMqKHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVhbMV0tdGhpcy5fX3RvdWNoSW5mby5oaXN0b3J5WFswXSkvKHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVRbMV0tdGhpcy5fX3RvdWNoSW5mby5oaXN0b3J5VFswXSksbj0xZTMqKHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVlbMV0tdGhpcy5fX3RvdWNoSW5mby5oaXN0b3J5WVswXSkvKHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVRbMV0tdGhpcy5fX3RvdWNoSW5mby5oaXN0b3J5VFswXSk7dGhpcy5fZnJpY3Rpb24uc2V0VihlLG4pLHRoaXMuX2ZyaWN0aW9uLnNldFModGhpcy5fdHJhbnNsYXRlWCx0aGlzLl90cmFuc2xhdGVZKTt2YXIgcj10aGlzLl9mcmljdGlvbi5kZWx0YSgpLngsaT10aGlzLl9mcmljdGlvbi5kZWx0YSgpLnksYT1yK3RoaXMuX3RyYW5zbGF0ZVgscz1pK3RoaXMuX3RyYW5zbGF0ZVk7YTx0aGlzLm1pblg/KGE9dGhpcy5taW5YLHM9dGhpcy5fdHJhbnNsYXRlWSsodGhpcy5taW5YLXRoaXMuX3RyYW5zbGF0ZVgpKmkvcik6YT50aGlzLm1heFgmJihhPXRoaXMubWF4WCxzPXRoaXMuX3RyYW5zbGF0ZVkrKHRoaXMubWF4WC10aGlzLl90cmFuc2xhdGVYKSppL3IpLHM8dGhpcy5taW5ZPyhzPXRoaXMubWluWSxhPXRoaXMuX3RyYW5zbGF0ZVgrKHRoaXMubWluWS10aGlzLl90cmFuc2xhdGVZKSpyL2kpOnM+dGhpcy5tYXhZJiYocz10aGlzLm1heFksYT10aGlzLl90cmFuc2xhdGVYKyh0aGlzLm1heFktdGhpcy5fdHJhbnNsYXRlWSkqci9pKSx0aGlzLl9mcmljdGlvbi5zZXRFbmQoYSxzKSx0aGlzLl9GQT1sKHRoaXMuX2ZyaWN0aW9uLChmdW5jdGlvbigpe3ZhciBlPXQuX2ZyaWN0aW9uLnMoKSxuPWUueCxyPWUueTt0Ll9zZXRUcmFuc2Zvcm0obixyLHQuX3NjYWxlLCJmcmljdGlvbiIpfSksKGZ1bmN0aW9uKCl7dC5fRkEuY2FuY2VsKCl9KSl9fSxfb25UcmFjazpmdW5jdGlvbih0KXtzd2l0Y2godC5kZXRhaWwuc3RhdGUpe2Nhc2Uic3RhcnQiOnRoaXMuX19oYW5kbGVUb3VjaFN0YXJ0KCk7YnJlYWs7Y2FzZSJtb3ZlIjp0aGlzLl9faGFuZGxlVG91Y2hNb3ZlKHQpO2JyZWFrO2Nhc2UiZW5kIjp0aGlzLl9faGFuZGxlVG91Y2hFbmQoKX19LF9nZXRMaW1pdFhZOmZ1bmN0aW9uKHQsZSl7dmFyIG49ITE7cmV0dXJuIHQ+dGhpcy5tYXhYPyh0PXRoaXMubWF4WCxuPSEwKTp0PHRoaXMubWluWCYmKHQ9dGhpcy5taW5YLG49ITApLGU+dGhpcy5tYXhZPyhlPXRoaXMubWF4WSxuPSEwKTplPHRoaXMubWluWSYmKGU9dGhpcy5taW5ZLG49ITApLHt4OnQseTplLG91dE9mQm91bmRzOm59fSxzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtpZih0aGlzLiRwYXJlbnQuX2lzTW91bnRlZCl7dGhpcy5fRkEmJnRoaXMuX0ZBLmNhbmNlbCgpLHRoaXMuX1NGQSYmdGhpcy5fU0ZBLmNhbmNlbCgpO3ZhciB0PXRoaXMuc2NhbGU/dGhpcy5zY2FsZVZhbHVlU3luYzoxO3RoaXMuX3VwZGF0ZU9mZnNldCgpLHRoaXMuX3VwZGF0ZVdIKHQpLHRoaXMuX3VwZGF0ZUJvdW5kYXJ5KCksdGhpcy5fdHJhbnNsYXRlWD10aGlzLnhTeW5jK3RoaXMuX3NjYWxlT2Zmc2V0LngsdGhpcy5fdHJhbnNsYXRlWT10aGlzLnlTeW5jK3RoaXMuX3NjYWxlT2Zmc2V0Lnk7dmFyIGU9dGhpcy5fZ2V0TGltaXRYWSh0aGlzLl90cmFuc2xhdGVYLHRoaXMuX3RyYW5zbGF0ZVkpLG49ZS54LHI9ZS55O3RoaXMuX3NldFRyYW5zZm9ybShuLHIsdCwiIiwhMCksdGhpcy5fdXBkYXRlT2xkU2NhbGUodCl9fSxfdXBkYXRlT2Zmc2V0OmZ1bmN0aW9uKCl7dGhpcy5fb2Zmc2V0Lng9ZnVuY3Rpb24gdChlLG4pe2lmKGU9PT1uKXJldHVybiAwO3ZhciByPWUub2Zmc2V0TGVmdDtyZXR1cm4gZS5vZmZzZXRQYXJlbnQ/cis9dChlLm9mZnNldFBhcmVudCxuKTowfSh0aGlzLiRlbCx0aGlzLiRwYXJlbnQuJGVsKSx0aGlzLl9vZmZzZXQueT1mdW5jdGlvbiB0KGUsbil7aWYoZT09PW4pcmV0dXJuIDA7dmFyIHI9ZS5vZmZzZXRUb3A7cmV0dXJuIGUub2Zmc2V0UGFyZW50P3IrPXQoZS5vZmZzZXRQYXJlbnQsbik6MH0odGhpcy4kZWwsdGhpcy4kcGFyZW50LiRlbCl9LF91cGRhdGVXSDpmdW5jdGlvbih0KXt0PXR8fHRoaXMuX3NjYWxlLHQ9dGhpcy5fYWRqdXN0U2NhbGUodCk7dmFyIGU9dGhpcy4kZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5oZWlnaHQ9ZS5oZWlnaHQvdGhpcy5fc2NhbGUsdGhpcy53aWR0aD1lLndpZHRoL3RoaXMuX3NjYWxlO3ZhciBuPXRoaXMuaGVpZ2h0KnQscj10aGlzLndpZHRoKnQ7dGhpcy5fc2NhbGVPZmZzZXQueD0oci10aGlzLndpZHRoKS8yLHRoaXMuX3NjYWxlT2Zmc2V0Lnk9KG4tdGhpcy5oZWlnaHQpLzJ9LF91cGRhdGVCb3VuZGFyeTpmdW5jdGlvbigpe3ZhciB0PTAtdGhpcy5fb2Zmc2V0LngrdGhpcy5fc2NhbGVPZmZzZXQueCxlPXRoaXMuJHBhcmVudC53aWR0aC10aGlzLndpZHRoLXRoaXMuX29mZnNldC54LXRoaXMuX3NjYWxlT2Zmc2V0Lng7dGhpcy5taW5YPU1hdGgubWluKHQsZSksdGhpcy5tYXhYPU1hdGgubWF4KHQsZSk7dmFyIG49MC10aGlzLl9vZmZzZXQueSt0aGlzLl9zY2FsZU9mZnNldC55LHI9dGhpcy4kcGFyZW50LmhlaWdodC10aGlzLmhlaWdodC10aGlzLl9vZmZzZXQueS10aGlzLl9zY2FsZU9mZnNldC55O3RoaXMubWluWT1NYXRoLm1pbihuLHIpLHRoaXMubWF4WT1NYXRoLm1heChuLHIpfSxfYmVnaW5TY2FsZTpmdW5jdGlvbigpe3RoaXMuX2lzU2NhbGluZz0hMH0sX2VuZFNjYWxlOmZ1bmN0aW9uKCl7dGhpcy5faXNTY2FsaW5nPSExLHRoaXMuX3VwZGF0ZU9sZFNjYWxlKHRoaXMuX3NjYWxlKX0sX3NldFNjYWxlOmZ1bmN0aW9uKHQpe3RoaXMuc2NhbGUmJih0PXRoaXMuX29sZFNjYWxlKnQsdGhpcy5fYmVnaW5TY2FsZSgpLHRoaXMuX3VwZGF0ZVNjYWxlKHQpKX0sX3VwZGF0ZVNjYWxlOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztpZih0aGlzLnNjYWxlKXt0PXRoaXMuX2FkanVzdFNjYWxlKHQpLHRoaXMuX3VwZGF0ZVdIKHQpLHRoaXMuX3VwZGF0ZUJvdW5kYXJ5KCk7dmFyIHI9dGhpcy5fZ2V0TGltaXRYWSh0aGlzLl90cmFuc2xhdGVYLHRoaXMuX3RyYW5zbGF0ZVkpLGk9ci54LGE9ci55O2U/dGhpcy5fYW5pbWF0aW9uVG8oaSxhLHQsIiIsITAsITApOmMoKGZ1bmN0aW9uKCl7bi5fc2V0VHJhbnNmb3JtKGksYSx0LCIiLCEwLCEwKX0pKX19LF91cGRhdGVPbGRTY2FsZTpmdW5jdGlvbih0KXt0aGlzLl9vbGRTY2FsZT10fSxfYWRqdXN0U2NhbGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5tYXgoLjUsdGhpcy5zY2FsZU1pbk51bWJlcix0KSx0PU1hdGgubWluKDEwLHRoaXMuc2NhbGVNYXhOdW1iZXIsdCksdH0sX2FuaW1hdGlvblRvOmZ1bmN0aW9uKHQsZSxuLHIsaSxhKXt2YXIgbz10aGlzO3RoaXMuX0ZBJiZ0aGlzLl9GQS5jYW5jZWwoKSx0aGlzLl9TRkEmJnRoaXMuX1NGQS5jYW5jZWwoKSx0aGlzLnhNb3ZlfHwodD10aGlzLl90cmFuc2xhdGVYKSx0aGlzLnlNb3ZlfHwoZT10aGlzLl90cmFuc2xhdGVZKSx0aGlzLnNjYWxlfHwobj10aGlzLl9zY2FsZSk7dmFyIHM9dGhpcy5fZ2V0TGltaXRYWSh0LGUpO3Q9cy54LGU9cy55LHRoaXMuYW5pbWF0aW9uPyh0aGlzLl9TVEQuX3NwcmluZ1guX3NvbHV0aW9uPW51bGwsdGhpcy5fU1RELl9zcHJpbmdZLl9zb2x1dGlvbj1udWxsLHRoaXMuX1NURC5fc3ByaW5nU2NhbGUuX3NvbHV0aW9uPW51bGwsdGhpcy5fU1RELl9zcHJpbmdYLl9lbmRQb3NpdGlvbj10aGlzLl90cmFuc2xhdGVYLHRoaXMuX1NURC5fc3ByaW5nWS5fZW5kUG9zaXRpb249dGhpcy5fdHJhbnNsYXRlWSx0aGlzLl9TVEQuX3NwcmluZ1NjYWxlLl9lbmRQb3NpdGlvbj10aGlzLl9zY2FsZSx0aGlzLl9TVEQuc2V0RW5kKHQsZSxuLDEpLHRoaXMuX1NGQT1sKHRoaXMuX1NURCwoZnVuY3Rpb24oKXt2YXIgdD1vLl9TVEQueCgpLGU9dC54LG49dC55LHM9dC5zY2FsZTtvLl9zZXRUcmFuc2Zvcm0oZSxuLHMscixpLGEpfSksKGZ1bmN0aW9uKCl7by5fU0ZBLmNhbmNlbCgpfSkpKTp0aGlzLl9zZXRUcmFuc2Zvcm0odCxlLG4scixpLGEpfSxfcmV2aXNlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2dldExpbWl0WFkodGhpcy5fdHJhbnNsYXRlWCx0aGlzLl90cmFuc2xhdGVZKSxuPWUueCxyPWUueSxpPWUub3V0T2ZCb3VuZHM7cmV0dXJuIGkmJnRoaXMuX2FuaW1hdGlvblRvKG4scix0aGlzLl9zY2FsZSx0KSxpfSxfc2V0VHJhbnNmb3JtOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106IiIsaT1hcmd1bWVudHMubGVuZ3RoPjQ/YXJndW1lbnRzWzRdOnZvaWQgMCxhPWFyZ3VtZW50cy5sZW5ndGg+NT9hcmd1bWVudHNbNV06dm9pZCAwO251bGwhPT10JiYiTmFOIiE9PXQudG9TdHJpbmcoKSYmIm51bWJlciI9PT10eXBlb2YgdHx8KHQ9dGhpcy5fdHJhbnNsYXRlWHx8MCksbnVsbCE9PWUmJiJOYU4iIT09ZS50b1N0cmluZygpJiYibnVtYmVyIj09PXR5cGVvZiBlfHwoZT10aGlzLl90cmFuc2xhdGVZfHwwKSx0PU51bWJlcih0LnRvRml4ZWQoMSkpLGU9TnVtYmVyKGUudG9GaXhlZCgxKSksbj1OdW1iZXIobi50b0ZpeGVkKDEpKSx0aGlzLl90cmFuc2xhdGVYPT09dCYmdGhpcy5fdHJhbnNsYXRlWT09PWV8fGl8fHRoaXMuJHRyaWdnZXIoImNoYW5nZSIse30se3g6dSh0LHRoaXMuX3NjYWxlT2Zmc2V0LngpLHk6dShlLHRoaXMuX3NjYWxlT2Zmc2V0LnkpLHNvdXJjZTpyfSksdGhpcy5zY2FsZXx8KG49dGhpcy5fc2NhbGUpLG49dGhpcy5fYWRqdXN0U2NhbGUobiksbj0rbi50b0ZpeGVkKDMpLGEmJm4hPT10aGlzLl9zY2FsZSYmdGhpcy4kdHJpZ2dlcigic2NhbGUiLHt9LHt4OnQseTplLHNjYWxlOm59KTt2YXIgbz0idHJhbnNsYXRlWCgiK3QrInB4KSB0cmFuc2xhdGVZKCIrZSsicHgpIHRyYW5zbGF0ZVooMHB4KSBzY2FsZSgiK24rIikiO3RoaXMuJGVsLnN0eWxlLnRyYW5zZm9ybT1vLHRoaXMuJGVsLnN0eWxlLndlYmtpdFRyYW5zZm9ybT1vLHRoaXMuX3RyYW5zbGF0ZVg9dCx0aGlzLl90cmFuc2xhdGVZPWUsdGhpcy5fc2NhbGU9bn19fTtlLmRlZmF1bHQ9Zn0sIjc3YTAiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjFiMWEiKSxpPW4oIjMxOTMiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LCI3N2E3IjpmdW5jdGlvbih0LGUpe3ZhciBuPUFycmF5LHI9TWF0aC5hYnMsaT1NYXRoLnBvdyxhPU1hdGguZmxvb3Isbz1NYXRoLmxvZyxzPU1hdGguTE4yO3QuZXhwb3J0cz17cGFjazpmdW5jdGlvbih0LGUsYyl7dmFyIHUsbCxmLGQ9bihjKSxoPTgqYy1lLTEscD0oMTw8aCktMSx2PXA+PjEsZz0yMz09PWU/aSgyLC0yNCktaSgyLC03Nyk6MCxtPXQ8MHx8MD09PXQmJjEvdDwwPzE6MCxiPTA7dD1yKHQpLHQhPXR8fHQ9PT0xLzA/KGw9dCE9dD8xOjAsdT1wKToodT1hKG8odCkvcyksZj1pKDIsLXUpLHQqZjwxJiYodS0tLGYqPTIpLHQrPXUrdj49MT9nL2Y6ZyppKDIsMS12KSx0KmY+PTImJih1KyssZi89MiksdSt2Pj1wPyhsPTAsdT1wKTp1K3Y+PTE/KGw9KHQqZi0xKSppKDIsZSksdSs9dik6KGw9dCppKDIsdi0xKSppKDIsZSksdT0wKSk7d2hpbGUoZT49OClkW2IrK109MjU1JmwsbC89MjU2LGUtPTg7dT11PDxlfGwsaCs9ZTt3aGlsZShoPjApZFtiKytdPTI1NSZ1LHUvPTI1NixoLT04O3JldHVybiBkWy0tYl18PTEyOCptLGR9LHVucGFjazpmdW5jdGlvbih0LGUpe3ZhciBuLHI9dC5sZW5ndGgsYT04KnItZS0xLG89KDE8PGEpLTEscz1vPj4xLGM9YS03LHU9ci0xLGw9dFt1LS1dLGY9MTI3Jmw7bD4+PTc7d2hpbGUoYz4wKWY9MjU2KmYrdFt1LS1dLGMtPTg7bj1mJigxPDwtYyktMSxmPj49LWMsYys9ZTt3aGlsZShjPjApbj0yNTYqbit0W3UtLV0sYy09ODtpZigwPT09ZilmPTEtcztlbHNle2lmKGY9PT1vKXJldHVybiBuP05hTjpsPy0xLzA6MS8wO24rPWkoMixlKSxmLT1zfXJldHVybihsPy0xOjEpKm4qaSgyLGYtZSl9fX0sNzgzOTpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdfSwiNzg1YSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImNjMTIiKSxpPXIoInNwYW4iKS5jbGFzc0xpc3QsYT1pJiZpLmNvbnN0cnVjdG9yJiZpLmNvbnN0cnVjdG9yLnByb3RvdHlwZTt0LmV4cG9ydHM9YT09PU9iamVjdC5wcm90b3R5cGU/dm9pZCAwOmF9LDc4OTY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZjBjYyIpLGk9bigiMTg5NiIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sIjc5YWUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oImM2YzIiKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LCI3OWZlIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDtlLmRlZmF1bHQ9e319LCI3YTgyIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiODNhYiIpLGE9bigiOWJmMiIpLmY7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOk9iamVjdC5kZWZpbmVQcm9wZXJ0eSE9PWEsc2hhbTohaX0se2RlZmluZVByb3BlcnR5OmF9KX0sIjdhYmIiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImM5NzUiKSxuKCI3YTgyIiksbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJiNjRiIiksbigiOTlhZiIpO3ZhciBpPW4oImY0ZjAiKSxhPW4oIjJjYTMiKSxvPXIobigiYWY5MCIpKSxzPW4oIjYyZDkiKTtmdW5jdGlvbiBjKCl7dC5wdWJsaXNoSGFuZGxlcigib25QYWdlUmVhZHkiLHt9LHRoaXMuJHBhZ2UuaWQpfXZhciB1PXtpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtlLnJvdXRlczsoMCxhLmluaXRFdmVudHMpKCk7dmFyIG49ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC50YXJnZXQ7biYmbiE9PWU7bj1uLnBhcmVudE5vZGUpaWYobi50YWdOYW1lJiYwPT09bi50YWdOYW1lLmluZGV4T2YoIlVOSS0iKSlicmVhaztyZXR1cm4gbn07dC5wcm90b3R5cGUuJGhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBFdmVudCl7dmFyIGU9bih0LHRoaXMuJGVsKTt0PWEucHJvY2Vzc0V2ZW50LmNhbGwodGhpcyx0LnR5cGUsdCx7fSxlfHx0LnRhcmdldCx0LmN1cnJlbnRUYXJnZXQpfXJldHVybiB0fSx0LnByb3RvdHlwZS4kZ2V0Q29tcG9uZW50RGVzY3JpcHRvcj1mdW5jdGlvbih0LGUpe3JldHVybigwLHMuY3JlYXRlQ29tcG9uZW50RGVzY3JpcHRvcikodHx8dGhpcyxlKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCIkb3duZXJJbnN0YW5jZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRnZXRDb21wb25lbnREZXNjcmlwdG9yKHRoaXMpfX0pLHQucHJvdG90eXBlLiRoYW5kbGVXeHNFdmVudD1mdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgRXZlbnQpe3ZhciBlPXQuY3VycmVudFRhcmdldCxyPWUmJihlLl9fdnVlX198fGUpLGk9ZSYmci4kZ2V0Q29tcG9uZW50RGVzY3JpcHRvciYmci4kZ2V0Q29tcG9uZW50RGVzY3JpcHRvcihyLCExKSxvPXQ7dD1hLnByb2Nlc3NFdmVudC5jYWxsKHRoaXMsby50eXBlLG8se30sbihvLHRoaXMuJGVsKXx8by50YXJnZXQsby5jdXJyZW50VGFyZ2V0KSx0Lmluc3RhbmNlPWksdC5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBvLnByZXZlbnREZWZhdWx0KCl9LHQuc3RvcFByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIG8uc3RvcFByb3BhZ2F0aW9uKCl9fXJldHVybiB0fSx0Lm1peGluKHtiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy4kb3B0aW9ucyxuPWUud3hzO24mJk9iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RbZV09bltlXX0pKSxlLmJlaGF2aW9ycyYmZS5iZWhhdmlvcnMubGVuZ3RoJiYoMCxvLmRlZmF1bHQpKGUsdGhpcyksKDAsaS5pc1BhZ2UpKHRoaXMpJiYoZS5tb3VudGVkPWUubW91bnRlZD9bXS5jb25jYXQoYyxlLm1vdW50ZWQpOltjXSl9fSl9fTtlLmRlZmF1bHQ9dX0pLmNhbGwodGhpcyxuKCJjNWMzIikpfSwiN2IwYiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjFkODAiKSxpPU9iamVjdDt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkocih0KSl9fSwiN2JiZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiOGE5ZCIpLGk9bigiNmNhNyIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sIjdjMzciOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI2MDVkIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3RyeXtpZihyKXJldHVybiBGdW5jdGlvbigncmV0dXJuIHJlcXVpcmUoIicrdCsnIiknKSgpfWNhdGNoKGUpe319fSwiN2M3MyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLGk9bigiODI1YSIpLGE9bigiMzdlOCIpLG89bigiNzgzOSIpLHM9bigiZDAxMiIpLGM9bigiMWJlNCIpLHU9bigiY2MxMiIpLGw9bigiZjc3MiIpLGY9bCgiSUVfUFJPVE8iKSxkPWZ1bmN0aW9uKCl7fSxoPWZ1bmN0aW9uKHQpe3JldHVybiI8c2NyaXB0PiIrdCsiPFwvc2NyaXB0PiJ9LHA9ZnVuY3Rpb24odCl7dC53cml0ZShoKCIiKSksdC5jbG9zZSgpO3ZhciBlPXQucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gdD1udWxsLGV9LHY9ZnVuY3Rpb24oKXt0cnl7cj1uZXcgQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKX1jYXRjaChlKXt9dj0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmRvbWFpbiYmcj9wKHIpOmZ1bmN0aW9uKCl7dmFyIHQsZT11KCJpZnJhbWUiKTtyZXR1cm4gZS5zdHlsZS5kaXNwbGF5PSJub25lIixjLmFwcGVuZENoaWxkKGUpLGUuc3JjPVN0cmluZygiamF2YXNjcmlwdDoiKSx0PWUuY29udGVudFdpbmRvdy5kb2N1bWVudCx0Lm9wZW4oKSx0LndyaXRlKGgoImRvY3VtZW50LkY9T2JqZWN0IikpLHQuY2xvc2UoKSx0LkZ9KCk6cChyKTt2YXIgdD1vLmxlbmd0aDt3aGlsZSh0LS0pZGVsZXRlIHZbInByb3RvdHlwZSJdW29bdF1dO3JldHVybiB2KCl9O3NbZl09ITAsdC5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKHQsZSl7dmFyIG47cmV0dXJuIG51bGwhPT10PyhkWyJwcm90b3R5cGUiXT1pKHQpLG49bmV3IGQsZFsicHJvdG90eXBlIl09bnVsbCxuW2ZdPXQpOm49digpLHZvaWQgMD09PWU/bjphLmYobixlKX19LCI3ZDJjIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5wYWdlU2Nyb2xsVG89dm9pZCAwLG4oImE5ZTMiKTt2YXIgcj17c2Nyb2xsVG9wOnt0eXBlOk51bWJlcn0sZHVyYXRpb246e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MzAwLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpe2UuZHVyYXRpb249TWF0aC5tYXgoMCx0KX19fTtlLnBhZ2VTY3JvbGxUbz1yfSwiN2RiMCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJiNzI3IikuZmluZCxhPW4oIjQ0ZDIiKSxvPSEwOyJmaW5kImluW10mJkFycmF5KDEpWyJmaW5kIl0oKGZ1bmN0aW9uKCl7bz0hMX0pKSxyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6b30se2ZpbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxhKCJmaW5kIil9LCI3ZGI0IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5jcmVhdGVTZWxlY3RvclF1ZXJ5PWZ1bmN0aW9uKHQpe2lmKHQpcmV0dXJuIG5ldyB2KHQpO3JldHVybiBuZXcgdigoMCxzLmdldEN1cnJlbnRQYWdlVm0pKCJjcmVhdGVTZWxlY3RvclF1ZXJ5IikpfSxuKCJkM2I3IiksbigiMTU5YiIpLG4oIjE0ZDkiKTt2YXIgaT1yKG4oImQ0ZWMiKSksYT1yKG4oImJlZTIiKSksbz1uKCJkYjZhIikscz1uKCIyNDEyIiksYz1uKCI4OTU5IiksdT1uKCI0OWI0IiksbD1uKCIzYmVhIiksZj1uKCIyMzk4IiksZD17Y2FudmFzOmMuQ2FudmFzQ29udGV4dCxtYXA6dS5NYXBDb250ZXh0LHZpZGVvOmwuVmlkZW9Db250ZXh0LGVkaXRvcjpmLkVkaXRvckNvbnRleHR9O2Z1bmN0aW9uIGgodCl7aWYodCYmdC5jb250ZXh0KXt2YXIgZT10LmNvbnRleHQsbj1lLmlkLHI9ZS5uYW1lLGk9ZS5wYWdlLGE9ZFtyXTt0LmNvbnRleHQ9YSYmbmV3IGEobixpKX19dmFyIHA9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbixyLGEpeygwLGkuZGVmYXVsdCkodGhpcyx0KSx0aGlzLl9zZWxlY3RvclF1ZXJ5PWUsdGhpcy5fY29tcG9uZW50PW4sdGhpcy5fc2VsZWN0b3I9cix0aGlzLl9zaW5nbGU9YX1yZXR1cm4oMCxhLmRlZmF1bHQpKHQsW3trZXk6ImJvdW5kaW5nQ2xpZW50UmVjdCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3NlbGVjdG9yUXVlcnkuX3B1c2godGhpcy5fc2VsZWN0b3IsdGhpcy5fY29tcG9uZW50LHRoaXMuX3NpbmdsZSx7aWQ6ITAsZGF0YXNldDohMCxyZWN0OiEwLHNpemU6ITB9LHQpLHRoaXMuX3NlbGVjdG9yUXVlcnl9fSx7a2V5OiJmaWVsZHMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3NlbGVjdG9yUXVlcnkuX3B1c2godGhpcy5fc2VsZWN0b3IsdGhpcy5fY29tcG9uZW50LHRoaXMuX3NpbmdsZSx0LGUpLHRoaXMuX3NlbGVjdG9yUXVlcnl9fSx7a2V5OiJzY3JvbGxPZmZzZXQiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9zZWxlY3RvclF1ZXJ5Ll9wdXNoKHRoaXMuX3NlbGVjdG9yLHRoaXMuX2NvbXBvbmVudCx0aGlzLl9zaW5nbGUse2lkOiEwLGRhdGFzZXQ6ITAsc2Nyb2xsT2Zmc2V0OiEwfSx0KSx0aGlzLl9zZWxlY3RvclF1ZXJ5fX0se2tleToiY29udGV4dCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3NlbGVjdG9yUXVlcnkuX3B1c2godGhpcy5fc2VsZWN0b3IsdGhpcy5fY29tcG9uZW50LHRoaXMuX3NpbmdsZSx7Y29udGV4dDohMH0sdCksdGhpcy5fc2VsZWN0b3JRdWVyeX19XSksdH0oKSx2PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXsoMCxpLmRlZmF1bHQpKHRoaXMsdCksdGhpcy5fcGFnZT1lLHRoaXMuX3F1ZXVlPVtdLHRoaXMuX3F1ZXVlQ2I9W10sdGhpcy5fbm9kZXNSZWY9bnVsbH1yZXR1cm4oMCxhLmRlZmF1bHQpKHQsW3trZXk6ImV4ZWMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuKDAscy5pbnZva2VNZXRob2QpKCJyZXF1ZXN0Q29tcG9uZW50SW5mbyIsdGhpcy5fcGFnZSx0aGlzLl9xdWV1ZSwoZnVuY3Rpb24obil7dmFyIHI9ZS5fcXVldWVDYjtuLmZvckVhY2goKGZ1bmN0aW9uKHQsbil7QXJyYXkuaXNBcnJheSh0KT90LmZvckVhY2goaCk6aCh0KTt2YXIgaT1yW25dOygwLG8uaXNGbikoaSkmJmkuY2FsbChlLHQpfSkpLCgwLG8uaXNGbikodCkmJnQuY2FsbChlLG4pfSkpLHRoaXMuX25vZGVzUmVmfX0se2tleToiaW4iLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jb21wb25lbnQ9dC5fJGlkfHx0LHRoaXN9fSx7a2V5OiJzZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ub2Rlc1JlZj1uZXcgcCh0aGlzLHRoaXMuX2NvbXBvbmVudCx0LCEwKX19LHtrZXk6InNlbGVjdEFsbCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25vZGVzUmVmPW5ldyBwKHRoaXMsdGhpcy5fY29tcG9uZW50LHQsITEpfX0se2tleToic2VsZWN0Vmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25vZGVzUmVmPW5ldyBwKHRoaXMsMCwiIiwhMCl9fSx7a2V5OiJfcHVzaCIsdmFsdWU6ZnVuY3Rpb24odCxlLG4scixpKXt0aGlzLl9xdWV1ZS5wdXNoKHtjb21wb25lbnQ6ZSxzZWxlY3Rvcjp0LHNpbmdsZTpuLGZpZWxkczpyfSksdGhpcy5fcXVldWVDYi5wdXNoKGkpfX1dKSx0fSgpfSwiN2UxMiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImRhODQiKSxpPW4oImQwMzkiKSxhPW4oImUzMzAiKSxvPW4oIjU3N2UiKSxzPW4oIjU4YTgiKS50cmltLGM9bigiNTg5OSIpLHU9YSgiIi5jaGFyQXQpLGw9ci5wYXJzZUZsb2F0LGY9ci5TeW1ib2wsZD1mJiZmLml0ZXJhdG9yLGg9MS9sKGMrIi0wIikhPT0tMS8wfHxkJiYhaSgoZnVuY3Rpb24oKXtsKE9iamVjdChkKSl9KSk7dC5leHBvcnRzPWg/ZnVuY3Rpb24odCl7dmFyIGU9cyhvKHQpKSxuPWwoZSk7cmV0dXJuIDA9PT1uJiYiLSI9PXUoZSwwKT8tMDpufTpsfSwiN2UzNiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIGk9cihuKCI1NTMwIikpO24oImE5ZTMiKSxuKCIxNGQ5IiksbigiYWMxZiIpLG4oIjAwYjQiKSxuKCI1MzE5IiksbigiYWNkOCIpLG4oImM5NzUiKSxuKCJkM2I3IiksbigiMTU5YiIpO3ZhciBhPXIobigiNWZlNyIpKSxvPW4oImRiNmEiKSxzPXtuYW1lOiJTd2lwZXIiLG1peGluczpbYS5kZWZhdWx0XSxwcm9wczp7aW5kaWNhdG9yRG90czp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LHZlcnRpY2FsOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sYXV0b3BsYXk6e3R5cGU6W0Jvb2xlYW4sU3RyaW5nXSxkZWZhdWx0OiExfSxjaXJjdWxhcjp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LGludGVydmFsOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjVlM30sZHVyYXRpb246e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NTAwfSxjdXJyZW50Ont0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjB9LGluZGljYXRvckNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxpbmRpY2F0b3JBY3RpdmVDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0scHJldmlvdXNNYXJnaW46e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LG5leHRNYXJnaW46e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGN1cnJlbnRJdGVtSWQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LHNraXBIaWRkZW5JdGVtTGF5b3V0Ont0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sZGlzcGxheU11bHRpcGxlSXRlbXM6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MX0sZGlzYWJsZVRvdWNoOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sbmF2aWdhdGlvbjp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LG5hdmlnYXRpb25Db2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiI2ZmZiJ9LG5hdmlnYXRpb25BY3RpdmVDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoicmdiYSg1MywgNTMsIDUzLCAwLjYpIn19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudFN5bmM6TWF0aC5yb3VuZCh0aGlzLmN1cnJlbnQpfHwwLGN1cnJlbnRJdGVtSWRTeW5jOnRoaXMuY3VycmVudEl0ZW1JZHx8IiIsdXNlclRyYWNraW5nOiExLGN1cnJlbnRDaGFuZ2VTb3VyY2U6IiIsaXRlbXM6W10saXNOYXZpZ2F0aW9uQXV0bzohMSxoaWRlTmF2aWdhdGlvbjohMSxwcmV2RGlzYWJsZWQ6ITEsbmV4dERpc2FibGVkOiExfX0sY29tcHV0ZWQ6e2ludGVydmFsTnVtYmVyOmZ1bmN0aW9uKCl7dmFyIHQ9TnVtYmVyKHRoaXMuaW50ZXJ2YWwpO3JldHVybiBpc05hTih0KT81ZTM6dH0sZHVyYXRpb25OdW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD1OdW1iZXIodGhpcy5kdXJhdGlvbik7cmV0dXJuIGlzTmFOKHQpPzUwMDp0fSxkaXNwbGF5TXVsdGlwbGVJdGVtc051bWJlcjpmdW5jdGlvbigpe3ZhciB0PU1hdGgucm91bmQodGhpcy5kaXNwbGF5TXVsdGlwbGVJdGVtcyk7cmV0dXJuIGlzTmFOKHQpPzE6dH0sc2xpZGVzU3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4odGhpcy5uZXh0TWFyZ2lufHx0aGlzLnByZXZpb3VzTWFyZ2luKSYmKHQ9dGhpcy52ZXJ0aWNhbD97bGVmdDowLHJpZ2h0OjAsdG9wOnRoaXMuX3VweDJweCh0aGlzLnByZXZpb3VzTWFyZ2luKSxib3R0b206dGhpcy5fdXB4MnB4KHRoaXMubmV4dE1hcmdpbil9Ont0b3A6MCxib3R0b206MCxsZWZ0OnRoaXMuX3VweDJweCh0aGlzLnByZXZpb3VzTWFyZ2luKSxyaWdodDp0aGlzLl91cHgycHgodGhpcy5uZXh0TWFyZ2luKX0pLHR9LHNsaWRlRnJhbWVTdHlsZTpmdW5jdGlvbigpe3ZhciB0PU1hdGguYWJzKDEwMC90aGlzLmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyKSsiJSI7cmV0dXJue3dpZHRoOnRoaXMudmVydGljYWw/IjEwMCUiOnQsaGVpZ2h0OnRoaXMudmVydGljYWw/dDoiMTAwJSJ9fSxzd2lwZXJFbmFibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoPnRoaXMuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXJ9LGNpcmN1bGFyRW5hYmxlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNpcmN1bGFyJiZ0aGlzLnN3aXBlckVuYWJsZWR9fSx3YXRjaDp7dmVydGljYWw6ZnVuY3Rpb24oKXt0aGlzLl9yZXNldExheW91dCgpfSxjaXJjdWxhcjpmdW5jdGlvbigpe3RoaXMuX3Jlc2V0TGF5b3V0KCl9LGludGVydmFsTnVtYmVyOmZ1bmN0aW9uKHQpe3RoaXMuX3RpbWVyJiYodGhpcy5fY2FuY2VsU2NoZWR1bGUoKSx0aGlzLl9zY2hlZHVsZUF1dG9wbGF5KCkpfSxjdXJyZW50OmZ1bmN0aW9uKHQpe3RoaXMuX2N1cnJlbnRDaGVjaygpfSxjdXJyZW50U3luYzpmdW5jdGlvbih0LGUpe3RoaXMuX2N1cnJlbnRDaGFuZ2VkKHQsZSksdGhpcy4kZW1pdCgidXBkYXRlOmN1cnJlbnQiLHQpLHRoaXMuX3NldE5hdmlnYXRpb25TdGF0ZSgpfSxjdXJyZW50SXRlbUlkOmZ1bmN0aW9uKHQpe3RoaXMuX2N1cnJlbnRDaGVjaygpfSxjdXJyZW50SXRlbUlkU3luYzpmdW5jdGlvbih0KXt0aGlzLiRlbWl0KCJ1cGRhdGU6Y3VycmVudEl0ZW1JZCIsdCl9LGRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyOmZ1bmN0aW9uKCl7dGhpcy5fcmVzZXRMYXlvdXQoKX0sbmF2aWdhdGlvbjp7aW1tZWRpYXRlOiEwLGhhbmRsZXI6ZnVuY3Rpb24odCl7dGhpcy5pc05hdmlnYXRpb25BdXRvPSJhdXRvIj09PXQsdGhpcy5oaWRlTmF2aWdhdGlvbj0hMCE9PXR8fHRoaXMuaXNOYXZpZ2F0aW9uQXV0byx0aGlzLl9uYXZpZ2F0aW9uU3dpcGVyQWRkTW91c2VFdmVudCgpfX0saXRlbXM6ZnVuY3Rpb24oKXt0aGlzLl9zZXROYXZpZ2F0aW9uU3RhdGUoKX0sc3dpcGVyRW5hYmxlZDpmdW5jdGlvbih0KXt0fHwodGhpcy5wcmV2RGlzYWJsZWQ9ITAsdGhpcy5uZXh0RGlzYWJsZWQ9ITAsdGhpcy5pc05hdmlnYXRpb25BdXRvJiYodGhpcy5oaWRlTmF2aWdhdGlvbj0hMCkpfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX2ludmFsaWQ9ITAsdGhpcy5fdmlld3BvcnRQb3NpdGlvbj0wLHRoaXMuX3ZpZXdwb3J0TW92ZVJhdGlvPTEsdGhpcy5fYW5pbWF0aW5nPW51bGwsdGhpcy5fcmVxdWVzdGVkQW5pbWF0aW9uPSExLHRoaXMuX3VzZXJEaXJlY3Rpb25DaGVja2VkPSExLHRoaXMuX2NvbnRlbnRUcmFja1ZpZXdwb3J0PTAsdGhpcy5fY29udGVudFRyYWNrU3BlZWQ9MCx0aGlzLl9jb250ZW50VHJhY2tUPTB9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2N1cnJlbnRDaGVjaygpLHRoaXMudG91Y2h0cmFjayh0aGlzLiRyZWZzLnNsaWRlc1dyYXBwZXIsIl9oYW5kbGVDb250ZW50VHJhY2siLCEwKSx0aGlzLl9yZXNldExheW91dCgpLHRoaXMuJHdhdGNoKChmdW5jdGlvbigpe3JldHVybiB0LmF1dG9wbGF5JiYhdC51c2VyVHJhY2tpbmd9KSx0aGlzLl9pbmludEF1dG9wbGF5KSx0aGlzLl9pbmludEF1dG9wbGF5KHRoaXMuYXV0b3BsYXkmJiF0aGlzLnVzZXJUcmFja2luZyksdGhpcy4kd2F0Y2goIml0ZW1zLmxlbmd0aCIsdGhpcy5fcmVzZXRMYXlvdXQpLHRoaXMuX25hdmlnYXRpb25Td2lwZXJBZGRNb3VzZUV2ZW50KCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9jYW5jZWxTY2hlZHVsZSgpLGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2FuaW1hdGlvbkZyYW1lKX0sbWV0aG9kczp7X2luaW50QXV0b3BsYXk6ZnVuY3Rpb24odCl7dD90aGlzLl9zY2hlZHVsZUF1dG9wbGF5KCk6dGhpcy5fY2FuY2VsU2NoZWR1bGUoKX0sX2N1cnJlbnRDaGVjazpmdW5jdGlvbigpe3ZhciB0PS0xO2lmKHRoaXMuY3VycmVudEl0ZW1JZClmb3IodmFyIGU9MCxuPXRoaXMuaXRlbXM7ZTxuLmxlbmd0aDtlKyspe3ZhciByPW5bZV0uY29tcG9uZW50SW5zdGFuY2U7aWYociYmci5pdGVtSWQ9PT10aGlzLmN1cnJlbnRJdGVtSWQpe3Q9ZTticmVha319dDwwJiYodD1NYXRoLnJvdW5kKHRoaXMuY3VycmVudCl8fDApLHQ9dDwwPzA6dCx0aGlzLmN1cnJlbnRTeW5jIT09dCYmKHRoaXMuY3VycmVudENoYW5nZVNvdXJjZT0iIix0aGlzLmN1cnJlbnRTeW5jPXQpfSxfaXRlbVJlYWR5OmZ1bmN0aW9uKHQsZSl7dC5jb21wb25lbnRJbnN0YW5jZSYmdC5jb21wb25lbnRJbnN0YW5jZS5faXNNb3VudGVkP2UoKToodC5fY2FsbGJhY2tzPXQuX2NhbGxiYWNrc3x8W10sdC5fY2FsbGJhY2tzLnB1c2goZSkpfSxfY3VycmVudENoYW5nZWQ6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLHI9dGhpcy5jdXJyZW50Q2hhbmdlU291cmNlO2lmKHRoaXMuY3VycmVudENoYW5nZVNvdXJjZT0iIiwhcil7dmFyIGk9dGhpcy5pdGVtcy5sZW5ndGg7dGhpcy5fYW5pbWF0ZVZpZXdwb3J0KHQsIiIsdGhpcy5jaXJjdWxhckVuYWJsZWQmJmUrKGktdCklaT5pLzI/MTowKX12YXIgYT10aGlzLml0ZW1zW3RdO2EmJnRoaXMuX2l0ZW1SZWFkeShhLChmdW5jdGlvbigpe3ZhciB0PW4uY3VycmVudEl0ZW1JZFN5bmM9YS5jb21wb25lbnRJbnN0YW5jZS5pdGVtSWR8fCIiO24uJHRyaWdnZXIoImNoYW5nZSIse30se2N1cnJlbnQ6bi5jdXJyZW50U3luYyxjdXJyZW50SXRlbUlkOnQsc291cmNlOnJ9KX0pKX0sX3NjaGVkdWxlQXV0b3BsYXk6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2NhbmNlbFNjaGVkdWxlKCksIXRoaXMuX2lzTW91bnRlZHx8dGhpcy5faW52YWxpZHx8dGhpcy5pdGVtcy5sZW5ndGg8PXRoaXMuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXJ8fCh0aGlzLl90aW1lcj1zZXRUaW1lb3V0KChmdW5jdGlvbiBlKCl7dC5fdGltZXI9bnVsbCx0LmN1cnJlbnRDaGFuZ2VTb3VyY2U9ImF1dG9wbGF5Iix0LmNpcmN1bGFyRW5hYmxlZD90LmN1cnJlbnRTeW5jPXQuX25vcm1hbGl6ZUN1cnJlbnRWYWx1ZSh0LmN1cnJlbnRTeW5jKzEpOnQuY3VycmVudFN5bmM9dC5jdXJyZW50U3luYyt0LmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyPHQuaXRlbXMubGVuZ3RoP3QuY3VycmVudFN5bmMrMTowLHQuX2FuaW1hdGVWaWV3cG9ydCh0LmN1cnJlbnRTeW5jLCJhdXRvcGxheSIsdC5jaXJjdWxhckVuYWJsZWQ/MTowKSx0Ll90aW1lcj1zZXRUaW1lb3V0KGUsdC5pbnRlcnZhbE51bWJlcil9KSx0aGlzLmludGVydmFsTnVtYmVyKSl9LF9jYW5jZWxTY2hlZHVsZTpmdW5jdGlvbigpe3RoaXMuX3RpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKSx0aGlzLl90aW1lcj1udWxsKX0sX25vcm1hbGl6ZUN1cnJlbnRWYWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLml0ZW1zLmxlbmd0aDtpZighZSlyZXR1cm4tMTt2YXIgbj0oTWF0aC5yb3VuZCh0KSVlK2UpJWU7aWYodGhpcy5jaXJjdWxhckVuYWJsZWQpe2lmKGU8PXRoaXMuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXIpcmV0dXJuIDB9ZWxzZSBpZihuPmUtdGhpcy5kaXNwbGF5TXVsdGlwbGVJdGVtc051bWJlcilyZXR1cm4gZS10aGlzLmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyO3JldHVybiBufSxfdXB4MnB4OmZ1bmN0aW9uKHQpe3JldHVybi9cZCtbdXJdcHgkL2kudGVzdCh0KSYmdC5yZXBsYWNlKC9cZCtbdXJdcHgkL2ksKGZ1bmN0aW9uKHQpe3JldHVybiIiLmNvbmNhdCh1bmkudXB4MnB4KHBhcnNlRmxvYXQodCkpLCJweCIpfSkpLHR8fCIifSxfcmVzZXRMYXlvdXQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9pc01vdW50ZWQpe3RoaXMuX2NhbmNlbFNjaGVkdWxlKCksdGhpcy5fZW5kVmlld3BvcnRBbmltYXRpb24oKTtmb3IodmFyIHQ9dGhpcy5pdGVtcyxlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5fdXBkYXRlSXRlbVBvcyhlLGUpO2lmKHRoaXMuX3ZpZXdwb3J0TW92ZVJhdGlvPTEsMT09PXRoaXMuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXImJnQubGVuZ3RoKXt2YXIgbj10WzBdLmNvbXBvbmVudEluc3RhbmNlLiRlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPXRoaXMuJHJlZnMuc2xpZGVGcmFtZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLl92aWV3cG9ydE1vdmVSYXRpbz1uLndpZHRoL3Iud2lkdGgsdGhpcy5fdmlld3BvcnRNb3ZlUmF0aW8+MCYmdGhpcy5fdmlld3BvcnRNb3ZlUmF0aW88MXx8KHRoaXMuX3ZpZXdwb3J0TW92ZVJhdGlvPTEpfXZhciBpPXRoaXMuX3ZpZXdwb3J0UG9zaXRpb247dGhpcy5fdmlld3BvcnRQb3NpdGlvbj0tMjt2YXIgYT10aGlzLmN1cnJlbnRTeW5jO2E+PTA/KHRoaXMuX2ludmFsaWQ9ITEsdGhpcy51c2VyVHJhY2tpbmc/KHRoaXMuX3VwZGF0ZVZpZXdwb3J0KGkrYS10aGlzLl9jb250ZW50VHJhY2tWaWV3cG9ydCksdGhpcy5fY29udGVudFRyYWNrVmlld3BvcnQ9YSk6KHRoaXMuX3VwZGF0ZVZpZXdwb3J0KGEpLHRoaXMuYXV0b3BsYXkmJnRoaXMuX3NjaGVkdWxlQXV0b3BsYXkoKSkpOih0aGlzLl9pbnZhbGlkPSEwLHRoaXMuX3VwZGF0ZVZpZXdwb3J0KC10aGlzLmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyLTEpKX19LF9jaGVja0NpcmN1bGFyTGF5b3V0OmZ1bmN0aW9uKHQpe2lmKCF0aGlzLl9pbnZhbGlkKWZvcih2YXIgZT10aGlzLml0ZW1zLG49ZS5sZW5ndGgscj10K3RoaXMuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXIsaT0wO2k8bjtpKyspe3ZhciBhPWVbaV0sbz1hLl9wb3NpdGlvbixzPU1hdGguZmxvb3IodC9uKSpuK2ksYz1zK24sdT1zLW4sbD1NYXRoLm1heCh0LShzKzEpLHMtciwwKSxmPU1hdGgubWF4KHQtKGMrMSksYy1yLDApLGQ9TWF0aC5tYXgodC0odSsxKSx1LXIsMCksaD1NYXRoLm1pbihsLGYsZCkscD1bcyxjLHVdW1tsLGYsZF0uaW5kZXhPZihoKV07byE9PXAmJnRoaXMuX3VwZGF0ZUl0ZW1Qb3MoaSxwKX19LF91cGRhdGVJdGVtUG9zOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy52ZXJ0aWNhbD8iMCI6MTAwKmUrIiUiLHI9dGhpcy52ZXJ0aWNhbD8xMDAqZSsiJSI6IjAiLGk9InRyYW5zbGF0ZSgiK24rIiwgIityKyIpIHRyYW5zbGF0ZVooMCkiLGE9dGhpcy5pdGVtc1t0XTt0aGlzLl9pdGVtUmVhZHkoYSwoZnVuY3Rpb24oKXt2YXIgdD1hLmNvbXBvbmVudEluc3RhbmNlLiRlbDt0LnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybSJdPWksdC5zdHlsZS50cmFuc2Zvcm09aSx0Ll9wb3NpdGlvbj1lfSkpfSxfdXBkYXRlVmlld3BvcnQ6ZnVuY3Rpb24odCl7TWF0aC5mbG9vcigyKnRoaXMuX3ZpZXdwb3J0UG9zaXRpb24pPT09TWF0aC5mbG9vcigyKnQpJiZNYXRoLmNlaWwoMip0aGlzLl92aWV3cG9ydFBvc2l0aW9uKT09PU1hdGguY2VpbCgyKnQpfHx0aGlzLmNpcmN1bGFyRW5hYmxlZCYmdGhpcy5fY2hlY2tDaXJjdWxhckxheW91dCh0KTt2YXIgZT10aGlzLnZlcnRpY2FsPyIwIjoxMDAqLXQqdGhpcy5fdmlld3BvcnRNb3ZlUmF0aW8rIiUiLG49dGhpcy52ZXJ0aWNhbD8xMDAqLXQqdGhpcy5fdmlld3BvcnRNb3ZlUmF0aW8rIiUiOiIwIixyPSJ0cmFuc2xhdGUoIitlKyIsICIrbisiKSB0cmFuc2xhdGVaKDApIixpPXRoaXMuJHJlZnMuc2xpZGVGcmFtZTtpZihpJiYoaS5zdHlsZVsiLXdlYmtpdC10cmFuc2Zvcm0iXT1yLGkuc3R5bGUudHJhbnNmb3JtPXIpLHRoaXMuX3ZpZXdwb3J0UG9zaXRpb249dCwhdGhpcy5fdHJhbnNpdGlvblN0YXJ0KXtpZih0JTE9PT0wKXJldHVybjt0aGlzLl90cmFuc2l0aW9uU3RhcnQ9dH10LT1NYXRoLmZsb29yKHRoaXMuX3RyYW5zaXRpb25TdGFydCksdDw9LSh0aGlzLml0ZW1zLmxlbmd0aC0xKT90Kz10aGlzLml0ZW1zLmxlbmd0aDp0Pj10aGlzLml0ZW1zLmxlbmd0aCYmKHQtPXRoaXMuaXRlbXMubGVuZ3RoKSx0PXRoaXMuX3RyYW5zaXRpb25TdGFydCUxPi41fHx0aGlzLl90cmFuc2l0aW9uU3RhcnQ8MD90LTE6dCx0aGlzLiR0cmlnZ2VyKCJ0cmFuc2l0aW9uIix7fSx7ZHg6dGhpcy52ZXJ0aWNhbD8wOnQqaS5vZmZzZXRXaWR0aCxkeTp0aGlzLnZlcnRpY2FsP3QqaS5vZmZzZXRIZWlnaHQ6MH0pfSxfYW5pbWF0ZUZyYW1lRnVuY1Byb3RvOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLl9hbmltYXRpbmcpe3ZhciBlPXRoaXMuX2FuaW1hdGluZyxuPWUudG9Qb3Mscj1lLmFjYyxpPWUuZW5kVGltZSxhPWUuc291cmNlLG89aS1EYXRlLm5vdygpO2lmKG88PTApe3RoaXMuX3VwZGF0ZVZpZXdwb3J0KG4pLHRoaXMuX2FuaW1hdGluZz1udWxsLHRoaXMuX3JlcXVlc3RlZEFuaW1hdGlvbj0hMSx0aGlzLl90cmFuc2l0aW9uU3RhcnQ9bnVsbDt2YXIgcz10aGlzLml0ZW1zW3RoaXMuY3VycmVudFN5bmNdO3MmJnRoaXMuX2l0ZW1SZWFkeShzLChmdW5jdGlvbigpe3ZhciBlPXMuY29tcG9uZW50SW5zdGFuY2UuaXRlbUlkfHwiIjt0LiR0cmlnZ2VyKCJhbmltYXRpb25maW5pc2giLHt9LHtjdXJyZW50OnQuY3VycmVudFN5bmMsY3VycmVudEl0ZW1JZDplLHNvdXJjZTphfSl9KSl9ZWxzZXt2YXIgYz1yKm8qby8yLHU9bitjO3RoaXMuX3VwZGF0ZVZpZXdwb3J0KHUpLHRoaXMuX2FuaW1hdGlvbkZyYW1lPXJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLl9hbmltYXRlRnJhbWVGdW5jUHJvdG8uYmluZCh0aGlzKSl9fWVsc2UgdGhpcy5fcmVxdWVzdGVkQW5pbWF0aW9uPSExfSxfYW5pbWF0ZVZpZXdwb3J0OmZ1bmN0aW9uKHQsZSxuKXt0aGlzLl9jYW5jZWxWaWV3cG9ydEFuaW1hdGlvbigpO3ZhciByPXRoaXMuZHVyYXRpb25OdW1iZXIsaT10aGlzLml0ZW1zLmxlbmd0aCxhPXRoaXMuX3ZpZXdwb3J0UG9zaXRpb247aWYodGhpcy5jaXJjdWxhckVuYWJsZWQpaWYobjwwKXtmb3IoO2E8dDspYSs9aTtmb3IoO2EtaT50OylhLT1pfWVsc2UgaWYobj4wKXtmb3IoO2E+dDspYS09aTtmb3IoO2EraTx0OylhKz1pO2EraS10PHQtYSYmKGErPWkpfWVsc2V7Zm9yKDthK2k8dDspYSs9aTtmb3IoO2EtaT50OylhLT1pO2EraS10PHQtYSYmKGErPWkpfWVsc2UiY2xpY2siPT09ZSYmKHQ9dCt0aGlzLmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyLTE8aT90OjApO3RoaXMuX2FuaW1hdGluZz17dG9Qb3M6dCxhY2M6MiooYS10KS8ocipyKSxlbmRUaW1lOkRhdGUubm93KCkrcixzb3VyY2U6ZX0sdGhpcy5fcmVxdWVzdGVkQW5pbWF0aW9ufHwodGhpcy5fcmVxdWVzdGVkQW5pbWF0aW9uPSEwLHRoaXMuX2FuaW1hdGlvbkZyYW1lPXJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLl9hbmltYXRlRnJhbWVGdW5jUHJvdG8uYmluZCh0aGlzKSkpfSxfY2FuY2VsVmlld3BvcnRBbmltYXRpb246ZnVuY3Rpb24oKXt0aGlzLl9hbmltYXRpbmc9bnVsbH0sX2VuZFZpZXdwb3J0QW5pbWF0aW9uOmZ1bmN0aW9uKCl7dGhpcy5fYW5pbWF0aW5nJiYodGhpcy5fdXBkYXRlVmlld3BvcnQodGhpcy5fYW5pbWF0aW5nLnRvUG9zKSx0aGlzLl9hbmltYXRpbmc9bnVsbCl9LF9oYW5kbGVUcmFja1N0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY2FuY2VsU2NoZWR1bGUoKSx0aGlzLl9jb250ZW50VHJhY2tWaWV3cG9ydD10aGlzLl92aWV3cG9ydFBvc2l0aW9uLHRoaXMuX2NvbnRlbnRUcmFja1NwZWVkPTAsdGhpcy5fY29udGVudFRyYWNrVD1EYXRlLm5vdygpLHRoaXMuX2NhbmNlbFZpZXdwb3J0QW5pbWF0aW9uKCl9LF9oYW5kbGVUcmFja01vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuX2NvbnRlbnRUcmFja1Q7dGhpcy5fY29udGVudFRyYWNrVD1EYXRlLm5vdygpO3ZhciByPXRoaXMuaXRlbXMubGVuZ3RoLGk9ci10aGlzLmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyO2Z1bmN0aW9uIGEodCl7cmV0dXJuLjUtLjI1Lyh0Ky41KX1mdW5jdGlvbiBvKHQsbil7dmFyIHI9ZS5fY29udGVudFRyYWNrVmlld3BvcnQrdDtlLl9jb250ZW50VHJhY2tTcGVlZD0uNiplLl9jb250ZW50VHJhY2tTcGVlZCsuNCpuLGUuY2lyY3VsYXJFbmFibGVkfHwocjwwfHxyPmkpJiYocjwwP3I9LWEoLXIpOnI+aSYmKHI9aSthKHItaSkpLGUuX2NvbnRlbnRUcmFja1NwZWVkPTApLGUuX3VwZGF0ZVZpZXdwb3J0KHIpfXZhciBzPXRoaXMuX2NvbnRlbnRUcmFja1Qtbnx8MTt0aGlzLnZlcnRpY2FsP28oLXQuZHkvdGhpcy4kcmVmcy5zbGlkZUZyYW1lLm9mZnNldEhlaWdodCwtdC5kZHkvcyk6bygtdC5keC90aGlzLiRyZWZzLnNsaWRlRnJhbWUub2Zmc2V0V2lkdGgsLXQuZGR4L3MpfSxfaGFuZGxlVHJhY2tFbmQ6ZnVuY3Rpb24odCl7dGhpcy51c2VyVHJhY2tpbmc9ITE7dmFyIGU9dGhpcy5fY29udGVudFRyYWNrU3BlZWQvTWF0aC5hYnModGhpcy5fY29udGVudFRyYWNrU3BlZWQpLG49MDshdCYmTWF0aC5hYnModGhpcy5fY29udGVudFRyYWNrU3BlZWQpPi4yJiYobj0uNSplKTt2YXIgcj10aGlzLl9ub3JtYWxpemVDdXJyZW50VmFsdWUodGhpcy5fdmlld3BvcnRQb3NpdGlvbituKTt0P3RoaXMuX3VwZGF0ZVZpZXdwb3J0KHRoaXMuX2NvbnRlbnRUcmFja1ZpZXdwb3J0KToodGhpcy5jdXJyZW50Q2hhbmdlU291cmNlPSJ0b3VjaCIsdGhpcy5jdXJyZW50U3luYz1yLHRoaXMuX2FuaW1hdGVWaWV3cG9ydChyLCJ0b3VjaCIsMCE9PW4/bjowPT09ciYmdGhpcy5jaXJjdWxhckVuYWJsZWQmJnRoaXMuX3ZpZXdwb3J0UG9zaXRpb24+PTE/MTowKSl9LF9oYW5kbGVDb250ZW50VHJhY2s6ZnVuY3Rpb24odCl7aWYoIXRoaXMuZGlzYWJsZVRvdWNoJiZ0aGlzLml0ZW1zLmxlbmd0aCYmIXRoaXMuX2ludmFsaWQpe2lmKCJzdGFydCI9PT10LmRldGFpbC5zdGF0ZSlyZXR1cm4gdGhpcy51c2VyVHJhY2tpbmc9ITAsdGhpcy5fdXNlckRpcmVjdGlvbkNoZWNrZWQ9ITEsdGhpcy5faGFuZGxlVHJhY2tTdGFydCgpO2lmKCJlbmQiPT09dC5kZXRhaWwuc3RhdGUpcmV0dXJuIHRoaXMuX2hhbmRsZVRyYWNrRW5kKCExKTtpZigiY2FuY2VsIj09PXQuZGV0YWlsLnN0YXRlKXJldHVybiB0aGlzLl9oYW5kbGVUcmFja0VuZCghMCk7aWYodGhpcy51c2VyVHJhY2tpbmcpe2lmKCF0aGlzLl91c2VyRGlyZWN0aW9uQ2hlY2tlZCl7dGhpcy5fdXNlckRpcmVjdGlvbkNoZWNrZWQ9ITA7dmFyIGU9TWF0aC5hYnModC5kZXRhaWwuZHgpLG49TWF0aC5hYnModC5kZXRhaWwuZHkpO2lmKChlPj1uJiZ0aGlzLnZlcnRpY2FsfHxlPD1uJiYhdGhpcy52ZXJ0aWNhbCkmJih0aGlzLnVzZXJUcmFja2luZz0hMSksIXRoaXMudXNlclRyYWNraW5nKXJldHVybiB2b2lkKHRoaXMuYXV0b3BsYXkmJnRoaXMuX3NjaGVkdWxlQXV0b3BsYXkoKSl9cmV0dXJuIHRoaXMuX2hhbmRsZVRyYWNrTW92ZSh0LmRldGFpbCksITF9fX0sX29uU3dpcGVyRG90Q2xpY2s6ZnVuY3Rpb24odCl7dGhpcy5fYW5pbWF0ZVZpZXdwb3J0KHRoaXMuY3VycmVudFN5bmM9dCx0aGlzLmN1cnJlbnRDaGFuZ2VTb3VyY2U9ImNsaWNrIix0aGlzLmNpcmN1bGFyRW5hYmxlZD8xOjApfSxfbmF2aWdhdGlvbkNsaWNrOmZ1bmN0aW9uKHQsZSxuKXtpZih0LnN0b3BQcm9wYWdhdGlvbigpLCFuKXt2YXIgcj10aGlzLml0ZW1zLmxlbmd0aCxpPXRoaXMuY3VycmVudFN5bmM7c3dpdGNoKGUpe2Nhc2UicHJldiI6aS0tLGk8MCYmdGhpcy5jaXJjdWxhckVuYWJsZWQmJihpPXItMSk7YnJlYWs7Y2FzZSJuZXh0IjppKyssaT49ciYmdGhpcy5jaXJjdWxhckVuYWJsZWQmJihpPTApO2JyZWFrfXRoaXMuX29uU3dpcGVyRG90Q2xpY2soaSl9fSxfbmF2aWdhdGlvbk1vdXNlTW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2NsZWFyVGltZW91dCh0aGlzLmhpZGVOYXZpZ2F0aW9uVGltZXIpO3ZhciBuPXQuY2xpZW50WCxyPXQuY2xpZW50WSxpPXRoaXMuJHJlZnMuc2xpZGVzV3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPWkubGVmdCxvPWkucmlnaHQscz1pLnRvcCxjPWkuYm90dG9tLHU9aS53aWR0aCxsPWkuaGVpZ2h0LGY9ITE7Zj10aGlzLnZlcnRpY2FsPyEoci1zPGwvM3x8Yy1yPGwvMyk6IShuLWE8dS8zfHxvLW48dS8zKSxmP3RoaXMuaGlkZU5hdmlnYXRpb25UaW1lcj1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2UuaGlkZU5hdmlnYXRpb249Zn0pLDMwMCk6dGhpcy5oaWRlTmF2aWdhdGlvbj1mfSxfbmF2aWdhdGlvbk1vdXNlT3V0OmZ1bmN0aW9uKCl7dGhpcy5oaWRlTmF2aWdhdGlvbj0hMH0sX25hdmlnYXRpb25Td2lwZXJBZGRNb3VzZUV2ZW50OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcmVmcy5zbGlkZXNXcmFwcGVyO3QmJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fbmF2aWdhdGlvbk1vdXNlTW92ZSksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLl9uYXZpZ2F0aW9uTW91c2VPdXQpLHRoaXMuaXNOYXZpZ2F0aW9uQXV0byYmKHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9uYXZpZ2F0aW9uTW91c2VNb3ZlKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX25hdmlnYXRpb25Nb3VzZU91dCkpKX0sX25hdmlnYXRpb25Ib3ZlcjpmdW5jdGlvbih0LGUpe3ZhciBuPXQuY3VycmVudFRhcmdldDtuJiYobi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9Im92ZXIiPT09ZT90aGlzLm5hdmlnYXRpb25BY3RpdmVDb2xvcjoiIil9LF9zZXROYXZpZ2F0aW9uU3RhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLml0ZW1zLmxlbmd0aCxlPSF0aGlzLmNpcmN1bGFyRW5hYmxlZDt0aGlzLnByZXZEaXNhYmxlZD0wPT09dGhpcy5jdXJyZW50U3luYyYmZSx0aGlzLm5leHREaXNhYmxlZD10aGlzLmN1cnJlbnRTeW5jPT09dC0xJiZlfHxlJiZ0aGlzLmN1cnJlbnRTeW5jK3RoaXMuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXI+PXR9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPVtdLHI9W107dGhpcy4kc2xvdHMuZGVmYXVsdCYmKDAsby5kZWVwQ2xvbmUpKHRoaXMuJHNsb3RzLmRlZmF1bHQsdCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jb21wb25lbnRPcHRpb25zJiYidi11bmktc3dpcGVyLWl0ZW0iPT09dC5jb21wb25lbnRPcHRpb25zLnRhZyYmci5wdXNoKHQpfSkpO2Zvcih2YXIgYT1mdW5jdGlvbihyLGkpe3ZhciBhPWUuY3VycmVudFN5bmM7bi5wdXNoKHQoImRpdiIse29uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLl9vblN3aXBlckRvdENsaWNrKHIpfX0sY2xhc3M6eyJ1bmktc3dpcGVyLWRvdCI6ITAsInVuaS1zd2lwZXItZG90LWFjdGl2ZSI6cjxhK2UuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXImJnI+PWF8fHI8YStlLmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyLWl9LHN0eWxlOntiYWNrZ3JvdW5kOnI9PT1hP2UuaW5kaWNhdG9yQWN0aXZlQ29sb3I6ZS5pbmRpY2F0b3JDb2xvcn19KSl9LHM9MCxjPXIubGVuZ3RoO3M8YztzKyspYShzLGMpO3RoaXMuaXRlbXM9cjt2YXIgdT1bdCgiZGl2Iix7cmVmOiJzbGlkZXMiLHN0eWxlOnRoaXMuc2xpZGVzU3R5bGUsY2xhc3M6InVuaS1zd2lwZXItc2xpZGVzIn0sW3QoImRpdiIse3JlZjoic2xpZGVGcmFtZSIsY2xhc3M6InVuaS1zd2lwZXItc2xpZGUtZnJhbWUiLHN0eWxlOnRoaXMuc2xpZGVGcmFtZVN0eWxlfSxyKV0pXTtpZih0aGlzLmluZGljYXRvckRvdHMmJnUucHVzaCh0KCJkaXYiLHtyZWY6InNsaWRlc0RvdHMiLGNsYXNzOlsidW5pLXN3aXBlci1kb3RzIix0aGlzLnZlcnRpY2FsPyJ1bmktc3dpcGVyLWRvdHMtdmVydGljYWwiOiJ1bmktc3dpcGVyLWRvdHMtaG9yaXpvbnRhbCJdfSxuKSksdGhpcy5uYXZpZ2F0aW9uKXt2YXIgbD17InVuaS1zd2lwZXItbmF2aWdhdGlvbi1oaWRlIjp0aGlzLmhpZGVOYXZpZ2F0aW9uLCJ1bmktc3dpcGVyLW5hdmlnYXRpb24tdmVydGljYWwiOnRoaXMudmVydGljYWx9LGY9dCgiaSIse2RvbVByb3BzOntpbm5lckhUTUw6IiYjeGU2MDE7In0sY2xhc3M6InVuaS1idG4taWNvbiIsc3R5bGU6e2NvbG9yOnRoaXMubmF2aWdhdGlvbkNvbG9yLGZvbnRTaXplOiIyNnB4In19KSxkPXttb3VzZW92ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGUuX25hdmlnYXRpb25Ib3Zlcih0LCJvdmVyIil9LG1vdXNlb3V0OmZ1bmN0aW9uKHQpe3JldHVybiBlLl9uYXZpZ2F0aW9uSG92ZXIodCwib3V0Iil9fTt1LnB1c2godCgiZGl2Iix7b246KDAsaS5kZWZhdWx0KSh7Y2xpY2s6ZnVuY3Rpb24odCl7cmV0dXJuIGUuX25hdmlnYXRpb25DbGljayh0LCJwcmV2IixlLnByZXZEaXNhYmxlZCl9fSxkKSxjbGFzczpbInVuaS1zd2lwZXItbmF2aWdhdGlvbiIsInVuaS1zd2lwZXItbmF2aWdhdGlvbi1wcmV2IiwoMCxpLmRlZmF1bHQpKHsidW5pLXN3aXBlci1uYXZpZ2F0aW9uLWRpc2FibGVkIjp0aGlzLnByZXZEaXNhYmxlZH0sbCldfSxbZl0pLHQoImRpdiIse29uOigwLGkuZGVmYXVsdCkoe2NsaWNrOmZ1bmN0aW9uKHQpe3JldHVybiBlLl9uYXZpZ2F0aW9uQ2xpY2sodCwibmV4dCIsZS5uZXh0RGlzYWJsZWQpfX0sZCksY2xhc3M6WyJ1bmktc3dpcGVyLW5hdmlnYXRpb24iLCJ1bmktc3dpcGVyLW5hdmlnYXRpb24tbmV4dCIsKDAsaS5kZWZhdWx0KSh7InVuaS1zd2lwZXItbmF2aWdhdGlvbi1kaXNhYmxlZCI6dGhpcy5uZXh0RGlzYWJsZWR9LGwpXX0sW2ZdKSl9cmV0dXJuIHQoInVuaS1zd2lwZXIiLHtvbjp0aGlzLiRsaXN0ZW5lcnN9LFt0KCJkaXYiLHtyZWY6InNsaWRlc1dyYXBwZXIiLGNsYXNzOiJ1bmktc3dpcGVyLXdyYXBwZXIifSx1KV0pfX07ZS5kZWZhdWx0PXN9LCI3ZWU3IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI4NGFmIiksaT1uKCI4NDIxIik7Zm9yKHZhciBhIGluIGkpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiBpW3RdfSkpfShhKTt2YXIgbz1uKCJmMGM1Iikscz1PYmplY3Qob1siYSJdKShpWyJkZWZhdWx0Il0sclsiYiJdLHJbImMiXSwhMSxudWxsLG51bGwsbnVsbCwhMSxyWyJhIl0sdm9pZCAwKTtlWyJkZWZhdWx0Il09cy5leHBvcnRzfSw4MTcyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMDY1IiksaT1uKCI1N2I5Iik7cigidG9QcmltaXRpdmUiKSxpKCl9LCI4MWIyIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiZDA2NiIpLGE9bigiZTMzMCIpLG89bigiZDAzOSIpLHM9bigiNTc3ZSIpLGM9bigiMWEyZCIpLHU9bigiZDZkNiIpLGw9bigiYjkxNyIpLmN0b2ksZj0vW15cZCsvYS16XS9pLGQ9L1tcdFxuXGZcciBdKy9nLGg9L1s9XSskLyxwPWkoImF0b2IiKSx2PVN0cmluZy5mcm9tQ2hhckNvZGUsZz1hKCIiLmNoYXJBdCksbT1hKCIiLnJlcGxhY2UpLGI9YShmLmV4ZWMpLHk9bygoZnVuY3Rpb24oKXtyZXR1cm4iIiE9PXAoIiAiKX0pKSxfPSFvKChmdW5jdGlvbigpe3AoImEiKX0pKSx3PSF5JiYhXyYmIW8oKGZ1bmN0aW9uKCl7cCgpfSkpLHg9IXkmJiFfJiYxIT09cC5sZW5ndGg7cih7Z2xvYmFsOiEwLGVudW1lcmFibGU6ITAsZm9yY2VkOnl8fF98fHd8fHh9LHthdG9iOmZ1bmN0aW9uKHQpe2lmKHUoYXJndW1lbnRzLmxlbmd0aCwxKSx3fHx4KXJldHVybiBwKHQpO3ZhciBlLG4scj1tKHModCksZCwiIiksYT0iIixvPTAseT0wO2lmKHIubGVuZ3RoJTQ9PTAmJihyPW0ocixoLCIiKSksci5sZW5ndGglND09MXx8YihmLHIpKXRocm93IG5ldyhpKCJET01FeGNlcHRpb24iKSkoIlRoZSBzdHJpbmcgaXMgbm90IGNvcnJlY3RseSBlbmNvZGVkIiwiSW52YWxpZENoYXJhY3RlckVycm9yIik7d2hpbGUoZT1nKHIsbysrKSljKGwsZSkmJihuPXklND82NCpuK2xbZV06bFtlXSx5KyslNCYmKGErPXYoMjU1Jm4+PigtMip5JjYpKSkpO3JldHVybiBhfX0pfSwiODFkNSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI3YjBiIiksaT1uKCIyM2NiIiksYT1uKCIwN2ZhIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXIodGhpcyksbj1hKGUpLG89YXJndW1lbnRzLmxlbmd0aCxzPWkobz4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsbiksYz1vPjI/YXJndW1lbnRzWzJdOnZvaWQgMCx1PXZvaWQgMD09PWM/bjppKGMsbik7d2hpbGUodT5zKWVbcysrXT10O3JldHVybiBlfX0sIjgxZTgiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuTE9DQUxFX1pIX0hBTlQ9ZS5MT0NBTEVfWkhfSEFOUz1lLkxPQ0FMRV9GUj1lLkxPQ0FMRV9FUz1lLkxPQ0FMRV9FTj1lLkkxOE5fSlNPTl9ERUxJTUlURVJTPXZvaWQgMCxlLmRlZmluZUkxOG5Qcm9wZXJ0aWVzPVMsZS5kZWZpbmVJMThuUHJvcGVydHk9VCxlLmZvcm1hdEkxOG49eCxlLmkxOG5NaXhpbj1lLmkxOG49ZS5nZXRMb2NhbGU9dm9pZCAwLGUuaW5pdEFwcExvY2FsZT1mdW5jdGlvbih0LGUsbil7dmFyIHI9dC5vYnNlcnZhYmxlKHtsb2NhbGU6bnx8Zy5nZXRMb2NhbGUoKX0pLGk9W107ZS4kd2F0Y2hMb2NhbGU9ZnVuY3Rpb24odCl7aS5wdXNoKHQpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiJGxvY2FsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiByLmxvY2FsZX0sc2V0OmZ1bmN0aW9uKHQpe3IubG9jYWxlPXQsaS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZSh0KX0pKX19KX0sZS5pbml0TmF2aWdhdGlvbkJhckkxOG49ZnVuY3Rpb24odCl7aWYoQygpKXJldHVybiBTKHQsW1sidGl0bGVUZXh0Il0sWyJzZWFyY2hJbnB1dCIsInBsYWNlaG9sZGVyIl0sWyJidXR0b25zIiwidGV4dCJdXSl9LGUuaW5pdFB1bGxUb1JlZnJlc2hJMThuPWZ1bmN0aW9uKHQpe2lmKEMoKSl7cmV0dXJuIFModCxbWyJjb250ZW50ZG93biIsImNhcHRpb24iXSxbImNvbnRlbnRvdmVyIiwiY2FwdGlvbiJdLFsiY29udGVudHJlZnJlc2giLCJjYXB0aW9uIl1dKX19LGUuaW5pdFRhYkJhckkxOG49ZnVuY3Rpb24odCl7QygpJiZ0Lmxpc3QmJnQubGlzdC5mb3JFYWNoKChmdW5jdGlvbih0KXtUKHQsWyJ0ZXh0Il0pfSkpO3JldHVybiB0fSxlLm5vcm1hbGl6ZUxvY2FsZT1mdW5jdGlvbih0LGUpe2lmKCF0KXJldHVybjtpZih0PXQudHJpbSgpLnJlcGxhY2UoL18vZywiLSIpLGUmJmVbdF0pcmV0dXJuIHQ7aWYodD10LnRvTG93ZXJDYXNlKCksImNoaW5lc2UiPT09dClyZXR1cm4iemgtSGFucyI7aWYoMD09PXQuaW5kZXhPZigiemgiKSlyZXR1cm4gdC5pbmRleE9mKCItaGFucyIpPi0xPyJ6aC1IYW5zIjp0LmluZGV4T2YoIi1oYW50Iik+LTF8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuISFlLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybi0xIT09dC5pbmRleE9mKGUpfSkpfSh0LFsiLXR3IiwiLWhrIiwiLW1vIiwiLWNodCJdKT8iemgtSGFudCI6InpoLUhhbnMiO3ZhciBuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT10LmluZGV4T2YoZSl9KSl9KHQsWyJlbiIsImZyIiwiZXMiXSk7aWYobilyZXR1cm4gbn0sZS50PWUuc2V0TG9jYWxlPXZvaWQgMCxuKCJiNjRiIiksbigiZDNiNyIpLG4oIjE1OWIiKSxuKCIxNGQ5IiksbigiN2E4MiIpLG4oIjRkZTQiKSxuKCJkODFkIiksbigiN2RiMCIpLG4oImM5NzUiKSxuKCJhYzFmIiksbigiNTMxOSIpLG4oIjQ5OGEiKTtyKG4oIjUzY2EiKSk7dmFyIGk9cihuKCJhZGUzIikpLGE9bigiMzdkYyIpLG89bigiZGI2YSIpLHM9bigiMGZiZSIpLGM9cihuKCI1OGE3IikpLHU9cihuKCI4NjZlIikpLGw9cihuKCJlOGMzIikpLGY9cihuKCJiNDc5IikpLGQ9cihuKCIyNTI2IikpO2UuTE9DQUxFX1pIX0hBTlM9InpoLUhhbnMiO2UuTE9DQUxFX1pIX0hBTlQ9InpoLUhhbnQiO2UuTE9DQUxFX0VOPSJlbiI7ZS5MT0NBTEVfRlI9ImZyIjtlLkxPQ0FMRV9FUz0iZXMiO3ZhciBoLHAsdj17fTtPYmplY3QuYXNzaWduKHYsKGg9e30sKDAsaS5kZWZhdWx0KShoLCJlbiIsYy5kZWZhdWx0KSwoMCxpLmRlZmF1bHQpKGgsImVzIix1LmRlZmF1bHQpLCgwLGkuZGVmYXVsdCkoaCwiZnIiLGwuZGVmYXVsdCksKDAsaS5kZWZhdWx0KShoLCJ6aC1IYW5zIixmLmRlZmF1bHQpLCgwLGkuZGVmYXVsdCkoaCwiemgtSGFudCIsZC5kZWZhdWx0KSxoKSkscD1uYXZpZ2F0b3IuY29va2llRW5hYmxlZCYmd2luZG93LmxvY2FsU3RvcmFnZSYmbG9jYWxTdG9yYWdlW3MuVU5JX1NUT1JBR0VfTE9DQUxFXXx8X191bmlDb25maWcubG9jYWxlfHxuYXZpZ2F0b3IubGFuZ3VhZ2UsZnVuY3Rpb24oKXtpZihDKCkpe3ZhciB0PU9iamVjdC5rZXlzKF9fdW5pQ29uZmlnLmxvY2FsZXMpO3QubGVuZ3RoJiZ0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXZbdF0sbj1fX3VuaUNvbmZpZy5sb2NhbGVzW3RdO2U/T2JqZWN0LmFzc2lnbihlLG4pOnZbdF09bn0pKX19KCk7dmFyIGc9KDAsYS5pbml0VnVlSTE4bikocCx2KTtlLmkxOG49Zzt2YXIgbT1nLnQ7ZS50PW07dmFyIGI9Zy5taXhpbj17YmVmb3JlQ3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWcuaTE4bi53YXRjaExvY2FsZSgoZnVuY3Rpb24oKXt0LiRmb3JjZVVwZGF0ZSgpfSkpO3RoaXMuJG9uY2UoImhvb2s6YmVmb3JlRGVzdHJveSIsKGZ1bmN0aW9uKCl7ZSgpfSkpfSxtZXRob2RzOnskJHQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbSh0LGUpfX19O2UuaTE4bk1peGluPWI7dmFyIHk9Zy5zZXRMb2NhbGU7ZS5zZXRMb2NhbGU9eTt2YXIgXz1nLmdldExvY2FsZTtlLmdldExvY2FsZT1fO3ZhciB3PVsiJSIsIiUiXTtmdW5jdGlvbiB4KHQpe3JldHVybigwLGEuaXNJMThuU3RyKSh0LHcpP2cuZih0LGZ1bmN0aW9uKCl7dmFyIHQ9dW5pLmdldExvY2FsZSgpLGU9X191bmlDb25maWcubG9jYWxlcztyZXR1cm4gZVt0XXx8ZVtfX3VuaUNvbmZpZy5mYWxsYmFja0xvY2FsZV18fGVbImVuIl18fHt9fSgpLHcpOnR9ZnVuY3Rpb24gUyh0LGUpe3JldHVybiBlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIFQodCxlKX0pKX1mdW5jdGlvbiBUKHQsZSl7dmFyIG49ZnVuY3Rpb24gdChlLG4pe2lmKDEhPT1uLmxlbmd0aCl7dmFyIHI9bi5zaGlmdCgpO3JldHVybiB0KGUmJmVbcl0sbil9aWYoZSl7dmFyIGk9ZnVuY3Rpb24odCl7cmV0dXJuKDAsby5pc1N0cikodCkmJigwLGEuaXNJMThuU3RyKSh0LHcpfSxzPW5bMF0sYz1bXTtpZihBcnJheS5pc0FycmF5KGUpJiYoYz1lLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIGkodFtzXSl9KSkpLmxlbmd0aClyZXR1cm4gYzt2YXIgdT1lW3NdO2lmKGkodSkpcmV0dXJuIGV9fSh0LGUpO2lmKCFuKXJldHVybiExO3ZhciByPWVbZS5sZW5ndGgtMV07aWYoQXJyYXkuaXNBcnJheShuKSluLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBUKHQsW3JdKX0pKTtlbHNle3ZhciBpPW5bcl07T2JqZWN0LmRlZmluZVByb3BlcnR5KG4scix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHgoaSl9LHNldDpmdW5jdGlvbih0KXtpPXR9fSl9cmV0dXJuITB9ZnVuY3Rpb24gQygpe3JldHVybiJ1bmRlZmluZWQiIT09dHlwZW9mIF9fdW5pQ29uZmlnJiZfX3VuaUNvbmZpZy5sb2NhbGVzJiYhIU9iamVjdC5rZXlzKF9fdW5pQ29uZmlnLmxvY2FsZXMpLmxlbmd0aH1lLkkxOE5fSlNPTl9ERUxJTUlURVJTPXd9LCI4MjVhIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODYxZCIpLGk9U3RyaW5nLGE9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihyKHQpKXJldHVybiB0O3Rocm93IGEoaSh0KSsiIGlzIG5vdCBhbiBvYmplY3QiKX19LCI4MjViIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIxNzQzIiksaT1uKCJjMzgxIik7Zm9yKHZhciBhIGluIGkpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiBpW3RdfSkpfShhKTt2YXIgbz1uKCJmMGM1Iikscz1PYmplY3Qob1siYSJdKShpWyJkZWZhdWx0Il0sclsiYiJdLHJbImMiXSwhMSxudWxsLG51bGwsbnVsbCwhMSxyWyJhIl0sdm9pZCAwKTtlWyJkZWZhdWx0Il09cy5leHBvcnRzfSwiODI1ZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0KXtPYmplY3Qua2V5cyhpLmRlZmF1bHQpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QoZSxpLmRlZmF1bHRbZV0pfSkpLHQoInBhZ2VTY3JvbGxUbyIsYS5wYWdlU2Nyb2xsVG8pLHQoImxvYWRGb250RmFjZSIsby5sb2FkRm9udEZhY2UpLCgwLHMuZGVmYXVsdCkodCl9LG4oImQzYjciKSxuKCIxNTliIiksbigiYjY0YiIpO3ZhciBpPXIobigiZTZiMCIpKSxhPW4oIjA3YTYiKSxvPW4oIjAxNzkiKSxzPXIobigiMzIwZCIpKX0sODI5NDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI5OTEwIik7Zm9yKHZhciBpIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihpKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShpKTt2YXIgYT1uKCJmMGM1Iiksbz1PYmplY3QoYVsiYSJdKShyWyJkZWZhdWx0Il0sdm9pZCAwLHZvaWQgMCwhMSxudWxsLG51bGwsbnVsbCwhMSx2b2lkIDAsdm9pZCAwKTtlWyJkZWZhdWx0Il09by5leHBvcnRzfSwiODJmOCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IiksaT1uKCI0ZDY0IikuaW5jbHVkZXMsYT1yLmFUeXBlZEFycmF5LG89ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kO28oImluY2x1ZGVzIiwoZnVuY3Rpb24odCl7cmV0dXJuIGkoYSh0aGlzKSx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKX0sODMzMDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgcj1uKCJlNDY3IiksaT1uKCIyYWJlIiksYT1uKCI4OTU5Iiksbz1uKCI1YzVjIikscz1uKCIzOTU0IiksYz1uKCI4ZGViIiksdT1uKCIzNmVmIiksbD1uKCI3ZGI0IiksZj1uKCJjNGZlIiksZD1uKCJmODYxIiksaD1uKCIyODYxIikscD1uKCJhNDlmIiksdj1uKCJiMzM0IiksZz1uKCIzNzdlIiksbT1uKCI0YWUyIiksYj1uKCI2MzNkIikseT1uKCIwMjA2IiksXz17JGVtaXQ6ci4kZW1pdCxjYW5JVXNlOmkuY2FuSVVzZSxjYW52YXNUb1RlbXBGaWxlUGF0aDphLmNhbnZhc1RvVGVtcEZpbGVQYXRoLGNsZWFyU3RvcmFnZTpvLmNsZWFyU3RvcmFnZSxjbGVhclN0b3JhZ2VTeW5jOm8uY2xlYXJTdG9yYWdlU3luYyxjcmVhdGVBbmltYXRpb246cy5jcmVhdGVBbmltYXRpb24sY3JlYXRlQ2FudmFzQ29udGV4dDphLmNyZWF0ZUNhbnZhc0NvbnRleHQsY3JlYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6Yy5jcmVhdGVJbnRlcnNlY3Rpb25PYnNlcnZlcixjcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXI6dS5jcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXIsY3JlYXRlU2VsZWN0b3JRdWVyeTpsLmNyZWF0ZVNlbGVjdG9yUXVlcnksZ2V0TG9jYWxlOmYuZ2V0TG9jYWxlLGdldFN0b3JhZ2VTeW5jOm8uZ2V0U3RvcmFnZVN5bmMsZ2V0U3lzdGVtSW5mbzpkLmdldFN5c3RlbUluZm8sZ2V0U3lzdGVtSW5mb1N5bmM6ZC5nZXRTeXN0ZW1JbmZvU3luYyxoaWRlTG9hZGluZzpoLmhpZGVMb2FkaW5nLG5hdmlnYXRlQmFjazpwLm5hdmlnYXRlQmFjayxuYXZpZ2F0ZVRvOnAubmF2aWdhdGVUbyxwYWdlU2Nyb2xsVG86di5wYWdlU2Nyb2xsVG8scHJldmlld0ltYWdlOmcucHJldmlld0ltYWdlLHJlTGF1bmNoOnAucmVMYXVuY2gscmVkaXJlY3RUbzpwLnJlZGlyZWN0VG8scmVxdWVzdDptLnJlcXVlc3Qsc2V0TmF2aWdhdGlvbkJhclRpdGxlOmIuc2V0TmF2aWdhdGlvbkJhclRpdGxlLHNldFN0b3JhZ2VTeW5jOm8uc2V0U3RvcmFnZVN5bmMsc2hvd0xvYWRpbmc6aC5zaG93TG9hZGluZyxzaG93TW9kYWw6aC5zaG93TW9kYWwsc2hvd1RvYXN0Omguc2hvd1RvYXN0LHN3aXRjaFRhYjpwLnN3aXRjaFRhYix1cHgycHg6eS51cHgycHh9O2UuZGVmYXVsdD1ffSwiODNhYiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwMzkiKTt0LmV4cG9ydHM9IXIoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KVsxXX0pKX0sODQxODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImEwNGIiKSxpPW4oIjliZjIiKSxhPW4oIjVjNmMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe3ZhciBvPXIoZSk7byBpbiB0P2kuZih0LG8sYSgwLG4pKTp0W29dPW59fSwiODQxYyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJjNjViIiksaT1uKCJkNzg0IiksYT1uKCI4MjVhIiksbz1uKCI3MjM0Iikscz1uKCIxZDgwIiksYz1uKCIxMjlmIiksdT1uKCI1NzdlIiksbD1uKCJkYzRhIiksZj1uKCIxNGMzIik7aSgic2VhcmNoIiwoZnVuY3Rpb24odCxlLG4pe3JldHVybltmdW5jdGlvbihlKXt2YXIgbj1zKHRoaXMpLGk9byhlKT92b2lkIDA6bChlLHQpO3JldHVybiBpP3IoaSxlLG4pOm5ldyBSZWdFeHAoZSlbdF0odShuKSl9LGZ1bmN0aW9uKHQpe3ZhciByPWEodGhpcyksaT11KHQpLG89bihlLHIsaSk7aWYoby5kb25lKXJldHVybiBvLnZhbHVlO3ZhciBzPXIubGFzdEluZGV4O2MocywwKXx8KHIubGFzdEluZGV4PTApO3ZhciBsPWYocixpKTtyZXR1cm4gYyhyLmxhc3RJbmRleCxzKXx8KHIubGFzdEluZGV4PXMpLG51bGw9PT1sPy0xOmwuaW5kZXh9XX0pKX0sODQyMTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIwYTc1IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiODRhZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIG4oInRyYW5zaXRpb24iLHthdHRyczp7bmFtZToidW5pLWZhZGUifX0sW3QudmlzaWJsZT9uKCJ1bmktdG9hc3QiLHthdHRyczp7ImRhdGEtZHVyYXRpb24iOnQuZHVyYXRpb259fSxbdC5tYXNrP24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktbWFzayIsc3RhdGljU3R5bGU6e2JhY2tncm91bmQ6InRyYW5zcGFyZW50In0sb246e3RvdWNobW92ZTpmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCl9fX0pOnQuX2UoKSx0LmltYWdlfHx0Lmljb25DbGFzcz9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXRvYXN0In0sW3QuaW1hZ2U/bigiaW1nIix7c3RhdGljQ2xhc3M6InVuaS10b2FzdF9faWNvbiIsYXR0cnM6e3NyYzp0LmltYWdlfX0pOm4oImkiLHtzdGF0aWNDbGFzczoidW5pLWljb25fdG9hc3QiLGNsYXNzOnQuaWNvbkNsYXNzfSksbigicCIse3N0YXRpY0NsYXNzOiJ1bmktdG9hc3RfX2NvbnRlbnQifSxbdC5fdigiXG4gICAgICAgICIrdC5fcyh0LnRpdGxlKSsiXG4gICAgICAiKV0pXSk6bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1zYW1wbGUtdG9hc3QifSxbbigicCIse3N0YXRpY0NsYXNzOiJ1bmktc2ltcGxlLXRvYXN0X190ZXh0In0sW3QuX3YoIlxuICAgICAgICAiK3QuX3ModC50aXRsZSkrIlxuICAgICAgIildKV0pXSk6dC5fZSgpXSwxKX0saT1bXX0sIjg2MGYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiBuKCJ1bmktaW5wdXQiLHQuX2coe30sdC4kbGlzdGVuZXJzKSxbbigiZGl2Iix7cmVmOiJ3cmFwcGVyIixzdGF0aWNDbGFzczoidW5pLWlucHV0LXdyYXBwZXIifSxbbigiZGl2Iix7ZGlyZWN0aXZlczpbe25hbWU6InNob3ciLHJhd05hbWU6InYtc2hvdyIsdmFsdWU6dC5zaG93UGxhY2Vob2xkZXIsZXhwcmVzc2lvbjoic2hvd1BsYWNlaG9sZGVyIn1dLHJlZjoicGxhY2Vob2xkZXIiLHN0YXRpY0NsYXNzOiJ1bmktaW5wdXQtcGxhY2Vob2xkZXIiLGNsYXNzOnQucGxhY2Vob2xkZXJDbGFzcyxzdHlsZTp0LnBsYWNlaG9sZGVyU3R5bGUsZG9tUHJvcHM6e3RleHRDb250ZW50OnQuX3ModC5wbGFjZWhvbGRlcil9fSksImNoZWNrYm94IiE9PXQuaW5wdXRUeXBlfHx0LmRpc2FibGVkJiZ0LmZpeENvbG9yPyJyYWRpbyIhPT10LmlucHV0VHlwZXx8dC5kaXNhYmxlZCYmdC5maXhDb2xvcj90LmRpc2FibGVkJiZ0LmZpeENvbG9yP3QuX2UoKTpuKCJpbnB1dCIse2RpcmVjdGl2ZXM6W3tuYW1lOiJtb2RlbCIscmF3TmFtZToidi1tb2RlbCIsdmFsdWU6dC52YWx1ZVN5bmMsZXhwcmVzc2lvbjoidmFsdWVTeW5jIn0se25hbWU6ImtleWJvYXJkIixyYXdOYW1lOiJ2LWtleWJvYXJkIn0se25hbWU6ImZpZWxkIixyYXdOYW1lOiJ2LWZpZWxkIn1dLHJlZjoiaW5wdXQiLHN0YXRpY0NsYXNzOiJ1bmktaW5wdXQtaW5wdXQiLGF0dHJzOntkaXNhYmxlZDp0LmRpc2FibGVkLG1heGxlbmd0aDp0Lm1heGxlbmd0aCxzdGVwOnQuX3N0ZXAsZW50ZXJrZXloaW50OnQuY29uZmlybVR5cGUscGF0dGVybjoibnVtYmVyIj09PXQudHlwZT8iWzAtOV0qIjpudWxsLGF1dG9jb21wbGV0ZTp0LmF1dG9jb21wbGV0ZSxpbnB1dG1vZGU6dC5pbnB1dG1vZGUsdHlwZTp0LmlucHV0VHlwZX0sZG9tUHJvcHM6e3ZhbHVlOnQudmFsdWVTeW5jfSxvbjp7Y2hhbmdlOmZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9LGZvY3VzOnQuX29uRm9jdXMsYmx1cjp0Ll9vbkJsdXIsaW5wdXQ6W2Z1bmN0aW9uKGUpe2UudGFyZ2V0LmNvbXBvc2luZ3x8KHQudmFsdWVTeW5jPWUudGFyZ2V0LnZhbHVlKX0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCksdC5fb25JbnB1dChlKX1dLGNvbXBvc2l0aW9uc3RhcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCksdC5fb25Db21wb3NpdGlvbihlKX0sY29tcG9zaXRpb25lbmQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCksdC5fb25Db21wb3NpdGlvbihlKX0sY29tcG9zaXRpb251cGRhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCksdC5fb25Db21wb3NpdGlvbihlKX0sa2V5dXA6ZnVuY3Rpb24oZSl7cmV0dXJuIWUudHlwZS5pbmRleE9mKCJrZXkiKSYmdC5fayhlLmtleUNvZGUsImVudGVyIiwxMyxlLmtleSwiRW50ZXIiKT9udWxsOihlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uS2V5dXAoZSkpfX19KTpuKCJpbnB1dCIse2RpcmVjdGl2ZXM6W3tuYW1lOiJtb2RlbCIscmF3TmFtZToidi1tb2RlbCIsdmFsdWU6dC52YWx1ZVN5bmMsZXhwcmVzc2lvbjoidmFsdWVTeW5jIn0se25hbWU6ImtleWJvYXJkIixyYXdOYW1lOiJ2LWtleWJvYXJkIn0se25hbWU6ImZpZWxkIixyYXdOYW1lOiJ2LWZpZWxkIn1dLHJlZjoiaW5wdXQiLHN0YXRpY0NsYXNzOiJ1bmktaW5wdXQtaW5wdXQiLGF0dHJzOntkaXNhYmxlZDp0LmRpc2FibGVkLG1heGxlbmd0aDp0Lm1heGxlbmd0aCxzdGVwOnQuX3N0ZXAsZW50ZXJrZXloaW50OnQuY29uZmlybVR5cGUscGF0dGVybjoibnVtYmVyIj09PXQudHlwZT8iWzAtOV0qIjpudWxsLGF1dG9jb21wbGV0ZTp0LmF1dG9jb21wbGV0ZSxpbnB1dG1vZGU6dC5pbnB1dG1vZGUsdHlwZToicmFkaW8ifSxkb21Qcm9wczp7Y2hlY2tlZDp0Ll9xKHQudmFsdWVTeW5jLG51bGwpfSxvbjp7Y2hhbmdlOltmdW5jdGlvbihlKXt0LnZhbHVlU3luYz1udWxsfSxmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpfV0sZm9jdXM6dC5fb25Gb2N1cyxibHVyOnQuX29uQmx1cixpbnB1dDpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbklucHV0KGUpfSxjb21wb3NpdGlvbnN0YXJ0OmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uQ29tcG9zaXRpb24oZSl9LGNvbXBvc2l0aW9uZW5kOmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uQ29tcG9zaXRpb24oZSl9LGNvbXBvc2l0aW9udXBkYXRlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uQ29tcG9zaXRpb24oZSl9LGtleXVwOmZ1bmN0aW9uKGUpe3JldHVybiFlLnR5cGUuaW5kZXhPZigia2V5IikmJnQuX2soZS5rZXlDb2RlLCJlbnRlciIsMTMsZS5rZXksIkVudGVyIik/bnVsbDooZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbktleXVwKGUpKX19fSk6bigiaW5wdXQiLHtkaXJlY3RpdmVzOlt7bmFtZToibW9kZWwiLHJhd05hbWU6InYtbW9kZWwiLHZhbHVlOnQudmFsdWVTeW5jLGV4cHJlc3Npb246InZhbHVlU3luYyJ9LHtuYW1lOiJrZXlib2FyZCIscmF3TmFtZToidi1rZXlib2FyZCJ9LHtuYW1lOiJmaWVsZCIscmF3TmFtZToidi1maWVsZCJ9XSxyZWY6ImlucHV0IixzdGF0aWNDbGFzczoidW5pLWlucHV0LWlucHV0IixhdHRyczp7ZGlzYWJsZWQ6dC5kaXNhYmxlZCxtYXhsZW5ndGg6dC5tYXhsZW5ndGgsc3RlcDp0Ll9zdGVwLGVudGVya2V5aGludDp0LmNvbmZpcm1UeXBlLHBhdHRlcm46Im51bWJlciI9PT10LnR5cGU/IlswLTldKiI6bnVsbCxhdXRvY29tcGxldGU6dC5hdXRvY29tcGxldGUsaW5wdXRtb2RlOnQuaW5wdXRtb2RlLHR5cGU6ImNoZWNrYm94In0sZG9tUHJvcHM6e2NoZWNrZWQ6QXJyYXkuaXNBcnJheSh0LnZhbHVlU3luYyk/dC5faSh0LnZhbHVlU3luYyxudWxsKT4tMTp0LnZhbHVlU3luY30sb246e2NoYW5nZTpbZnVuY3Rpb24oZSl7dmFyIG49dC52YWx1ZVN5bmMscj1lLnRhcmdldCxpPSEhci5jaGVja2VkO2lmKEFycmF5LmlzQXJyYXkobikpe3ZhciBhPXQuX2kobixudWxsKTtyLmNoZWNrZWQ/YTwwJiYodC52YWx1ZVN5bmM9bi5jb25jYXQoW251bGxdKSk6YT4tMSYmKHQudmFsdWVTeW5jPW4uc2xpY2UoMCxhKS5jb25jYXQobi5zbGljZShhKzEpKSl9ZWxzZSB0LnZhbHVlU3luYz1pfSxmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpfV0sZm9jdXM6dC5fb25Gb2N1cyxibHVyOnQuX29uQmx1cixpbnB1dDpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbklucHV0KGUpfSxjb21wb3NpdGlvbnN0YXJ0OmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uQ29tcG9zaXRpb24oZSl9LGNvbXBvc2l0aW9uZW5kOmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uQ29tcG9zaXRpb24oZSl9LGNvbXBvc2l0aW9udXBkYXRlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uQ29tcG9zaXRpb24oZSl9LGtleXVwOmZ1bmN0aW9uKGUpe3JldHVybiFlLnR5cGUuaW5kZXhPZigia2V5IikmJnQuX2soZS5rZXlDb2RlLCJlbnRlciIsMTMsZS5rZXksIkVudGVyIik/bnVsbDooZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbktleXVwKGUpKX19fSksdC5kaXNhYmxlZCYmdC5maXhDb2xvcj9uKCJpbnB1dCIse3JlZjoiaW5wdXQiLHN0YXRpY0NsYXNzOiJ1bmktaW5wdXQtaW5wdXQiLGF0dHJzOnt0YWJpbmRleDoiLTEiLHJlYWRvbmx5OnQuZGlzYWJsZWQsdHlwZTp0LmlucHV0VHlwZSxtYXhsZW5ndGg6dC5tYXhsZW5ndGgsc3RlcDp0Ll9zdGVwfSxkb21Qcm9wczp7dmFsdWU6dC52YWx1ZVN5bmN9LG9uOntmb2N1czpmdW5jdGlvbih0KXtyZXR1cm4gdC50YXJnZXQuYmx1cigpfX19KTp0Ll9lKCldKV0pfSxpPVtdfSwiODYxZCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjE2MjYiKSxpPW4oIjhlYTEiKSxhPWkuYWxsO3QuZXhwb3J0cz1pLklTX0hUTUxEREE/ZnVuY3Rpb24odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0P251bGwhPT10OnIodCl8fHQ9PT1hfTpmdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ/bnVsbCE9PXQ6cih0KX19LCI4NjZlIjpmdW5jdGlvbih0KXt0LmV4cG9ydHM9SlNPTi5wYXJzZSgneyJ1bmkuYXBwLnF1aXQiOiJQdWxzZSBvdHJhIHZleiBwYXJhIHNhbGlyIiwidW5pLmFzeW5jLmVycm9yIjoiU2UgYWdvdMOzIGVsIHRpZW1wbyBkZSBjb25leGnDs24sIGhhZ2EgY2xpYyBlbiBsYSBwYW50YWxsYSBwYXJhIHZvbHZlciBhIGludGVudGFybG8uIiwidW5pLnNob3dBY3Rpb25TaGVldC5jYW5jZWwiOiJDYW5jZWxhciIsInVuaS5zaG93VG9hc3QudW5wYWlyZWQiOiJUZW5nYSBlbiBjdWVudGEgcXVlIHNob3dUb2FzdCBkZWJlIGVzdGFyIGVtcGFyZWphZG8gY29uIGhpZGVUb2FzdCIsInVuaS5zaG93TG9hZGluZy51bnBhaXJlZCI6IlRlbmdhIGVuIGN1ZW50YSBxdWUgc2hvd0xvYWRpbmcgZGViZSBlc3RhciBlbXBhcmVqYWRvIGNvbiBoaWRlTG9hZGluZyIsInVuaS5zaG93TW9kYWwuY2FuY2VsIjoiQ2FuY2VsYXIiLCJ1bmkuc2hvd01vZGFsLmNvbmZpcm0iOiJPSyIsInVuaS5jaG9vc2VJbWFnZS5jYW5jZWwiOiJDYW5jZWxhciIsInVuaS5jaG9vc2VJbWFnZS5zb3VyY2VUeXBlLmFsYnVtIjoiw4FsYnVtIiwidW5pLmNob29zZUltYWdlLnNvdXJjZVR5cGUuY2FtZXJhIjoiQ8OhbWFyYSIsInVuaS5jaG9vc2VWaWRlby5jYW5jZWwiOiJDYW5jZWxhciIsInVuaS5jaG9vc2VWaWRlby5zb3VyY2VUeXBlLmFsYnVtIjoiw4FsYnVtIiwidW5pLmNob29zZVZpZGVvLnNvdXJjZVR5cGUuY2FtZXJhIjoiQ8OhbWFyYSIsInVuaS5jaG9vc2VGaWxlLm5vdFVzZXJBY3RpdmF0aW9uIjoiRWwgY3VhZHJvIGRlIGRpw6Fsb2dvIGRlbCBzZWxlY3RvciBkZSBhcmNoaXZvcyBzb2xvIHNlIHB1ZWRlIG1vc3RyYXIgY29uIGxhIGFjdGl2YWNpw7NuIGRlbCB1c3VhcmlvIiwidW5pLnByZXZpZXdJbWFnZS5jYW5jZWwiOiJDYW5jZWxhciIsInVuaS5wcmV2aWV3SW1hZ2UuYnV0dG9uLnNhdmUiOiJHdWFyZGFyIGltYWdlbiIsInVuaS5wcmV2aWV3SW1hZ2Uuc2F2ZS5zdWNjZXNzIjoiR3VhcmRhZG8gZXhpdG9zYW1lbnRlIiwidW5pLnByZXZpZXdJbWFnZS5zYXZlLmZhaWwiOiJFcnJvciBhbCBndWFyZGFyIiwidW5pLnNldENsaXBib2FyZERhdGEuc3VjY2VzcyI6IkNvbnRlbmlkbyBjb3BpYWRvIiwidW5pLnNjYW5Db2RlLnRpdGxlIjoiQ8OzZGlnbyBkZSBlc2NhbmVvIiwidW5pLnNjYW5Db2RlLmFsYnVtIjoiw4FsYnVtIiwidW5pLnNjYW5Db2RlLmZhaWwiOiLDiWNoZWMgZGUgbGEgcmVjb25uYWlzc2FuY2UiLCJ1bmkuc2NhbkNvZGUuZmxhc2gub24iOiJUb3F1ZSBwYXJhIGVuY2VuZGVyIGxhIGx1eiIsInVuaS5zY2FuQ29kZS5mbGFzaC5vZmYiOiJUb3F1ZSBwYXJhIGFwYWdhciBsYSBsdXoiLCJ1bmkuc3RhcnRTb3RlckF1dGhlbnRpY2F0aW9uLmF1dGhDb250ZW50IjoiUmVjb25vY2ltaWVudG8gZGUgaHVlbGxhcyBkYWN0aWxhcmVzIiwidW5pLnN0YXJ0U290ZXJBdXRoZW50aWNhdGlvbi53YWl0aW5nQ29udGVudCI6IklycmVjb25vY2libGUiLCJ1bmkucGlja2VyLmRvbmUiOiJPSyIsInVuaS5waWNrZXIuY2FuY2VsIjoiQ2FuY2VsYXIiLCJ1bmkudmlkZW8uZGFubXUiOiJEYW5tdSIsInVuaS52aWRlby52b2x1bWUiOiJWb2x1bWVuIiwidW5pLmJ1dHRvbi5mZWVkYmFjay50aXRsZSI6InJlYWxpbWVudGFjacOzbiIsInVuaS5idXR0b24uZmVlZGJhY2suc2VuZCI6ImVudmlhciIsInVuaS5jaG9vc2VMb2NhdGlvbi5zZWFyY2giOiJFbmNvbnRyYXIiLCJ1bmkuY2hvb3NlTG9jYXRpb24uY2FuY2VsIjoiQ2FuY2VsYXIifScpfSw4NzUxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSk7ciYmbiYmKHIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSxyPW51bGwpO3J8fChyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksci50eXBlPSJ0ZXh0L2NzcyIsZSYmKHIuaWQ9ZSksZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChyKSk7ci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KSl9fSwiODdkNiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7ZS5kZWZhdWx0PXtuYW1lOiJBc3luY0xvYWRpbmcifX0sODkyNTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZTMzMCIpLGk9bigiMTYyNiIpLGE9bigiYzZjZCIpLG89cihGdW5jdGlvbi50b1N0cmluZyk7aShhLmluc3BlY3RTb3VyY2UpfHwoYS5pbnNwZWN0U291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiBvKHQpfSksdC5leHBvcnRzPWEuaW5zcGVjdFNvdXJjZX0sODk1OTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0LHIpe24oIjdhODIiKTt2YXIgaT1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5DYW52YXNDb250ZXh0PXZvaWQgMCxlLmNhbnZhc0dldEltYWdlRGF0YT1mdW5jdGlvbih0LGUpe3ZhciBuPXQuY2FudmFzSWQscj10LngsaT10LnksYT10LndpZHRoLG89dC5oZWlnaHQscz0oMCxmLmdldEN1cnJlbnRQYWdlSWQpKCk7aWYoIXMpcmV0dXJuIHZvaWQoMCxkLmludm9rZSkoZSx7ZXJyTXNnOiJjYW52YXNHZXRJbWFnZURhdGE6ZmFpbCJ9KTt2YXIgYz1wLnB1c2goKGZ1bmN0aW9uKHQpe3ZhciBuPXQuZGF0YTtuJiZuLmxlbmd0aCYmKHQuZGF0YT1uZXcgVWludDhDbGFtcGVkQXJyYXkobikpOygwLGQuaW52b2tlKShlLHQpfSkpO3YobixzLCJnZXRJbWFnZURhdGEiLHt4OnIseTppLHdpZHRoOmEsaGVpZ2h0Om8sY2FsbGJhY2tJZDpjfSl9LGUuY2FudmFzUHV0SW1hZ2VEYXRhPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5jYW52YXNJZCxyPXQuZGF0YSxpPXQueCxhPXQueSxvPXQud2lkdGgscz10LmhlaWdodCxjPSgwLGYuZ2V0Q3VycmVudFBhZ2VJZCkoKTtpZighYylyZXR1cm4gdm9pZCgwLGQuaW52b2tlKShlLHtlcnJNc2c6ImNhbnZhc1B1dEltYWdlRGF0YTpmYWlsIn0pO3ZhciB1PXAucHVzaCgoZnVuY3Rpb24odCl7KDAsZC5pbnZva2UpKGUsdCl9KSk7cj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyKTt2KG4sYywicHV0SW1hZ2VEYXRhIix7ZGF0YTpyLHg6aSx5OmEsd2lkdGg6byxoZWlnaHQ6cyxjb21wcmVzc2VkOnZvaWQgMCxjYWxsYmFja0lkOnV9KX0sZS5jYW52YXNUb1RlbXBGaWxlUGF0aD1mdW5jdGlvbih0LGUpe3ZhciBuPXQueCxyPXZvaWQgMD09PW4/MDpuLGk9dC55LGE9dm9pZCAwPT09aT8wOmksbz10LndpZHRoLHM9dC5oZWlnaHQsYz10LmRlc3RXaWR0aCx1PXQuZGVzdEhlaWdodCxsPXQuY2FudmFzSWQsZz10LmZpbGVUeXBlLG09dC5xdWFsaXR5LGI9KDAsZi5nZXRDdXJyZW50UGFnZUlkKSgpO2lmKCFiKXJldHVybiB2b2lkKDAsZC5pbnZva2UpKGUse2Vyck1zZzoiY2FudmFzVG9UZW1wRmlsZVBhdGg6ZmFpbCJ9KTt2YXIgeT1wLnB1c2goKGZ1bmN0aW9uKHQpeygwLGQuaW52b2tlKShlLHQpfSkpLF89IiIuY29uY2F0KGguVEVNUF9QQVRILCIvY2FudmFzIik7dihsLGIsInRvVGVtcEZpbGVQYXRoIix7eDpyLHk6YSx3aWR0aDpvLGhlaWdodDpzLGRlc3RXaWR0aDpjLGRlc3RIZWlnaHQ6dSxmaWxlVHlwZTpnLHF1YWxpdHk6bSxkaXJuYW1lOl8sY2FsbGJhY2tJZDp5fSl9LGUuY3JlYXRlQ2FudmFzQ29udGV4dD1mdW5jdGlvbihlLG4pe2lmKG4pcmV0dXJuIG5ldyB3KGUsbi4kcGFnZS5pZCk7dmFyIHI9KDAsZi5nZXRDdXJyZW50UGFnZUlkKSgpO2lmKHIpcmV0dXJuIG5ldyB3KGUscik7dC5lbWl0KCJvbkVycm9yIiwiY3JlYXRlQ2FudmFzQ29udGV4dDpmYWlsIil9O3ZhciBhPWkobigiNTNjYSIpKSxvPWkobigiMjkwOSIpKSxzPWkobigiZDRlYyIpKSxjPWkobigiYmVlMiIpKTtuKCJhYzFmIiksbigiZTI1ZSIpLG4oImZiNmEiKSxuKCI5OWFmIiksbigiZDgxZCIpLG4oIjQ5OGEiKSxuKCJhY2Q4IiksbigiMTRkOSIpLG4oImM5NzUiKSxuKCI3ZGIwIiksbigiZDNiNyIpLG4oIjhhNzkiKSxuKCJhOWUzIiksbigiZDQwMSIpLG4oIjI1ZjAiKSxuKCJlOWM0IiksbigiNDY2ZCIpLG4oIjEyNzYiKSxuKCIxNTliIiksbigiNTMxOSIpLG4oImFjZTQiKSxuKCI4YTU5IiksbigiOTA3YSIpLG4oIjlhOGMiKSxuKCJhOTc1IiksbigiNzM1ZSIpLG4oImMxYWMiKSxuKCJkMTM5IiksbigiM2E3YiIpLG4oIjk4NmEiKSxuKCIxZDAyIiksbigiZDVkNiIpLG4oIjgyZjgiKSxuKCJlOTFmIiksbigiNjBiZCIpLG4oIjVmOTYiKSxuKCIzMjgwIiksbigiM2ZjYyIpLG4oImNhOTEiKSxuKCIyNWExIiksbigiY2QyNiIpLG4oIjNjNWQiKSxuKCIyOTU0IiksbigiNjQ5ZSIpLG4oIjIxOWMiKSxuKCJiMzlhIiksbigiNzJmNyIpO3ZhciB1PW4oImRiNmEiKSxsPWkobigiZmYyMiIpKSxmPW4oIjI0MTIiKSxkPW4oIjczMjkiKSxoPW4oIjkwNjYiKSxwPSgwLGwuZGVmYXVsdCkoImNhbnZhc0V2ZW50Iik7ZnVuY3Rpb24gdihlLG4scixpKXt0LnB1Ymxpc2hIYW5kbGVyKG4rIi1jYW52YXMtIitlLHtjYW52YXNJZDplLHR5cGU6cixkYXRhOml9LG4pfXQuc3Vic2NyaWJlKCJvbkNhbnZhc01ldGhvZENhbGxiYWNrIiwoZnVuY3Rpb24odCl7dmFyIGU9dC5jYWxsYmFja0lkLG49dC5kYXRhLHI9cC5wb3AoZSk7ciYmcihuKX0pKTt2YXIgZz17YWxpY2VibHVlOiIjZjBmOGZmIixhbnRpcXVld2hpdGU6IiNmYWViZDciLGFxdWE6IiMwMGZmZmYiLGFxdWFtYXJpbmU6IiM3ZmZmZDQiLGF6dXJlOiIjZjBmZmZmIixiZWlnZToiI2Y1ZjVkYyIsYmlzcXVlOiIjZmZlNGM0IixibGFjazoiIzAwMDAwMCIsYmxhbmNoZWRhbG1vbmQ6IiNmZmViY2QiLGJsdWU6IiMwMDAwZmYiLGJsdWV2aW9sZXQ6IiM4YTJiZTIiLGJyb3duOiIjYTUyYTJhIixidXJseXdvb2Q6IiNkZWI4ODciLGNhZGV0Ymx1ZToiIzVmOWVhMCIsY2hhcnRyZXVzZToiIzdmZmYwMCIsY2hvY29sYXRlOiIjZDI2OTFlIixjb3JhbDoiI2ZmN2Y1MCIsY29ybmZsb3dlcmJsdWU6IiM2NDk1ZWQiLGNvcm5zaWxrOiIjZmZmOGRjIixjcmltc29uOiIjZGMxNDNjIixjeWFuOiIjMDBmZmZmIixkYXJrYmx1ZToiIzAwMDA4YiIsZGFya2N5YW46IiMwMDhiOGIiLGRhcmtnb2xkZW5yb2Q6IiNiODg2MGIiLGRhcmtncmF5OiIjYTlhOWE5IixkYXJrZ3JleToiI2E5YTlhOSIsZGFya2dyZWVuOiIjMDA2NDAwIixkYXJra2hha2k6IiNiZGI3NmIiLGRhcmttYWdlbnRhOiIjOGIwMDhiIixkYXJrb2xpdmVncmVlbjoiIzU1NmIyZiIsZGFya29yYW5nZToiI2ZmOGMwMCIsZGFya29yY2hpZDoiIzk5MzJjYyIsZGFya3JlZDoiIzhiMDAwMCIsZGFya3NhbG1vbjoiI2U5OTY3YSIsZGFya3NlYWdyZWVuOiIjOGZiYzhmIixkYXJrc2xhdGVibHVlOiIjNDgzZDhiIixkYXJrc2xhdGVncmF5OiIjMmY0ZjRmIixkYXJrc2xhdGVncmV5OiIjMmY0ZjRmIixkYXJrdHVycXVvaXNlOiIjMDBjZWQxIixkYXJrdmlvbGV0OiIjOTQwMGQzIixkZWVwcGluazoiI2ZmMTQ5MyIsZGVlcHNreWJsdWU6IiMwMGJmZmYiLGRpbWdyYXk6IiM2OTY5NjkiLGRpbWdyZXk6IiM2OTY5NjkiLGRvZGdlcmJsdWU6IiMxZTkwZmYiLGZpcmVicmljazoiI2IyMjIyMiIsZmxvcmFsd2hpdGU6IiNmZmZhZjAiLGZvcmVzdGdyZWVuOiIjMjI4YjIyIixmdWNoc2lhOiIjZmYwMGZmIixnYWluc2Jvcm86IiNkY2RjZGMiLGdob3N0d2hpdGU6IiNmOGY4ZmYiLGdvbGQ6IiNmZmQ3MDAiLGdvbGRlbnJvZDoiI2RhYTUyMCIsZ3JheToiIzgwODA4MCIsZ3JleToiIzgwODA4MCIsZ3JlZW46IiMwMDgwMDAiLGdyZWVueWVsbG93OiIjYWRmZjJmIixob25leWRldzoiI2YwZmZmMCIsaG90cGluazoiI2ZmNjliNCIsaW5kaWFucmVkOiIjY2Q1YzVjIixpbmRpZ286IiM0YjAwODIiLGl2b3J5OiIjZmZmZmYwIixraGFraToiI2YwZTY4YyIsbGF2ZW5kZXI6IiNlNmU2ZmEiLGxhdmVuZGVyYmx1c2g6IiNmZmYwZjUiLGxhd25ncmVlbjoiIzdjZmMwMCIsbGVtb25jaGlmZm9uOiIjZmZmYWNkIixsaWdodGJsdWU6IiNhZGQ4ZTYiLGxpZ2h0Y29yYWw6IiNmMDgwODAiLGxpZ2h0Y3lhbjoiI2UwZmZmZiIsbGlnaHRnb2xkZW5yb2R5ZWxsb3c6IiNmYWZhZDIiLGxpZ2h0Z3JheToiI2QzZDNkMyIsbGlnaHRncmV5OiIjZDNkM2QzIixsaWdodGdyZWVuOiIjOTBlZTkwIixsaWdodHBpbms6IiNmZmI2YzEiLGxpZ2h0c2FsbW9uOiIjZmZhMDdhIixsaWdodHNlYWdyZWVuOiIjMjBiMmFhIixsaWdodHNreWJsdWU6IiM4N2NlZmEiLGxpZ2h0c2xhdGVncmF5OiIjNzc4ODk5IixsaWdodHNsYXRlZ3JleToiIzc3ODg5OSIsbGlnaHRzdGVlbGJsdWU6IiNiMGM0ZGUiLGxpZ2h0eWVsbG93OiIjZmZmZmUwIixsaW1lOiIjMDBmZjAwIixsaW1lZ3JlZW46IiMzMmNkMzIiLGxpbmVuOiIjZmFmMGU2IixtYWdlbnRhOiIjZmYwMGZmIixtYXJvb246IiM4MDAwMDAiLG1lZGl1bWFxdWFtYXJpbmU6IiM2NmNkYWEiLG1lZGl1bWJsdWU6IiMwMDAwY2QiLG1lZGl1bW9yY2hpZDoiI2JhNTVkMyIsbWVkaXVtcHVycGxlOiIjOTM3MGRiIixtZWRpdW1zZWFncmVlbjoiIzNjYjM3MSIsbWVkaXVtc2xhdGVibHVlOiIjN2I2OGVlIixtZWRpdW1zcHJpbmdncmVlbjoiIzAwZmE5YSIsbWVkaXVtdHVycXVvaXNlOiIjNDhkMWNjIixtZWRpdW12aW9sZXRyZWQ6IiNjNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiIzE5MTk3MCIsbWludGNyZWFtOiIjZjVmZmZhIixtaXN0eXJvc2U6IiNmZmU0ZTEiLG1vY2Nhc2luOiIjZmZlNGI1IixuYXZham93aGl0ZToiI2ZmZGVhZCIsbmF2eToiIzAwMDA4MCIsb2xkbGFjZToiI2ZkZjVlNiIsb2xpdmU6IiM4MDgwMDAiLG9saXZlZHJhYjoiIzZiOGUyMyIsb3JhbmdlOiIjZmZhNTAwIixvcmFuZ2VyZWQ6IiNmZjQ1MDAiLG9yY2hpZDoiI2RhNzBkNiIscGFsZWdvbGRlbnJvZDoiI2VlZThhYSIscGFsZWdyZWVuOiIjOThmYjk4IixwYWxldHVycXVvaXNlOiIjYWZlZWVlIixwYWxldmlvbGV0cmVkOiIjZGI3MDkzIixwYXBheWF3aGlwOiIjZmZlZmQ1IixwZWFjaHB1ZmY6IiNmZmRhYjkiLHBlcnU6IiNjZDg1M2YiLHBpbms6IiNmZmMwY2IiLHBsdW06IiNkZGEwZGQiLHBvd2RlcmJsdWU6IiNiMGUwZTYiLHB1cnBsZToiIzgwMDA4MCIscmViZWNjYXB1cnBsZToiIzY2MzM5OSIscmVkOiIjZmYwMDAwIixyb3N5YnJvd246IiNiYzhmOGYiLHJveWFsYmx1ZToiIzQxNjllMSIsc2FkZGxlYnJvd246IiM4YjQ1MTMiLHNhbG1vbjoiI2ZhODA3MiIsc2FuZHlicm93bjoiI2Y0YTQ2MCIsc2VhZ3JlZW46IiMyZThiNTciLHNlYXNoZWxsOiIjZmZmNWVlIixzaWVubmE6IiNhMDUyMmQiLHNpbHZlcjoiI2MwYzBjMCIsc2t5Ymx1ZToiIzg3Y2VlYiIsc2xhdGVibHVlOiIjNmE1YWNkIixzbGF0ZWdyYXk6IiM3MDgwOTAiLHNsYXRlZ3JleToiIzcwODA5MCIsc25vdzoiI2ZmZmFmYSIsc3ByaW5nZ3JlZW46IiMwMGZmN2YiLHN0ZWVsYmx1ZToiIzQ2ODJiNCIsdGFuOiIjZDJiNDhjIix0ZWFsOiIjMDA4MDgwIix0aGlzdGxlOiIjZDhiZmQ4Iix0b21hdG86IiNmZjYzNDciLHR1cnF1b2lzZToiIzQwZTBkMCIsdmlvbGV0OiIjZWU4MmVlIix3aGVhdDoiI2Y1ZGViMyIsd2hpdGU6IiNmZmZmZmYiLHdoaXRlc21va2U6IiNmNWY1ZjUiLHllbGxvdzoiI2ZmZmYwMCIseWVsbG93Z3JlZW46IiM5YWNkMzIiLHRyYW5zcGFyZW50OiIjMDAwMDAwMDAifTtmdW5jdGlvbiBtKHQpe3Q9dHx8IiMwMDAwMDAiO3ZhciBlPW51bGw7aWYobnVsbCE9KGU9L14jKFswLTl8QS1GfGEtZl17Nn0pJC8uZXhlYyh0KSkpe3ZhciBuPXBhcnNlSW50KGVbMV0uc2xpY2UoMCwyKSwxNiksaT1wYXJzZUludChlWzFdLnNsaWNlKDIsNCksMTYpLGE9cGFyc2VJbnQoZVsxXS5zbGljZSg0KSwxNik7cmV0dXJuW24saSxhLDI1NV19aWYobnVsbCE9KGU9L14jKFswLTl8QS1GfGEtZl17M30pJC8uZXhlYyh0KSkpe3ZhciBvPWVbMV0uc2xpY2UoMCwxKSxzPWVbMV0uc2xpY2UoMSwyKSxjPWVbMV0uc2xpY2UoMiwzKTtyZXR1cm4gbz1wYXJzZUludChvK28sMTYpLHM9cGFyc2VJbnQocytzLDE2KSxjPXBhcnNlSW50KGMrYywxNiksW28scyxjLDI1NV19aWYobnVsbCE9KGU9L15yZ2JcKCguKylcKSQvLmV4ZWModCkpKXJldHVybiBlWzFdLnNwbGl0KCIsIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5taW4oMjU1LHBhcnNlSW50KHQudHJpbSgpKSl9KSkuY29uY2F0KDI1NSk7aWYobnVsbCE9KGU9L15yZ2JhXCgoLispXCkkLy5leGVjKHQpKSlyZXR1cm4gZVsxXS5zcGxpdCgiLCIpLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gMz09PWU/TWF0aC5mbG9vcigyNTUqcGFyc2VGbG9hdCh0LnRyaW0oKSkpOk1hdGgubWluKDI1NSxwYXJzZUludCh0LnRyaW0oKSkpfSkpO3ZhciBsPXQudG9Mb3dlckNhc2UoKTtpZigoMCx1Lmhhc093bikoZyxsKSl7ZT0vXiMoWzAtOXxBLUZ8YS1mXXs2LDh9KSQvLmV4ZWMoZ1tsXSk7dmFyIGY9cGFyc2VJbnQoZVsxXS5zbGljZSgwLDIpLDE2KSxkPXBhcnNlSW50KGVbMV0uc2xpY2UoMiw0KSwxNiksaD1wYXJzZUludChlWzFdLnNsaWNlKDQsNiksMTYpLHA9cGFyc2VJbnQoZVsxXS5zbGljZSg2LDgpLDE2KTtyZXR1cm4gcD1wPj0wP3A6MjU1LFtmLGQsaCxwXX1yZXR1cm4gci5lcnJvcigidW5zdXBwb3J0ZWQgY29sb3I6Iit0KSxbMCwwLDAsMjU1XX1mdW5jdGlvbiBiKHQsZSl7dGhpcy50eXBlPSJwYXR0ZXJuIix0aGlzLmRhdGE9dCx0aGlzLmNvbG9yU3RvcD1lfXZhciB5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4peygwLHMuZGVmYXVsdCkodGhpcyx0KSx0aGlzLnR5cGU9ZSx0aGlzLmRhdGE9bix0aGlzLmNvbG9yU3RvcD1bXX1yZXR1cm4oMCxjLmRlZmF1bHQpKHQsW3trZXk6ImFkZENvbG9yU3RvcCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLmNvbG9yU3RvcC5wdXNoKFt0LG0oZSldKX19XSksdH0oKTtmdW5jdGlvbiBfKHQpe3RoaXMud2lkdGg9dH12YXIgdz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXsoMCxzLmRlZmF1bHQpKHRoaXMsdCksdGhpcy5pZD1lLHRoaXMucGFnZUlkPW4sdGhpcy5hY3Rpb25zPVtdLHRoaXMucGF0aD1bXSx0aGlzLnN1YnBhdGg9W10sdGhpcy5jdXJyZW50VHJhbnNmb3JtPVtdLHRoaXMuY3VycmVudFN0ZXBBbmltYXRlcz1bXSx0aGlzLmRyYXdpbmdTdGF0ZT1bXSx0aGlzLnN0YXRlPXtsaW5lRGFzaDpbMCwwXSxzaGFkb3dPZmZzZXRYOjAsc2hhZG93T2Zmc2V0WTowLHNoYWRvd0JsdXI6MCxzaGFkb3dDb2xvcjpbMCwwLDAsMF0sZm9udDoiMTBweCBzYW5zLXNlcmlmIixmb250U2l6ZToxMCxmb250V2VpZ2h0OiJub3JtYWwiLGZvbnRTdHlsZToibm9ybWFsIixmb250RmFtaWx5OiJzYW5zLXNlcmlmIn19cmV0dXJuKDAsYy5kZWZhdWx0KSh0LFt7a2V5OiJkcmF3Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxuPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLHI9KDAsby5kZWZhdWx0KSh0aGlzLmFjdGlvbnMpO3RoaXMuYWN0aW9ucz1bXSx0aGlzLnBhdGg9W10sImZ1bmN0aW9uIj09PXR5cGVvZiBuJiYodD1wLnB1c2gobikpLHYodGhpcy5pZCx0aGlzLnBhZ2VJZCwiYWN0aW9uc0NoYW5nZWQiLHthY3Rpb25zOnIscmVzZXJ2ZTplLGNhbGxiYWNrSWQ6dH0pfX0se2tleToiY3JlYXRlTGluZWFyR3JhZGllbnQiLHZhbHVlOmZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBuZXcgeSgibGluZWFyIixbdCxlLG4scl0pfX0se2tleToiY3JlYXRlQ2lyY3VsYXJHcmFkaWVudCIsdmFsdWU6ZnVuY3Rpb24odCxlLG4pe3JldHVybiBuZXcgeSgicmFkaWFsIixbdCxlLG5dKX19LHtrZXk6ImNyZWF0ZVBhdHRlcm4iLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwPT09ZSlyLmVycm9yKCJGYWlsZWQgdG8gZXhlY3V0ZSAnY3JlYXRlUGF0dGVybicgb24gJ0NhbnZhc0NvbnRleHQnOiAyIGFyZ3VtZW50cyByZXF1aXJlZCwgYnV0IG9ubHkgMSBwcmVzZW50LiIpO2Vsc2V7aWYoIShbInJlcGVhdCIsInJlcGVhdC14IiwicmVwZWF0LXkiLCJuby1yZXBlYXQiXS5pbmRleE9mKGUpPDApKXJldHVybiBuZXcgYih0LGUpO3IuZXJyb3IoIkZhaWxlZCB0byBleGVjdXRlICdjcmVhdGVQYXR0ZXJuJyBvbiAnQ2FudmFzQ29udGV4dCc6IFRoZSBwcm92aWRlZCB0eXBlICgnIitlKyInKSBpcyBub3Qgb25lIG9mICdyZXBlYXQnLCAnbm8tcmVwZWF0JywgJ3JlcGVhdC14Jywgb3IgJ3JlcGVhdC15Jy4iKX19fSx7a2V5OiJtZWFzdXJlVGV4dCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zdGF0ZS5mb250LG49MDtyZXR1cm4gbj1mdW5jdGlvbih0LGUpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHI9bi5nZXRDb250ZXh0KCIyZCIpO3JldHVybiByLmZvbnQ9ZSxyLm1lYXN1cmVUZXh0KHQpLndpZHRofHwwfSh0LGUpLG5ldyBfKG4pfX0se2tleToic2F2ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOiJzYXZlIixkYXRhOltdfSksdGhpcy5kcmF3aW5nU3RhdGUucHVzaCh0aGlzLnN0YXRlKX19LHtrZXk6InJlc3RvcmUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoicmVzdG9yZSIsZGF0YTpbXX0pLHRoaXMuc3RhdGU9dGhpcy5kcmF3aW5nU3RhdGUucG9wKCl8fHtsaW5lRGFzaDpbMCwwXSxzaGFkb3dPZmZzZXRYOjAsc2hhZG93T2Zmc2V0WTowLHNoYWRvd0JsdXI6MCxzaGFkb3dDb2xvcjpbMCwwLDAsMF0sZm9udDoiMTBweCBzYW5zLXNlcmlmIixmb250U2l6ZToxMCxmb250V2VpZ2h0OiJub3JtYWwiLGZvbnRTdHlsZToibm9ybWFsIixmb250RmFtaWx5OiJzYW5zLXNlcmlmIn19fSx7a2V5OiJiZWdpblBhdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wYXRoPVtdLHRoaXMuc3VicGF0aD1bXSx0aGlzLnBhdGgucHVzaCh7bWV0aG9kOiJiZWdpblBhdGgiLGRhdGE6W119KX19LHtrZXk6Im1vdmVUbyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLnBhdGgucHVzaCh7bWV0aG9kOiJtb3ZlVG8iLGRhdGE6W3QsZV19KSx0aGlzLnN1YnBhdGg9W1t0LGVdXX19LHtrZXk6ImxpbmVUbyIsdmFsdWU6ZnVuY3Rpb24odCxlKXswPT09dGhpcy5wYXRoLmxlbmd0aCYmMD09PXRoaXMuc3VicGF0aC5sZW5ndGg/dGhpcy5wYXRoLnB1c2goe21ldGhvZDoibW92ZVRvIixkYXRhOlt0LGVdfSk6dGhpcy5wYXRoLnB1c2goe21ldGhvZDoibGluZVRvIixkYXRhOlt0LGVdfSksdGhpcy5zdWJwYXRoLnB1c2goW3QsZV0pfX0se2tleToicXVhZHJhdGljQ3VydmVUbyIsdmFsdWU6ZnVuY3Rpb24odCxlLG4scil7dGhpcy5wYXRoLnB1c2goe21ldGhvZDoicXVhZHJhdGljQ3VydmVUbyIsZGF0YTpbdCxlLG4scl19KSx0aGlzLnN1YnBhdGgucHVzaChbbixyXSl9fSx7a2V5OiJiZXppZXJDdXJ2ZVRvIix2YWx1ZTpmdW5jdGlvbih0LGUsbixyLGksYSl7dGhpcy5wYXRoLnB1c2goe21ldGhvZDoiYmV6aWVyQ3VydmVUbyIsZGF0YTpbdCxlLG4scixpLGFdfSksdGhpcy5zdWJwYXRoLnB1c2goW2ksYV0pfX0se2tleToiYXJjIix2YWx1ZTpmdW5jdGlvbih0LGUsbixyLGkpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdJiZhcmd1bWVudHNbNV07dGhpcy5wYXRoLnB1c2goe21ldGhvZDoiYXJjIixkYXRhOlt0LGUsbixyLGksYV19KSx0aGlzLnN1YnBhdGgucHVzaChbdCxlXSl9fSx7a2V5OiJyZWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUsbixyKXt0aGlzLnBhdGgucHVzaCh7bWV0aG9kOiJyZWN0IixkYXRhOlt0LGUsbixyXX0pLHRoaXMuc3VicGF0aD1bW3QsZV1dfX0se2tleToiYXJjVG8iLHZhbHVlOmZ1bmN0aW9uKHQsZSxuLHIsaSl7dGhpcy5wYXRoLnB1c2goe21ldGhvZDoiYXJjVG8iLGRhdGE6W3QsZSxuLHIsaV19KSx0aGlzLnN1YnBhdGgucHVzaChbbixyXSl9fSx7a2V5OiJjbGlwIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6ImNsaXAiLGRhdGE6KDAsby5kZWZhdWx0KSh0aGlzLnBhdGgpfSl9fSx7a2V5OiJjbG9zZVBhdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wYXRoLnB1c2goe21ldGhvZDoiY2xvc2VQYXRoIixkYXRhOltdfSksdGhpcy5zdWJwYXRoLmxlbmd0aCYmKHRoaXMuc3VicGF0aD1bdGhpcy5zdWJwYXRoLnNoaWZ0KCldKX19LHtrZXk6ImNsZWFyQWN0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmFjdGlvbnM9W10sdGhpcy5wYXRoPVtdLHRoaXMuc3VicGF0aD1bXX19LHtrZXk6ImdldEFjdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9KDAsby5kZWZhdWx0KSh0aGlzLmFjdGlvbnMpO3JldHVybiB0aGlzLmNsZWFyQWN0aW9ucygpLHR9fSx7a2V5OiJsaW5lRGFzaE9mZnNldCIsc2V0OmZ1bmN0aW9uKHQpe3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6InNldExpbmVEYXNoT2Zmc2V0IixkYXRhOlt0XX0pfX0se2tleToiZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uIixzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic2V0R2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uIixkYXRhOlt0XX0pfX0se2tleToic2hhZG93Qmx1ciIsc2V0OmZ1bmN0aW9uKHQpe3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6InNldFNoYWRvd0JsdXIiLGRhdGE6W3RdfSl9fSx7a2V5OiJzaGFkb3dDb2xvciIsc2V0OmZ1bmN0aW9uKHQpe3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6InNldFNoYWRvd0NvbG9yIixkYXRhOlt0XX0pfX0se2tleToic2hhZG93T2Zmc2V0WCIsc2V0OmZ1bmN0aW9uKHQpe3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6InNldFNoYWRvd09mZnNldFgiLGRhdGE6W3RdfSl9fSx7a2V5OiJzaGFkb3dPZmZzZXRZIixzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic2V0U2hhZG93T2Zmc2V0WSIsZGF0YTpbdF19KX19LHtrZXk6ImZvbnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXRlLmZvbnR9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuc3RhdGUuZm9udD10O3ZhciBuPXQubWF0Y2goL14oKFtcd1wtXStccykqKShcZCtyP3B4KShcLyhcZCtcLj9cZCoocj9weCk/KSk/XHMrKC4qKS8pO2lmKG4pe3ZhciBpPW5bMV0udHJpbSgpLnNwbGl0KC9ccy8pLGE9cGFyc2VGbG9hdChuWzNdKSxvPW5bN10scz1bXTtpLmZvckVhY2goKGZ1bmN0aW9uKHQsbil7WyJpdGFsaWMiLCJvYmxpcXVlIiwibm9ybWFsIl0uaW5kZXhPZih0KT4tMT8ocy5wdXNoKHttZXRob2Q6InNldEZvbnRTdHlsZSIsZGF0YTpbdF19KSxlLnN0YXRlLmZvbnRTdHlsZT10KTpbImJvbGQiLCJub3JtYWwiXS5pbmRleE9mKHQpPi0xPyhzLnB1c2goe21ldGhvZDoic2V0Rm9udFdlaWdodCIsZGF0YTpbdF19KSxlLnN0YXRlLmZvbnRXZWlnaHQ9dCk6MD09PW4/KHMucHVzaCh7bWV0aG9kOiJzZXRGb250U3R5bGUiLGRhdGE6WyJub3JtYWwiXX0pLGUuc3RhdGUuZm9udFN0eWxlPSJub3JtYWwiKToxPT09biYmYygpfSkpLDE9PT1pLmxlbmd0aCYmYygpLGk9cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRhdGFbMF19KSkuam9pbigiICIpLHRoaXMuc3RhdGUuZm9udFNpemU9YSx0aGlzLnN0YXRlLmZvbnRGYW1pbHk9byx0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOiJzZXRGb250IixkYXRhOlsiIi5jb25jYXQoaSwiICIpLmNvbmNhdChhLCJweCAiKS5jb25jYXQobyldfSl9ZWxzZSByLndhcm4oIkZhaWxlZCB0byBzZXQgJ2ZvbnQnIG9uICdDYW52YXNDb250ZXh0JzogaW52YWxpZCBmb3JtYXQuIik7ZnVuY3Rpb24gYygpe3MucHVzaCh7bWV0aG9kOiJzZXRGb250V2VpZ2h0IixkYXRhOlsibm9ybWFsIl19KSxlLnN0YXRlLmZvbnRXZWlnaHQ9Im5vcm1hbCJ9fX0se2tleToiZmlsbFN0eWxlIixzZXQ6ZnVuY3Rpb24odCl7dGhpcy5zZXRGaWxsU3R5bGUodCl9fSx7a2V5OiJzdHJva2VTdHlsZSIsc2V0OmZ1bmN0aW9uKHQpe3RoaXMuc2V0U3Ryb2tlU3R5bGUodCl9fSx7a2V5OiJnbG9iYWxBbHBoYSIsc2V0OmZ1bmN0aW9uKHQpe3Q9TWF0aC5mbG9vcigyNTUqcGFyc2VGbG9hdCh0KSksdGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic2V0R2xvYmFsQWxwaGEiLGRhdGE6W3RdfSl9fSx7a2V5OiJ0ZXh0QWxpZ24iLHNldDpmdW5jdGlvbih0KXt0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOiJzZXRUZXh0QWxpZ24iLGRhdGE6W3RdfSl9fSx7a2V5OiJsaW5lQ2FwIixzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic2V0TGluZUNhcCIsZGF0YTpbdF19KX19LHtrZXk6ImxpbmVKb2luIixzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic2V0TGluZUpvaW4iLGRhdGE6W3RdfSl9fSx7a2V5OiJsaW5lV2lkdGgiLHNldDpmdW5jdGlvbih0KXt0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOiJzZXRMaW5lV2lkdGgiLGRhdGE6W3RdfSl9fSx7a2V5OiJtaXRlckxpbWl0IixzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic2V0TWl0ZXJMaW1pdCIsZGF0YTpbdF19KX19LHtrZXk6InRleHRCYXNlbGluZSIsc2V0OmZ1bmN0aW9uKHQpe3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6InNldFRleHRCYXNlbGluZSIsZGF0YTpbdF19KX19XSksdH0oKTtlLkNhbnZhc0NvbnRleHQ9dyxbXS5jb25jYXQoWyJzY2FsZSIsInJvdGF0ZSIsInRyYW5zbGF0ZSIsInNldFRyYW5zZm9ybSIsInRyYW5zZm9ybSJdLFsiZHJhd0ltYWdlIiwiZmlsbFRleHQiLCJmaWxsIiwic3Ryb2tlIiwiZmlsbFJlY3QiLCJzdHJva2VSZWN0IiwiY2xlYXJSZWN0Iiwic3Ryb2tlVGV4dCJdKS5mb3JFYWNoKChmdW5jdGlvbih0KXt3LnByb3RvdHlwZVt0XT1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSJmaWxsIjpjYXNlInN0cm9rZSI6cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDp0KyJQYXRoIixkYXRhOigwLG8uZGVmYXVsdCkodGhpcy5wYXRoKX0pfTtjYXNlImZpbGxSZWN0IjpyZXR1cm4gZnVuY3Rpb24odCxlLG4scil7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoiZmlsbFBhdGgiLGRhdGE6W3ttZXRob2Q6InJlY3QiLGRhdGE6W3QsZSxuLHJdfV19KX07Y2FzZSJzdHJva2VSZWN0IjpyZXR1cm4gZnVuY3Rpb24odCxlLG4scil7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic3Ryb2tlUGF0aCIsZGF0YTpbe21ldGhvZDoicmVjdCIsZGF0YTpbdCxlLG4scl19XX0pfTtjYXNlImZpbGxUZXh0IjpjYXNlInN0cm9rZVRleHQiOnJldHVybiBmdW5jdGlvbihlLG4scixpKXt2YXIgYT1bZS50b1N0cmluZygpLG4scl07Im51bWJlciI9PT10eXBlb2YgaSYmYS5wdXNoKGkpLHRoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6dCxkYXRhOmF9KX07Y2FzZSJkcmF3SW1hZ2UiOnJldHVybiBmdW5jdGlvbihlLG4scixpLGEsbyxzLGMsdSl7dmFyIGw7ZnVuY3Rpb24gZih0KXtyZXR1cm4ibnVtYmVyIj09PXR5cGVvZiB0fXZvaWQgMD09PXUmJihvPW4scz1yLGM9aSx1PWEsbj12b2lkIDAscj12b2lkIDAsaT12b2lkIDAsYT12b2lkIDApLGw9ZihuKSYmZihyKSYmZihpKSYmZihhKT9bZSxvLHMsYyx1LG4scixpLGFdOmYoYykmJmYodSk/W2UsbyxzLGMsdV06W2UsbyxzXSx0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOnQsZGF0YTpsfSl9O2RlZmF1bHQ6cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspbltyXT1hcmd1bWVudHNbcl07dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDp0LGRhdGE6bn0pfX19KHQpfSkpLFsic2V0RmlsbFN0eWxlIiwic2V0VGV4dEFsaWduIiwic2V0U3Ryb2tlU3R5bGUiLCJzZXRHbG9iYWxBbHBoYSIsInNldFNoYWRvdyIsInNldEZvbnRTaXplIiwic2V0TGluZUNhcCIsInNldExpbmVKb2luIiwic2V0TGluZVdpZHRoIiwic2V0TWl0ZXJMaW1pdCIsInNldFRleHRCYXNlbGluZSIsInNldExpbmVEYXNoIl0uZm9yRWFjaCgoZnVuY3Rpb24odCl7dy5wcm90b3R5cGVbdF09ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2Uic2V0RmlsbFN0eWxlIjpjYXNlInNldFN0cm9rZVN0eWxlIjpyZXR1cm4gZnVuY3Rpb24oZSl7Im9iamVjdCIhPT0oMCxhLmRlZmF1bHQpKGUpP3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6dCxkYXRhOlsibm9ybWFsIixtKGUpXX0pOnRoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6dCxkYXRhOltlLnR5cGUsZS5kYXRhLGUuY29sb3JTdG9wXX0pfTtjYXNlInNldEdsb2JhbEFscGhhIjpyZXR1cm4gZnVuY3Rpb24oZSl7ZT1NYXRoLmZsb29yKDI1NSpwYXJzZUZsb2F0KGUpKSx0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOnQsZGF0YTpbZV19KX07Y2FzZSJzZXRTaGFkb3ciOnJldHVybiBmdW5jdGlvbihlLG4scixpKXtpPW0oaSksdGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDp0LGRhdGE6W2UsbixyLGldfSksdGhpcy5zdGF0ZS5zaGFkb3dCbHVyPXIsdGhpcy5zdGF0ZS5zaGFkb3dDb2xvcj1pLHRoaXMuc3RhdGUuc2hhZG93T2Zmc2V0WD1lLHRoaXMuc3RhdGUuc2hhZG93T2Zmc2V0WT1ufTtjYXNlInNldExpbmVEYXNoIjpyZXR1cm4gZnVuY3Rpb24oZSxuKXtlPWV8fFswLDBdLG49bnx8MCx0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOnQsZGF0YTpbZSxuXX0pLHRoaXMuc3RhdGUubGluZURhc2g9ZX07Y2FzZSJzZXRGb250U2l6ZSI6cmV0dXJuIGZ1bmN0aW9uKGUpe3RoaXMuc3RhdGUuZm9udD10aGlzLnN0YXRlLmZvbnQucmVwbGFjZSgvXGQrXC4/XGQqcHgvLGUrInB4IiksdGhpcy5zdGF0ZS5mb250U2l6ZT1lLHRoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6dCxkYXRhOltlXX0pfTtkZWZhdWx0OnJldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKW5bcl09YXJndW1lbnRzW3JdO3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6dCxkYXRhOm59KX19fSh0KX0pKX0pLmNhbGwodGhpcyxuKCJhOWFhIiksbigiNWE1MiIpWyJkZWZhdWx0Il0pfSwiOGE1MCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnJlcXVlc3RDb21wb25lbnRJbmZvPWZ1bmN0aW9uKGUsbixyKXt0LnB1Ymxpc2hIYW5kbGVyKCJyZXF1ZXN0Q29tcG9uZW50SW5mbyIse3JlcUlkOm8ucHVzaChyKSxyZXFzOm59LCgwLGEuY2hlY2tJbldpbmRvd3MpKGUpP2U6ZS4kcGFnZS5pZCl9LG4oIjE0ZDkiKTt2YXIgaT1yKG4oImZmMjIiKSksYT1uKCI5ZDhjIiksbz0oMCxpLmRlZmF1bHQpKCJyZXF1ZXN0Q29tcG9uZW50SW5mbyIpfSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LCI4YTU5IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNzRlOCIpO3IoIlVpbnQ4IiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdCh0aGlzLGUsbixyKX19KSwhMCl9LCI4YTc5IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oIjQ2MjUiKSxhPW4oIjA2Y2YiKS5mLG89bigiNTBjNCIpLHM9bigiNTc3ZSIpLGM9bigiNWEzNCIpLHU9bigiMWQ4MCIpLGw9bigiYWIxMyIpLGY9bigiYzQzMCIpLGQ9aSgiIi5lbmRzV2l0aCksaD1pKCIiLnNsaWNlKSxwPU1hdGgubWluLHY9bCgiZW5kc1dpdGgiKSxnPSFmJiYhdiYmISFmdW5jdGlvbigpe3ZhciB0PWEoU3RyaW5nLnByb3RvdHlwZSwiZW5kc1dpdGgiKTtyZXR1cm4gdCYmIXQud3JpdGFibGV9KCk7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohZyYmIXZ9LHtlbmRzV2l0aDpmdW5jdGlvbih0KXt2YXIgZT1zKHUodGhpcykpO2ModCk7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAscj1lLmxlbmd0aCxpPXZvaWQgMD09PW4/cjpwKG8obiksciksYT1zKHQpO3JldHVybiBkP2QoZSxhLGkpOmgoZSxpLWEubGVuZ3RoLGkpPT09YX19KX0sIjhhOWQiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kY3JlYXRlRWxlbWVudCxlPXRoaXMuX3NlbGYuX2N8fHQ7cmV0dXJuIGUoImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktYXN5bmMtZXJyb3IiLG9uOntjbGljazp0aGlzLl9vbkNsaWNrfX0sW3RoaXMuX3YoIlxuICAiK3RoaXMuX3ModGhpcy4kJHQoInVuaS5hc3luYy5lcnJvciIpKSsiXG4iKV0pfSxpPVtdfSwiOGFhNSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI2NTQ3IikuY2hhckF0O3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGUrKG4/cih0LGUpLmxlbmd0aDoxKX19LCI4YWE3IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpLGk9bigiZDAzOSIpLGE9bigiMWM3ZSIpLG89bigiZWJiNSIpLk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1Mscz1yLkFycmF5QnVmZmVyLGM9ci5JbnQ4QXJyYXk7dC5leHBvcnRzPSFvfHwhaSgoZnVuY3Rpb24oKXtjKDEpfSkpfHwhaSgoZnVuY3Rpb24oKXtuZXcgYygtMSl9KSl8fCFhKChmdW5jdGlvbih0KXtuZXcgYyxuZXcgYyhudWxsKSxuZXcgYygxLjUpLG5ldyBjKHQpfSksITApfHxpKChmdW5jdGlvbigpe3JldHVybiAxIT09bmV3IGMobmV3IHMoMiksMSx2b2lkIDApLmxlbmd0aH0pKX0sIjhiOTEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImQzYjciKSxuKCIxNTliIiksbigiMTNkNSIpLG4oImFjZDgiKSxuKCIxNGQ5IiksbigiOTlhZiIpO3ZhciByPW4oImRiNmEiKSxpPW4oIjY0ZmUiKTtmdW5jdGlvbiBhKHQpe3JldHVybiBNYXRoLnNxcnQodC54KnQueCt0LnkqdC55KX12YXIgbz17bmFtZToiTW92YWJsZUFyZWEiLHByb3BzOntzY2FsZUFyZWE6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnt3aWR0aDowLGhlaWdodDowLGl0ZW1zOltdfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuZ2FwVj17eDpudWxsLHk6bnVsbH0sdGhpcy5waW5jaFN0YXJ0TGVuPW51bGx9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9yZXNpemUoKSwoMCxpLmluaXRTY3JvbGxCb3VuY2UpKCl9LG1ldGhvZHM6e19yZXNpemU6ZnVuY3Rpb24oKXt0aGlzLl9nZXRXSCgpLHRoaXMuaXRlbXMuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0LmNvbXBvbmVudEluc3RhbmNlLnNldFBhcmVudCgpfSkpfSxfZmluZDpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5pdGVtcyxuPXRoaXMuJGVsO2Z1bmN0aW9uIHIodCl7Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYodD09PWEuY29tcG9uZW50SW5zdGFuY2UuJGVsKXJldHVybiBhfXJldHVybiB0PT09bnx8dD09PWRvY3VtZW50LmJvZHl8fHQ9PT1kb2N1bWVudD9udWxsOnIodC5wYXJlbnROb2RlKX1yZXR1cm4gcih0KX0sX3RvdWNoc3RhcnQ6ZnVuY3Rpb24odCl7KDAsaS5kaXNhYmxlU2Nyb2xsQm91bmNlKSh7ZGlzYWJsZTohMH0pO3ZhciBlPXQudG91Y2hlcztpZihlJiZlLmxlbmd0aD4xKXt2YXIgbj17eDplWzFdLnBhZ2VYLWVbMF0ucGFnZVgseTplWzFdLnBhZ2VZLWVbMF0ucGFnZVl9O2lmKHRoaXMucGluY2hTdGFydExlbj1hKG4pLHRoaXMuZ2FwVj1uLCF0aGlzLnNjYWxlQXJlYSl7dmFyIHI9dGhpcy5fZmluZChlWzBdLnRhcmdldCksbz10aGlzLl9maW5kKGVbMV0udGFyZ2V0KTt0aGlzLl9zY2FsZU1vdmFibGVWaWV3PXImJnI9PT1vP3I6bnVsbH19fSxfdG91Y2htb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPXQudG91Y2hlcztpZihlJiZlLmxlbmd0aD4xKXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIG49e3g6ZVsxXS5wYWdlWC1lWzBdLnBhZ2VYLHk6ZVsxXS5wYWdlWS1lWzBdLnBhZ2VZfTtpZihudWxsIT09dGhpcy5nYXBWLngmJnRoaXMucGluY2hTdGFydExlbj4wKXt2YXIgcj1hKG4pL3RoaXMucGluY2hTdGFydExlbjt0aGlzLl91cGRhdGVTY2FsZShyKX10aGlzLmdhcFY9bn19LF90b3VjaGVuZDpmdW5jdGlvbih0KXsoMCxpLmRpc2FibGVTY3JvbGxCb3VuY2UpKHtkaXNhYmxlOiExfSk7dmFyIGU9dC50b3VjaGVzO2UmJmUubGVuZ3RofHx0LmNoYW5nZWRUb3VjaGVzJiYodGhpcy5nYXBWLng9MCx0aGlzLmdhcFYueT0wLHRoaXMucGluY2hTdGFydExlbj1udWxsLHRoaXMuc2NhbGVBcmVhP3RoaXMuaXRlbXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jb21wb25lbnRJbnN0YW5jZS5fZW5kU2NhbGUoKX0pKTp0aGlzLl9zY2FsZU1vdmFibGVWaWV3JiZ0aGlzLl9zY2FsZU1vdmFibGVWaWV3LmNvbXBvbmVudEluc3RhbmNlLl9lbmRTY2FsZSgpKX0sX3VwZGF0ZVNjYWxlOmZ1bmN0aW9uKHQpe3QmJjEhPT10JiYodGhpcy5zY2FsZUFyZWE/dGhpcy5pdGVtcy5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmNvbXBvbmVudEluc3RhbmNlLl9zZXRTY2FsZSh0KX0pKTp0aGlzLl9zY2FsZU1vdmFibGVWaWV3JiZ0aGlzLl9zY2FsZU1vdmFibGVWaWV3LmNvbXBvbmVudEluc3RhbmNlLl9zZXRTY2FsZSh0KSl9LF9nZXRXSDpmdW5jdGlvbigpe3ZhciB0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuJGVsKSxlPXRoaXMuJGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMud2lkdGg9ZS53aWR0aC1bIkxlZnQiLCJSaWdodCJdLnJlZHVjZSgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gZStwYXJzZUZsb2F0KHRbImJvcmRlciIrbisiV2lkdGgiXSkrcGFyc2VGbG9hdCh0WyJwYWRkaW5nIituXSl9KSwwKSx0aGlzLmhlaWdodD1lLmhlaWdodC1bIlRvcCIsIkJvdHRvbSJdLnJlZHVjZSgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gZStwYXJzZUZsb2F0KHRbImJvcmRlciIrbisiV2lkdGgiXSkrcGFyc2VGbG9hdCh0WyJwYWRkaW5nIituXSl9KSwwKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLG49W10saT10aGlzLiRzbG90cy5kZWZhdWx0JiYoMCxyLmRlZXBDbG9uZSkodGhpcy4kc2xvdHMuZGVmYXVsdCx0KTtpJiZpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY29tcG9uZW50T3B0aW9ucyYmInYtdW5pLW1vdmFibGUtdmlldyI9PT10LmNvbXBvbmVudE9wdGlvbnMudGFnJiZuLnB1c2godCl9KSksdGhpcy5pdGVtcz1uO3ZhciBhPU9iamVjdC5hc3NpZ24oe30sdGhpcy4kbGlzdGVuZXJzKTtyZXR1cm5bInRvdWNoc3RhcnQiLCJ0b3VjaG1vdmUiLCJ0b3VjaGVuZCJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPWFbdF0scj1lWyJfIi5jb25jYXQodCldO2FbdF09bj9bXS5jb25jYXQobixyKTpyfSkpLHQoInVuaS1tb3ZhYmxlLWFyZWEiLHtvbjphfSxbdCgidi11bmktcmVzaXplLXNlbnNvciIse29uOntyZXNpemU6dGhpcy5fcmVzaXplfX0pLGldKX19O2UuZGVmYXVsdD1vfSwiOGJkNCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwNjYiKSxpPW4oImQ0NGUiKTtpKHIoIkRPTUV4Y2VwdGlvbiIpLCJET01FeGNlcHRpb24iKX0sIjhjZDAiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjk1NzEiKSxpPW4oIjA5NGQiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LCI4ZGViIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuY3JlYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXI9ZnVuY3Rpb24odCxlKXt0Ll9pc1Z1ZXx8KGU9dCx0PW51bGwpO2lmKHQpcmV0dXJuIG5ldyBmKHQsZSk7cmV0dXJuIG5ldyBmKCgwLGMuZ2V0Q3VycmVudFBhZ2VWbSkoImNyZWF0ZUludGVyc2VjdGlvbk9ic2VydmVyIiksZSl9LG4oImQ4MWQiKSxuKCJhOWUzIiksbigiMTRkOSIpO3ZhciBpPXIobigiZDRlYyIpKSxhPXIobigiYmVlMiIpKSxvPXIobigiZmYyMiIpKSxzPW4oIjlkOGMiKSxjPW4oIjI0MTIiKSx1PSgwLG8uZGVmYXVsdCkoInJlcXVlc3RDb21wb25lbnRPYnNlcnZlciIpLGw9e3RocmVzaG9sZHM6WzBdLGluaXRpYWxSYXRpbzowLG9ic2VydmVBbGw6ITF9LGY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQsbil7KDAsaS5kZWZhdWx0KSh0aGlzLGUpLHRoaXMucGFnZUlkPXQuJHBhZ2UmJnQuJHBhZ2UuaWQsdGhpcy5jb21wb25lbnQ9dC5fJGlkfHx0LHRoaXMub3B0aW9ucz1PYmplY3QuYXNzaWduKHt9LGwsbil9cmV0dXJuKDAsYS5kZWZhdWx0KShlLFt7a2V5OiJfbWFrZVJvb3RNYXJnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O3RoaXMub3B0aW9ucy5yb290TWFyZ2luPVsidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0Il0ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4iIi5jb25jYXQoTnVtYmVyKHRbZV0pfHwwLCJweCIpfSkpLmpvaW4oIiAiKX19LHtrZXk6InJlbGF0aXZlVG8iLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMub3B0aW9ucy5yZWxhdGl2ZVRvU2VsZWN0b3I9dCx0aGlzLl9tYWtlUm9vdE1hcmdpbihlKSx0aGlzfX0se2tleToicmVsYXRpdmVUb1ZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zLnJlbGF0aXZlVG9TZWxlY3Rvcj1udWxsLHRoaXMuX21ha2VSb290TWFyZ2luKHQpLHRoaXN9fSx7a2V5OiJvYnNlcnZlIix2YWx1ZTpmdW5jdGlvbihlLG4peyJmdW5jdGlvbiI9PT10eXBlb2YgbiYmKHRoaXMub3B0aW9ucy5zZWxlY3Rvcj1lLHRoaXMucmVxSWQ9dS5wdXNoKG4pLHQucHVibGlzaEhhbmRsZXIoInJlcXVlc3RDb21wb25lbnRPYnNlcnZlciIse3JlcUlkOnRoaXMucmVxSWQsY29tcG9uZW50OnRoaXMuY29tcG9uZW50LG9wdGlvbnM6dGhpcy5vcHRpb25zfSwoMCxzLmNoZWNrSW5XaW5kb3dzKSh0aGlzLmNvbXBvbmVudCk/dGhpcy5jb21wb25lbnQ6dGhpcy5wYWdlSWQpKX19LHtrZXk6ImRpc2Nvbm5lY3QiLHZhbHVlOmZ1bmN0aW9uKCl7dC5wdWJsaXNoSGFuZGxlcigiZGVzdHJveUNvbXBvbmVudE9ic2VydmVyIix7cmVxSWQ6dGhpcy5yZXFJZH0sKDAscy5jaGVja0luV2luZG93cykodGhpcy5jb21wb25lbnQpP3RoaXMuY29tcG9uZW50OnRoaXMucGFnZUlkKX19XSksZX0oKX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiOGVhMSI6ZnVuY3Rpb24odCxlKXt2YXIgbj0ib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5hbGwscj0idW5kZWZpbmVkIj09dHlwZW9mIG4mJnZvaWQgMCE9PW47dC5leHBvcnRzPXthbGw6bixJU19IVE1MRERBOnJ9fSwiOGVkZSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIG4oInVuaS10YWJiYXIiLHtjbGFzczpbInVuaS10YWJiYXItIit0LnBvc2l0aW9uXX0sW24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdGFiYmFyIixzdHlsZTp7YmFja2dyb3VuZENvbG9yOnQudGFiYmFyQmFja2dyb3VuZENvbG9yLCJiYWNrZHJvcC1maWx0ZXIiOiJub25lIiE9PXQuYmx1ckVmZmVjdD8iYmx1cigxMHB4KSI6dC5ibHVyRWZmZWN0fX0sW24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdGFiYmFyLWJvcmRlciIsc3R5bGU6e2JhY2tncm91bmRDb2xvcjp0LmJvcmRlckNvbG9yfX0pLHQuX2wodC52aXNpYmxlTGlzdCwoZnVuY3Rpb24oZSxyKXtyZXR1cm4gbigiZGl2Iix7a2V5OmUuaXNNaWRCdXR0b24/cjplLnBhZ2VQYXRoLHN0YXRpY0NsYXNzOiJ1bmktdGFiYmFyX19pdGVtIixzdHlsZTplLmlzTWlkQnV0dG9uP3tmbGV4OiIwIDAgIitlLndpZHRoLHBvc2l0aW9uOiJyZWxhdGl2ZSJ9Ont9LG9uOntjbGljazpmdW5jdGlvbihuKXtyZXR1cm4gdC5fc3dpdGNoVGFiKGUscil9fX0sW2UuaXNNaWRCdXR0b24/bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS10YWJiYXJfX21pZCIsc3R5bGU6dC5fdW5pVGFiYmFyQmRTdHlsZShlKX0sW2UuaWNvblBhdGg/bigiaW1nIix7c3R5bGU6e3dpZHRoOmUuaWNvbldpZHRoLGhlaWdodDplLmljb25XaWR0aH0sYXR0cnM6e3NyYzp0Ll9nZXRSZWFsUGF0aChlLmljb25QYXRoKX19KTp0Ll9lKCldKTp0Ll9lKCksbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS10YWJiYXJfX2JkIixzdHlsZTp7aGVpZ2h0OnQuaGVpZ2h0fX0sW3QuZ2V0SWNvblBhdGgoZSxyKXx8ZS5pY29uZm9udHx8ZS5pY29uUGF0aHx8ZS5pc01pZEJ1dHRvbj9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXRhYmJhcl9faWNvbiIsY2xhc3M6eyJ1bmktdGFiYmFyX19pY29uX19kaWZmIjohZS50ZXh0fSxzdHlsZTp7d2lkdGg6dC5pY29uV2lkdGgsaGVpZ2h0OnQuaWNvbldpZHRofX0sW2UuaWNvbmZvbnQ/bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS10YWJiYXJfX2ljb25mb250IixzdHlsZTp7Y29sb3I6dC5zZWxlY3RlZEluZGV4PT09cj9lLmljb25mb250LnNlbGVjdGVkQ29sb3I6ZS5pY29uZm9udC5jb2xvcixmb250U2l6ZTplLmljb25mb250LmZvbnRTaXplfHx0Lmljb25XaWR0aH19LFt0Ll92KCJcbiAgICAgICAgICAgICIrdC5fcyh0LnNlbGVjdGVkSW5kZXg9PT1yP2UuaWNvbmZvbnQuc2VsZWN0ZWRUZXh0OmUuaWNvbmZvbnQudGV4dCkrIlxuICAgICAgICAgICIpXSk6ZS5pc01pZEJ1dHRvbj90Ll9lKCk6bigiaW1nIix7YXR0cnM6e3NyYzp0Ll9nZXRSZWFsUGF0aCh0LmdldEljb25QYXRoKGUscikpfX0pXSk6dC5fZSgpLGUudGV4dD9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXRhYmJhcl9fbGFiZWwiLHN0eWxlOntjb2xvcjp0LnNlbGVjdGVkSW5kZXg9PT1yP3Quc2VsZWN0ZWRDb2xvcjp0LmNvbG9yLGZvbnRTaXplOnQuZm9udFNpemUsbGluZUhlaWdodDplLmljb25QYXRoPyJub3JtYWwiOjEuOCxtYXJnaW5Ub3A6ZS5pY29uUGF0aD90LnNwYWNpbmc6ImluaGVyaXQifX0sW3QuX3YoIlxuICAgICAgICAgICIrdC5fcyhlLnRleHQpKyJcbiAgICAgICAgIildKTp0Ll9lKCksZS5yZWREb3Q/bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS10YWJiYXJfX3JlZGRvdCIsY2xhc3M6eyJ1bmktdGFiYmFyX19iYWRnZSI6ISFlLmJhZGdlfX0sW3QuX3YoIlxuICAgICAgICAgICIrdC5fcyhlLmJhZGdlKSsiXG4gICAgICAgICIpXSk6dC5fZSgpXSldKX0pKV0sMiksbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1wbGFjZWhvbGRlciIsc3R5bGU6e2hlaWdodDp0LmhlaWdodH19KV0pfSxpPVtdfSw5MDY2OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLlRFTVBfUEFUSD12b2lkIDA7ZS5URU1QX1BBVEg9IiJ9LCI5MDdhIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImViYjUiKSxpPW4oIjA3ZmEiKSxhPW4oIjU5MjYiKSxvPXIuYVR5cGVkQXJyYXkscz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7cygiYXQiLChmdW5jdGlvbih0KXt2YXIgZT1vKHRoaXMpLG49aShlKSxyPWEodCkscz1yPj0wP3I6bityO3JldHVybiBzPDB8fHM+PW4/dm9pZCAwOmVbc119KSl9LCI5MGQ4IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYzY1YiIpLGk9bigiMWEyZCIpLGE9bigiM2E5YiIpLG89bigiYWQ2ZCIpLHM9UmVnRXhwLnByb3RvdHlwZTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5mbGFncztyZXR1cm4gdm9pZCAwIT09ZXx8ImZsYWdzImluIHN8fGkodCwiZmxhZ3MiKXx8IWEocyx0KT9lOnIobyx0KX19LCI5MGRlIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI0NTdkIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiOTBlMyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImUzMzAiKSxpPTAsYT1NYXRoLnJhbmRvbSgpLG89cigxLi50b1N0cmluZyk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJTeW1ib2woIisodm9pZCAwPT09dD8iIjp0KSsiKV8iK28oKytpK2EsMzYpfX0sIjkwZmUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldEFwaUNhbGxiYWNrcz1mdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIG4gaW4gdCl7dmFyIGE9dFtuXTsoMCxyLmlzRm4pKGEpJiYoZVtuXT0oMCxpLnRyeUNhdGNoKShhKSxkZWxldGUgdFtuXSl9cmV0dXJuIGV9O3ZhciByPW4oImRiNmEiKSxpPW4oIjlmNDkiKX0sOTExMjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiOWJmMiIpLGE9bigiNWM2YyIpO3QuZXhwb3J0cz1yP2Z1bmN0aW9uKHQsZSxuKXtyZXR1cm4gaS5mKHQsZSxhKDEsbikpfTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bix0fX0sIjkxMmYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImE5ZTMiKSxuKCJjOTc1Iik7dmFyIGk9cihuKCJjNmM5IikpLGE9e25hbWU6IlByZXZpZXdJbWFnZSIsY29tcG9uZW50czp7aW1hZ2VWaWV3OmkuZGVmYXVsdH0scHJvcHM6e3Zpc2libGU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSx1cmxzOnt0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX19LGN1cnJlbnQ6e3R5cGU6W1N0cmluZyxOdW1iZXJdLGRlZmF1bHQ6MH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aW5kZXg6MH19LHdhdGNoOnt2aXNpYmxlOmZ1bmN0aW9uKHQpe2lmKHQpe3ZhciBlPSJudW1iZXIiPT09dHlwZW9mIHRoaXMuY3VycmVudD90aGlzLmN1cnJlbnQ6dGhpcy51cmxzLmluZGV4T2YodGhpcy5jdXJyZW50KTt0aGlzLmluZGV4PWU8MD8wOmV9fX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT0wLG49MDt0aGlzLiRlbC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLChmdW5jdGlvbihyKXt0LnByZXZlbnREZWZhdWx0PSExLGU9ci5jbGllbnRYLG49ci5jbGllbnRZfSkpLHRoaXMuJGVsLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLChmdW5jdGlvbihyKXsoTWF0aC5hYnMoci5jbGllbnRYLWUpPjIwfHxNYXRoLmFicyhyLmNsaWVudFktbik+MjApJiYodC5wcmV2ZW50RGVmYXVsdD0hMCl9KSl9LG1ldGhvZHM6e19jbGljazpmdW5jdGlvbigpe3RoaXMucHJldmVudERlZmF1bHR8fHRoaXMuJGVtaXQoImNsb3NlIil9fX07ZS5kZWZhdWx0PWF9LCI5MTdmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJkM2I3IiksbigiMTU5YiIpLG4oImI2NGIiKTt2YXIgcj17bmFtZToiV2ViVmlldyIscHJvcHM6e3NyYzp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sZnVsbHNjcmVlbjp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9fSx3YXRjaDp7c3JjOmZ1bmN0aW9uKHQsZSl7dGhpcy5pZnJhbWUmJih0aGlzLmlmcmFtZS5zcmM9dGhpcy4kZ2V0UmVhbFBhdGgodGhpcy5zcmMpKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuaWZyYW1lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLE9iamVjdC5rZXlzKHRoaXMuJGF0dHJzKS5mb3JFYWNoKChmdW5jdGlvbihlKXt0LmlmcmFtZVtlXT10LiRhdHRyc1tlXX0pKSx0aGlzLmlmcmFtZS5zcmM9dGhpcy4kZ2V0UmVhbFBhdGgodGhpcy5zcmMpLHRoaXMuZnVsbHNjcmVlbj9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuaWZyYW1lKTp0aGlzLiRyZWZzLndlYnZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5pZnJhbWUpLHRoaXMuX3Jlc2l6ZSgpfSxhY3RpdmF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmZ1bGxzY3JlZW4mJih0aGlzLmlmcmFtZS5zdHlsZS5kaXNwbGF5PSJibG9jayIpfSxkZWFjdGl2YXRlZDpmdW5jdGlvbigpe3RoaXMuZnVsbHNjcmVlbiYmKHRoaXMuaWZyYW1lLnN0eWxlLmRpc3BsYXk9Im5vbmUiKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZnVsbHNjcmVlbiYmZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmlmcmFtZSl9LG1ldGhvZHM6e19yZXNpemU6ZnVuY3Rpb24oKXtpZih0aGlzLmZ1bGxzY3JlZW4pe3ZhciB0PXRoaXMuJGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGU9dC50b3Asbj10LmxlZnQscj10LndpZHRoLGk9dC5oZWlnaHQ7dGhpcy5pZnJhbWUuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmlmcmFtZS5zdHlsZS5kaXNwbGF5PSJibG9jayIsdGhpcy5pZnJhbWUuc3R5bGUuYm9yZGVyPTAsdGhpcy5pZnJhbWUuc3R5bGUudG9wPWUrInB4Iix0aGlzLmlmcmFtZS5zdHlsZS5sZWZ0PW4rInB4Iix0aGlzLmlmcmFtZS5zdHlsZS53aWR0aD1yKyJweCIsdGhpcy5pZnJhbWUuc3R5bGUuaGVpZ2h0PWkrInB4In1lbHNlIHRoaXMuaWZyYW1lLnN0eWxlLndpZHRoPXRoaXMuJHJlZnMud2Vidmlld0NvbnRhaW5lci5zdHlsZS53aWR0aHx8IjMwMHB4Iix0aGlzLmlmcmFtZS5zdHlsZS5oZWlnaHQ9dGhpcy4kcmVmcy53ZWJ2aWV3Q29udGFpbmVyLnN0eWxlLmhlaWdodHx8IjE1MHB4In19fTtlLmRlZmF1bHQ9cn0sOTI2MzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImM2NWIiKSxpPW4oImUzMzAiKSxhPW4oIjU3N2UiKSxvPW4oImFkNmQiKSxzPW4oIjlmN2YiKSxjPW4oIjU2OTIiKSx1PW4oIjdjNzMiKSxsPW4oIjY5ZjMiKS5nZXQsZj1uKCJmY2UzIiksZD1uKCIxMDdjIiksaD1jKCJuYXRpdmUtc3RyaW5nLXJlcGxhY2UiLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSkscD1SZWdFeHAucHJvdG90eXBlLmV4ZWMsdj1wLGc9aSgiIi5jaGFyQXQpLG09aSgiIi5pbmRleE9mKSxiPWkoIiIucmVwbGFjZSkseT1pKCIiLnNsaWNlKSxfPWZ1bmN0aW9uKCl7dmFyIHQ9L2EvLGU9L2IqL2c7cmV0dXJuIHIocCx0LCJhIikscihwLGUsImEiKSwwIT09dC5sYXN0SW5kZXh8fDAhPT1lLmxhc3RJbmRleH0oKSx3PXMuQlJPS0VOX0NBUkVULHg9dm9pZCAwIT09LygpPz8vLmV4ZWMoIiIpWzFdLFM9X3x8eHx8d3x8Znx8ZDtTJiYodj1mdW5jdGlvbih0KXt2YXIgZSxuLGkscyxjLGYsZCxTPXRoaXMsVD1sKFMpLEM9YSh0KSxrPVQucmF3O2lmKGspcmV0dXJuIGsubGFzdEluZGV4PVMubGFzdEluZGV4LGU9cih2LGssQyksUy5sYXN0SW5kZXg9ay5sYXN0SW5kZXgsZTt2YXIgTz1ULmdyb3VwcyxFPXcmJlMuc3RpY2t5LEk9cihvLFMpLFA9Uy5zb3VyY2UsTT0wLEE9QztpZihFJiYoST1iKEksInkiLCIiKSwtMT09PW0oSSwiZyIpJiYoSSs9ImciKSxBPXkoQyxTLmxhc3RJbmRleCksUy5sYXN0SW5kZXg+MCYmKCFTLm11bHRpbGluZXx8Uy5tdWx0aWxpbmUmJiJcbiIhPT1nKEMsUy5sYXN0SW5kZXgtMSkpJiYoUD0iKD86ICIrUCsiKSIsQT0iICIrQSxNKyspLG49bmV3IFJlZ0V4cCgiXig/OiIrUCsiKSIsSSkpLHgmJihuPW5ldyBSZWdFeHAoIl4iK1ArIiQoPyFcXHMpIixJKSksXyYmKGk9Uy5sYXN0SW5kZXgpLHM9cihwLEU/bjpTLEEpLEU/cz8ocy5pbnB1dD15KHMuaW5wdXQsTSksc1swXT15KHNbMF0sTSkscy5pbmRleD1TLmxhc3RJbmRleCxTLmxhc3RJbmRleCs9c1swXS5sZW5ndGgpOlMubGFzdEluZGV4PTA6XyYmcyYmKFMubGFzdEluZGV4PVMuZ2xvYmFsP3MuaW5kZXgrc1swXS5sZW5ndGg6aSkseCYmcyYmcy5sZW5ndGg+MSYmcihoLHNbMF0sbiwoZnVuY3Rpb24oKXtmb3IoYz0xO2M8YXJndW1lbnRzLmxlbmd0aC0yO2MrKyl2b2lkIDA9PT1hcmd1bWVudHNbY10mJihzW2NdPXZvaWQgMCl9KSkscyYmTylmb3Iocy5ncm91cHM9Zj11KG51bGwpLGM9MDtjPE8ubGVuZ3RoO2MrKylkPU9bY10sZltkWzBdXT1zW2RbMV1dO3JldHVybiBzfSksdC5leHBvcnRzPXZ9LCI5NDRhIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZDA2NiIpLGk9bigiZTA2NSIpLGE9bigiZDQ0ZSIpO2koInRvU3RyaW5nVGFnIiksYShyKCJTeW1ib2wiKSwiU3ltYm9sIil9LCI5NDVjIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5nZXRBcHAscj1lLmdldEN1cnJlbnRQYWdlcztmdW5jdGlvbiBzKHQsZSl7dmFyIG49cigpO24ubGVuZ3RoJiYoMCxpLmNhbGxQYWdlSG9vaykobltuLmxlbmd0aC0xXSx0LGUpfWZ1bmN0aW9uIGModCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ModCxlKX19dCgib25FcnJvciIsKGZ1bmN0aW9uKHQpeygwLGkuY2FsbEFwcEhvb2spKG4oKSwib25FcnJvciIsdCl9KSksdCgib25QYWdlTm90Rm91bmQiLChmdW5jdGlvbih0KXsoMCxpLmNhbGxBcHBIb29rKShuKCksIm9uUGFnZU5vdEZvdW5kIix0KX0pKSwhMTt0KCJvbkFwcEVudGVyQmFja2dyb3VuZCIsKGZ1bmN0aW9uKCl7KDAsaS5jYWxsQXBwSG9vaykobigpLCJvbkhpZGUiKSxzKCJvbkhpZGUiKX0pKSx0KCJvbkFwcEVudGVyRm9yZWdyb3VuZCIsKGZ1bmN0aW9uKHQpeygwLGkuY2FsbEFwcEhvb2spKG4oKSwib25TaG93Iix0KTt2YXIgZT1yKCk7MCE9PWUubGVuZ3RoJiZzKCJvblNob3ciKX0pKSx0KCJvblJlc2l6ZSIsKGZ1bmN0aW9uKHQsZSl7dmFyIG49cigpLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LiRwYWdlLmlkPT09ZX0pKTtuJiYoMCxpLmNhbGxQYWdlSG9vaykobiwib25SZXNpemUiLHQpfSkpLHQoIm9uUHVsbERvd25SZWZyZXNoIiwoZnVuY3Rpb24odCxlKXt2YXIgbj1yKCkuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuJHBhZ2UuaWQ9PT1lfSkpO24mJigoMCxhLnNldFB1bGxEb3duUmVmcmVzaFBhZ2VJZCkoZSksKDAsaS5jYWxsUGFnZUhvb2spKG4sIm9uUHVsbERvd25SZWZyZXNoIikpfSkpLHQoIm9uVGFiSXRlbVRhcCIsYygib25UYWJJdGVtVGFwIikpLHQoIm9uTmF2aWdhdGlvbkJhckJ1dHRvblRhcCIsYygib25OYXZpZ2F0aW9uQmFyQnV0dG9uVGFwIikpLHQoIm9uTmF2aWdhdGlvbkJhclNlYXJjaElucHV0Q2hhbmdlZCIsYygib25OYXZpZ2F0aW9uQmFyU2VhcmNoSW5wdXRDaGFuZ2VkIikpLHQoIm9uTmF2aWdhdGlvbkJhclNlYXJjaElucHV0Q29uZmlybWVkIixjKCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dENvbmZpcm1lZCIpKSx0KCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dENsaWNrZWQiLGMoIm9uTmF2aWdhdGlvbkJhclNlYXJjaElucHV0Q2xpY2tlZCIpKSx0KCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dEZvY3VzQ2hhbmdlZCIsYygib25OYXZpZ2F0aW9uQmFyU2VhcmNoSW5wdXRGb2N1c0NoYW5nZWQiKSksdCgib25XZWJJbnZva2VBcHBTZXJ2aWNlIixvLmRlZmF1bHQpfSxuKCI3ZGIwIiksbigiZDNiNyIpO3ZhciBpPW4oIjU1OWEiKSxhPW4oImJlOWMiKSxvPXIobigiZjYzOCIpKX0sIjk0Y2EiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDM5IiksaT1uKCIxNjI2IiksYT0vI3xcLnByb3RvdHlwZVwuLyxvPWZ1bmN0aW9uKHQsZSl7dmFyIG49Y1tzKHQpXTtyZXR1cm4gbj09bHx8biE9dSYmKGkoZSk/cihlKTohIWUpfSxzPW8ubm9ybWFsaXplPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcodCkucmVwbGFjZShhLCIuIikudG9Mb3dlckNhc2UoKX0sYz1vLmRhdGE9e30sdT1vLk5BVElWRT0iTiIsbD1vLlBPTFlGSUxMPSJQIjt0LmV4cG9ydHM9b30sOTUyMzpmdW5jdGlvbih0LGUsbil7bigiN2E4MiIpO3ZhciByPW4oImEzOTUiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlPXIoZSksZSBpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPW4sdH0sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzWyJkZWZhdWx0Il09dC5leHBvcnRzfSw5NTcxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiBuKCJ1bmktdGV4dGFyZWEiLHQuX2coe30sdC4kbGlzdGVuZXJzKSxbbigiZGl2Iix7cmVmOiJ3cmFwcGVyIixzdGF0aWNDbGFzczoidW5pLXRleHRhcmVhLXdyYXBwZXIifSxbbigiZGl2Iix7ZGlyZWN0aXZlczpbe25hbWU6InNob3ciLHJhd05hbWU6InYtc2hvdyIsdmFsdWU6ISh0LmNvbXBvc2luZ3x8dC52YWx1ZVN5bmMubGVuZ3RoKSxleHByZXNzaW9uOiIhKGNvbXBvc2luZyB8fCB2YWx1ZVN5bmMubGVuZ3RoKSJ9XSxyZWY6InBsYWNlaG9sZGVyIixzdGF0aWNDbGFzczoidW5pLXRleHRhcmVhLXBsYWNlaG9sZGVyIixjbGFzczp0LnBsYWNlaG9sZGVyQ2xhc3Msc3R5bGU6dC5wbGFjZWhvbGRlclN0eWxlLGRvbVByb3BzOnt0ZXh0Q29udGVudDp0Ll9zKHQucGxhY2Vob2xkZXIpfX0pLG4oImRpdiIse3JlZjoibGluZSIsc3RhdGljQ2xhc3M6InVuaS10ZXh0YXJlYS1saW5lIixkb21Qcm9wczp7dGV4dENvbnRlbnQ6dC5fcygiICIpfX0pLG4oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdGV4dGFyZWEtY29tcHV0ZSJ9LFt0Ll9sKHQudmFsdWVDb21wdXRlLChmdW5jdGlvbihlLHIpe3JldHVybiBuKCJkaXYiLHtrZXk6cixkb21Qcm9wczp7dGV4dENvbnRlbnQ6dC5fcyhlLnRyaW0oKT9lOiIuIil9fSl9KSksbigidi11bmktcmVzaXplLXNlbnNvciIse3JlZjoic2Vuc29yIixvbjp7cmVzaXplOnQuX3Jlc2l6ZX19KV0sMiksdC5kaXNhYmxlZCYmdC5maXhDb2xvcj90Ll9lKCk6bigidGV4dGFyZWEiLHtkaXJlY3RpdmVzOlt7bmFtZToibW9kZWwiLHJhd05hbWU6InYtbW9kZWwiLHZhbHVlOnQudmFsdWVTeW5jLGV4cHJlc3Npb246InZhbHVlU3luYyJ9LHtuYW1lOiJrZXlib2FyZCIscmF3TmFtZToidi1rZXlib2FyZCJ9LHtuYW1lOiJmaWVsZCIscmF3TmFtZToidi1maWVsZCJ9XSxyZWY6InRleHRhcmVhIixzdGF0aWNDbGFzczoidW5pLXRleHRhcmVhLXRleHRhcmVhIixjbGFzczp7InVuaS10ZXh0YXJlYS10ZXh0YXJlYS1maXgtbWFyZ2luIjp0LmZpeE1hcmdpbn0sc3R5bGU6eyJvdmVyZmxvdy15Ijp0LmF1dG9IZWlnaHQ/ImhpZGRlbiI6ImF1dG8ifSxhdHRyczp7ZGlzYWJsZWQ6dC5kaXNhYmxlZCxtYXhsZW5ndGg6dC5tYXhsZW5ndGhOdW1iZXIsZW50ZXJrZXloaW50OnQuY29uZmlybVR5cGUsaW5wdXRtb2RlOnQuaW5wdXRtb2RlfSxkb21Qcm9wczp7dmFsdWU6dC52YWx1ZVN5bmN9LG9uOntjaGFuZ2U6ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sY29tcG9zaXRpb25zdGFydDpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbkNvbXBvc2l0aW9uKGUpfSxjb21wb3NpdGlvbmVuZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbkNvbXBvc2l0aW9uKGUpfSxjb21wb3NpdGlvbnVwZGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbkNvbXBvc2l0aW9uKGUpfSxpbnB1dDpbZnVuY3Rpb24oZSl7ZS50YXJnZXQuY29tcG9zaW5nfHwodC52YWx1ZVN5bmM9ZS50YXJnZXQudmFsdWUpfSxmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbklucHV0KGUpfV0sZm9jdXM6dC5fb25Gb2N1cyxibHVyOnQuX29uQmx1ciwiJnRvdWNoc3RhcnQiOmZ1bmN0aW9uKGUpe3JldHVybiB0Ll9vblRvdWNoc3RhcnQoZSl9LGtleXVwOmZ1bmN0aW9uKGUpe3JldHVybiFlLnR5cGUuaW5kZXhPZigia2V5IikmJnQuX2soZS5rZXlDb2RlLCJlbnRlciIsMTMsZS5rZXksIkVudGVyIik/bnVsbDp0Ll9vbktleVVwRW50ZXIoZSl9LGtleWRvd246ZnVuY3Rpb24oZSl7cmV0dXJuIWUudHlwZS5pbmRleE9mKCJrZXkiKSYmdC5fayhlLmtleUNvZGUsImVudGVyIiwxMyxlLmtleSwiRW50ZXIiKT9udWxsOnQuX29uS2V5RG93bkVudGVyKGUpfX19KSx0LmRpc2FibGVkJiZ0LmZpeENvbG9yP24oInRleHRhcmVhIix7cmVmOiJ0ZXh0YXJlYSIsc3RhdGljQ2xhc3M6InVuaS10ZXh0YXJlYS10ZXh0YXJlYSIsY2xhc3M6eyJ1bmktdGV4dGFyZWEtdGV4dGFyZWEtZml4LW1hcmdpbiI6dC5maXhNYXJnaW59LHN0eWxlOnsib3ZlcmZsb3cteSI6dC5hdXRvSGVpZ2h0PyJoaWRkZW4iOiJhdXRvIn0sYXR0cnM6e3RhYmluZGV4OiItMSIscmVhZG9ubHk6dC5kaXNhYmxlZCxtYXhsZW5ndGg6dC5tYXhsZW5ndGhOdW1iZXJ9LGRvbVByb3BzOnt2YWx1ZTp0LnZhbHVlU3luY30sb246e2ZvY3VzOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldC5ibHVyKCl9fX0pOnQuX2UoKV0pXSl9LGk9W119LDk1ODI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUudW5QcmVsb2FkUGFnZT1lLnN3aXRjaFRhYj1lLnJlZGlyZWN0VG89ZS5yZUxhdW5jaD1lLnByZWxvYWRQYWdlPWUubmF2aWdhdGVUbz1lLm5hdmlnYXRlQmFjaz12b2lkIDAsbigiYzk3NSIpLG4oImFjMWYiKSxuKCI1MzE5IiksbigiNDk4YSIpLG4oImQzYjciKSxuKCIxNTliIiksbigiMTRkOSIpLG4oIjdkYjAiKSxuKCJhOWUzIiksbigiZTI1ZSIpO3ZhciBpLGE9cihuKCI1YjgwIikpO2Z1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7ZT0oMCxhLmRlZmF1bHQpKGUpO3ZhciByPWUuc3BsaXQoIj8iKVswXSxvPV9fdW5pUm91dGVzLmZpbmQoKGZ1bmN0aW9uKHQpe3ZhciBlPXQucGF0aCxuPXQuYWxpYXM7cmV0dXJuIGU9PT1yfHxuPT09cn0pKTtpZighbylyZXR1cm4icGFnZSBgIitlKyJgIGlzIG5vdCBmb3VuZCI7aWYoIm5hdmlnYXRlVG8iPT09dHx8InJlZGlyZWN0VG8iPT09dCl7aWYoby5tZXRhLmlzVGFiQmFyKXJldHVybiJjYW4gbm90ICIuY29uY2F0KHQsIiBhIHRhYmJhciBwYWdlIil9ZWxzZSBpZigic3dpdGNoVGFiIj09PXQmJiFvLm1ldGEuaXNUYWJCYXIpcmV0dXJuImNhbiBub3Qgc3dpdGNoIHRvIG5vLXRhYkJhciBwYWdlIjtpZigic3dpdGNoVGFiIiE9PXQmJiJwcmVsb2FkUGFnZSIhPT10fHwhby5tZXRhLmlzVGFiQmFyfHwiYXBwTGF1bmNoIj09PW4ub3BlblR5cGV8fChlPXIpLG8ubWV0YS5pc0VudHJ5JiYoZT1lLnJlcGxhY2Uoby5hbGlhcywiLyIpKSxuLnVybD1mdW5jdGlvbih0KXtpZigic3RyaW5nIiE9PXR5cGVvZiB0KXJldHVybiB0O3ZhciBlPXQuaW5kZXhPZigiPyIpO2lmKC0xPT09ZSlyZXR1cm4gdDt2YXIgbj10LnN1YnN0cihlKzEpLnRyaW0oKS5yZXBsYWNlKC9eKFw/fCN8JikvLCIiKTtpZighbilyZXR1cm4gdDt0PXQuc3Vic3RyKDAsZSk7dmFyIHI9W107cmV0dXJuIG4uc3BsaXQoIiYiKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LnJlcGxhY2UoL1wrL2csIiAiKS5zcGxpdCgiPSIpLG49ZS5zaGlmdCgpLGk9ZS5sZW5ndGg+MD9lLmpvaW4oIj0iKToiIjtyLnB1c2gobisiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGkpKX0pKSxyLmxlbmd0aD90KyI/IityLmpvaW4oIiYiKTp0fShlKSwidW5QcmVsb2FkUGFnZSIhPT10KWlmKCJwcmVsb2FkUGFnZSIhPT10KXtpZihpPT09ZSYmImFwcExhdW5jaCIhPT1uLm9wZW5UeXBlKXJldHVybiIiLmNvbmNhdChpLCIgbG9ja2VkIik7X191bmlDb25maWcucmVhZHkmJiExIT09X191bmlDb25maWcuZW5hYmxlTmF2aWdhdG9yTG9jayYmKGk9ZSl9ZWxzZSBpZihvLm1ldGEuaXNUYWJCYXIpe3ZhciBzPWdldEN1cnJlbnRQYWdlcyghMCksYz0oby5hbGlhc3x8by5wYXRoKS5zdWJzdHIoMSk7aWYocy5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yb3V0ZT09PWN9KSkpcmV0dXJuInRhYkJhciBwYWdlIGAiK2MrImAgYWxyZWFkeSBleGlzdHMifX19ZnVuY3Rpb24gcyh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIE9iamVjdC5hc3NpZ24oe3VybDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOm8odCl9LGJlZm9yZUFsbDpmdW5jdGlvbigpe2k9IiJ9fSxlKX1mdW5jdGlvbiBjKHQpe3JldHVybnthbmltYXRpb25UeXBlOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24oZSl7aWYoZSYmLTE9PT10LmluZGV4T2YoZSkpcmV0dXJuImAiK2UrImAgaXMgbm90IHN1cHBvcnRlZCBmb3IgYGFuaW1hdGlvblR5cGVgIChzdXBwb3J0ZWQgdmFsdWVzIGFyZTogYCIrdC5qb2luKCJgfGAiKSsiYCkifX0sYW5pbWF0aW9uRHVyYXRpb246e3R5cGU6TnVtYmVyfX19dmFyIHU9cygicmVkaXJlY3RUbyIpO2UucmVkaXJlY3RUbz11O3ZhciBsPXMoInJlTGF1bmNoIik7ZS5yZUxhdW5jaD1sO3ZhciBmPXMoIm5hdmlnYXRlVG8iLGMoWyJzbGlkZS1pbi1yaWdodCIsInNsaWRlLWluLWxlZnQiLCJzbGlkZS1pbi10b3AiLCJzbGlkZS1pbi1ib3R0b20iLCJmYWRlLWluIiwiem9vbS1vdXQiLCJ6b29tLWZhZGUtb3V0IiwicG9wLWluIiwibm9uZSJdKSk7ZS5uYXZpZ2F0ZVRvPWY7dmFyIGQ9cygic3dpdGNoVGFiIik7ZS5zd2l0Y2hUYWI9ZDt2YXIgaD1PYmplY3QuYXNzaWduKHtkZWx0YTp7dHlwZTpOdW1iZXIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQsZSl7dD1wYXJzZUludCh0KXx8MSxlLmRlbHRhPU1hdGgubWluKGdldEN1cnJlbnRQYWdlcygpLmxlbmd0aC0xLHQpfX19LGMoWyJzbGlkZS1vdXQtcmlnaHQiLCJzbGlkZS1vdXQtbGVmdCIsInNsaWRlLW91dC10b3AiLCJzbGlkZS1vdXQtYm90dG9tIiwiZmFkZS1vdXQiLCJ6b29tLWluIiwiem9vbS1mYWRlLWluIiwicG9wLW91dCIsIm5vbmUiXSkpO2UubmF2aWdhdGVCYWNrPWg7dmFyIHA9e3VybDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOm8oInByZWxvYWRQYWdlIil9fTtlLnByZWxvYWRQYWdlPXA7dmFyIHY9e3VybDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOm8oInVuUHJlbG9hZFBhZ2UiKX19O2UudW5QcmVsb2FkUGFnZT12fSw5NjU3OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiBuKCJ2LXVuaS1tb3ZhYmxlLWFyZWEiLHtzdGF0aWNDbGFzczoiaW1hZ2Utdmlldy1hcmVhIixuYXRpdmVPbjp7dG91Y2hzdGFydDpmdW5jdGlvbihlKXtyZXR1cm4gdC5vblRvdWNoU3RhcnQoZSl9LHRvdWNobW92ZTpmdW5jdGlvbihlKXtyZXR1cm4gdC5jaGVja0RpcmVjdGlvbihlKX0sdG91Y2hlbmQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHQub25Ub3VjaEVuZChlKX19fSxbbigidi11bmktbW92YWJsZS12aWV3Iix7c3RhdGljQ2xhc3M6ImltYWdlLXZpZXctdmlldyIsYXR0cnM6e2RpcmVjdGlvbjp0LmRpcmVjdGlvbixpbmVydGlhOiEwLHNjYWxlOiEwLCJzY2FsZS1taW4iOiIxIiwic2NhbGUtbWF4IjoiNCJ9LG9uOntzY2FsZTp0Lm9uU2NhbGV9fSxbbigiaW1nIix7c3RhdGljQ2xhc3M6ImltYWdlLXZpZXctaW1nIixhdHRyczp7c3JjOnQuc3JjfSxvbjp7bG9hZDp0Lm9uSW1nTG9hZH19KV0pXSwxKX0saT1bXX0sIjk2YjciOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiB0LnZpc2libGU/bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1zeXN0ZW0tcHJldmlldy1pbWFnZSIsb246e2NsaWNrOnQuX2NsaWNrfX0sW24oInYtdW5pLXN3aXBlciIse3N0YXRpY0NsYXNzOiJ1bmktc3lzdGVtLXByZXZpZXctaW1hZ2Utc3dpcGVyIixhdHRyczp7bmF2aWdhdGlvbjoiYXV0byIsY3VycmVudDp0LmluZGV4LCJpbmRpY2F0b3ItZG90cyI6ITEsYXV0b3BsYXk6ITF9LG9uOnsidXBkYXRlOmN1cnJlbnQiOmZ1bmN0aW9uKGUpe3QuaW5kZXg9ZX19fSx0Ll9sKHQudXJscywoZnVuY3Rpb24odCxlKXtyZXR1cm4gbigidi11bmktc3dpcGVyLWl0ZW0iLHtrZXk6ZX0sW24oImltYWdlLXZpZXciLHthdHRyczp7c3JjOnR9fSldLDEpfSkpLDEpLHQuX20oMCldLDEpOnQuX2UoKX0saT1bZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRjcmVhdGVFbGVtZW50LGU9dGhpcy5fc2VsZi5fY3x8dDtyZXR1cm4gZSgiZGl2Iix7c3RhdGljQ2xhc3M6Im5hdi1idG4tYmFjayJ9LFtlKCJpIix7c3RhdGljQ2xhc3M6InVuaS1idG4taWNvbiJ9LFt0aGlzLl92KCLumZAiKV0pXSl9XX0sOTgwNTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWNvZGVkUXVlcnk9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sZT17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24obil7dHJ5e2Vbbl09cyh0W25dKX1jYXRjaChyKXtlW25dPXRbbl19fSkpLGV9LGUucGFyc2VRdWVyeT1mdW5jdGlvbih0KXt2YXIgZT17fTtpZih0PXQudHJpbSgpLnJlcGxhY2UoL14oXD98I3wmKS8sIiIpLCF0KXJldHVybiBlO3JldHVybiB0LnNwbGl0KCImIikuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG49dC5yZXBsYWNlKC9cKy9nLCIgIikuc3BsaXQoIj0iKSxyPXMobi5zaGlmdCgpKSxpPW4ubGVuZ3RoPjA/cyhuLmpvaW4oIj0iKSk6bnVsbDt2b2lkIDA9PT1lW3JdP2Vbcl09aTpBcnJheS5pc0FycmF5KGVbcl0pP2Vbcl0ucHVzaChpKTplW3JdPVtlW3JdLGldfSkpLGV9LGUuc3RyaW5naWZ5UXVlcnk9ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm8sbj10P09iamVjdC5rZXlzKHQpLm1hcCgoZnVuY3Rpb24obil7dmFyIHI9dFtuXTtpZih2b2lkIDA9PT1yKXJldHVybiIiO2lmKG51bGw9PT1yKXJldHVybiBlKG4pO2lmKEFycmF5LmlzQXJyYXkocikpe3ZhciBpPVtdO3JldHVybiByLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZvaWQgMCE9PXQmJihudWxsPT09dD9pLnB1c2goZShuKSk6aS5wdXNoKGUobikrIj0iK2UodCkpKX0pKSxpLmpvaW4oIiYiKX1yZXR1cm4gZShuKSsiPSIrZShyKX0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aD4wfSkpLmpvaW4oIiYiKTpudWxsO3JldHVybiBuPyI/Ii5jb25jYXQobik6IiJ9LG4oImQ0MDEiKSxuKCJkM2I3IiksbigiMjVmMCIpLG4oImFjMWYiKSxuKCI1MzE5IiksbigiNDk4YSIpLG4oIjE1OWIiKSxuKCIxNGQ5IiksbigiNGRlNCIpLG4oImQ4MWQiKSxuKCJiNjRiIik7dmFyIHI9L1shJygpKl0vZyxpPWZ1bmN0aW9uKHQpe3JldHVybiIlIit0LmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpfSxhPS8lMkMvZyxvPWZ1bmN0aW9uKHQpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQodCkucmVwbGFjZShyLGkpLnJlcGxhY2UoYSwiLCIpfSxzPWRlY29kZVVSSUNvbXBvbmVudH0sIjk4M2UiOmZ1bmN0aW9uKHQsZSxuKXtuKCI5OWFmIik7dmFyIHI9W10uY29uY2F0KFsiYmFzZTY0VG9BcnJheUJ1ZmZlciIsImFycmF5QnVmZmVyVG9CYXNlNjQiLCJhZGRJbnRlcmNlcHRvciIsInJlbW92ZUludGVyY2VwdG9yIiwiaW50ZXJjZXB0b3JzIl0sWyJyZXF1ZXN0IiwidXBsb2FkRmlsZSIsImRvd25sb2FkRmlsZSIsImNvbm5lY3RTb2NrZXQiLCJvblNvY2tldE9wZW4iLCJvblNvY2tldEVycm9yIiwic2VuZFNvY2tldE1lc3NhZ2UiLCJvblNvY2tldE1lc3NhZ2UiLCJjbG9zZVNvY2tldCIsIm9uU29ja2V0Q2xvc2UiLCJnZXRVcGRhdGVNYW5hZ2VyIiwiY29uZmlnTVRMUyJdLFsibmF2aWdhdGVUbyIsInJlZGlyZWN0VG8iLCJyZUxhdW5jaCIsInN3aXRjaFRhYiIsIm5hdmlnYXRlQmFjayJdLFsic2V0U3RvcmFnZSIsInNldFN0b3JhZ2VTeW5jIiwiZ2V0U3RvcmFnZSIsImdldFN0b3JhZ2VTeW5jIiwiZ2V0U3RvcmFnZUluZm8iLCJnZXRTdG9yYWdlSW5mb1N5bmMiLCJyZW1vdmVTdG9yYWdlIiwicmVtb3ZlU3RvcmFnZVN5bmMiLCJjbGVhclN0b3JhZ2UiLCJjbGVhclN0b3JhZ2VTeW5jIl0sWyJnZXRMb2NhdGlvbiIsImNob29zZUxvY2F0aW9uIiwib3BlbkxvY2F0aW9uIiwiY3JlYXRlTWFwQ29udGV4dCIsIm9uTG9jYXRpb25DaGFuZ2UiLCJvbkxvY2F0aW9uQ2hhbmdlRXJyb3IiLCJzdGFydExvY2F0aW9uVXBkYXRlIiwic3RvcExvY2F0aW9uVXBkYXRlIiwib2ZmTG9jYXRpb25DaGFuZ2UiLCJvZmZMb2NhdGlvbkNoYW5nZUVycm9yIl0sWyJjaG9vc2VJbWFnZSIsImNob29zZUZpbGUiLCJwcmV2aWV3SW1hZ2UiLCJjbG9zZVByZXZpZXdJbWFnZSIsImdldEltYWdlSW5mbyIsImdldFZpZGVvSW5mbyIsInNhdmVJbWFnZVRvUGhvdG9zQWxidW0iLCJjb21wcmVzc0ltYWdlIiwiY29tcHJlc3NWaWRlbyIsImdldFJlY29yZGVyTWFuYWdlciIsImdldEJhY2tncm91bmRBdWRpb01hbmFnZXIiLCJjcmVhdGVBdWRpb0NvbnRleHQiLCJjcmVhdGVJbm5lckF1ZGlvQ29udGV4dCIsImNob29zZVZpZGVvIiwic2F2ZVZpZGVvVG9QaG90b3NBbGJ1bSIsImNyZWF0ZVZpZGVvQ29udGV4dCIsImNyZWF0ZUNhbWVyYUNvbnRleHQiLCJjcmVhdGVMaXZlUGxheWVyQ29udGV4dCIsImNyZWF0ZUxpdmVQdXNoZXJDb250ZXh0Il0sWyJnZXRTeXN0ZW1JbmZvIiwiZ2V0U3lzdGVtSW5mb1N5bmMiLCJnZXRXaW5kb3dJbmZvIiwiZ2V0RGV2aWNlSW5mbyIsImdldEFwcEJhc2VJbmZvIiwiY2FuSVVzZSIsIm9uTWVtb3J5V2FybmluZyIsImdldE5ldHdvcmtUeXBlIiwib25OZXR3b3JrU3RhdHVzQ2hhbmdlIiwib2ZmTmV0d29ya1N0YXR1c0NoYW5nZSIsIm9uQWNjZWxlcm9tZXRlckNoYW5nZSIsIm9mZkFjY2VsZXJvbWV0ZXJDaGFuZ2UiLCJzdGFydEFjY2VsZXJvbWV0ZXIiLCJzdG9wQWNjZWxlcm9tZXRlciIsIm9uQ29tcGFzc0NoYW5nZSIsIm9mZkNvbXBhc3NDaGFuZ2UiLCJzdGFydENvbXBhc3MiLCJzdG9wQ29tcGFzcyIsIm9uR3lyb3Njb3BlQ2hhbmdlIiwic3RhcnRHeXJvc2NvcGUiLCJzdG9wR3lyb3Njb3BlIiwibWFrZVBob25lQ2FsbCIsInNjYW5Db2RlIiwic2V0Q2xpcGJvYXJkRGF0YSIsImdldENsaXBib2FyZERhdGEiLCJzZXRTY3JlZW5CcmlnaHRuZXNzIiwiZ2V0U2NyZWVuQnJpZ2h0bmVzcyIsInNldEtlZXBTY3JlZW5PbiIsIm9uVXNlckNhcHR1cmVTY3JlZW4iLCJ2aWJyYXRlTG9uZyIsInZpYnJhdGVTaG9ydCIsImFkZFBob25lQ29udGFjdCIsIm9wZW5CbHVldG9vdGhBZGFwdGVyIiwic3RhcnRCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5Iiwib25CbHVldG9vdGhEZXZpY2VGb3VuZCIsInN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5Iiwib25CbHVldG9vdGhBZGFwdGVyU3RhdGVDaGFuZ2UiLCJnZXRDb25uZWN0ZWRCbHVldG9vdGhEZXZpY2VzIiwiZ2V0Qmx1ZXRvb3RoRGV2aWNlcyIsImdldEJsdWV0b290aEFkYXB0ZXJTdGF0ZSIsImNsb3NlQmx1ZXRvb3RoQWRhcHRlciIsIndyaXRlQkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSIsInJlYWRCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlIiwib25CTEVDb25uZWN0aW9uU3RhdGVDaGFuZ2UiLCJvbkJMRUNoYXJhY3RlcmlzdGljVmFsdWVDaGFuZ2UiLCJub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlIiwiZ2V0QkxFRGV2aWNlU2VydmljZXMiLCJnZXRCTEVEZXZpY2VDaGFyYWN0ZXJpc3RpY3MiLCJjcmVhdGVCTEVDb25uZWN0aW9uIiwiY2xvc2VCTEVDb25uZWN0aW9uIiwic2V0QkxFTVRVIiwiZ2V0QkxFRGV2aWNlUlNTSSIsIm9uQmVhY29uU2VydmljZUNoYW5nZSIsIm9uQmVhY29uVXBkYXRlIiwiZ2V0QmVhY29ucyIsInN0YXJ0QmVhY29uRGlzY292ZXJ5Iiwic3RvcEJlYWNvbkRpc2NvdmVyeSIsImNoZWNrSXNTdXBwb3J0U290ZXJBdXRoZW50aWNhdGlvbiIsImNoZWNrSXNTb3RlckVucm9sbGVkSW5EZXZpY2UiLCJzdGFydFNvdGVyQXV0aGVudGljYXRpb24iLCJvblRoZW1lQ2hhbmdlIiwib2ZmVGhlbWVDaGFuZ2UiLCJvblVJU3R5bGVDaGFuZ2UiLCJnZXRTeXN0ZW1TZXR0aW5nIiwiZ2V0QXBwQXV0aG9yaXplU2V0dGluZyIsIm9wZW5BcHBBdXRob3JpemVTZXR0aW5nIl0sWyJoaWRlS2V5Ym9hcmQiLCJvbktleWJvYXJkSGVpZ2h0Q2hhbmdlIiwib2ZmS2V5Ym9hcmRIZWlnaHRDaGFuZ2UiLCJnZXRTZWxlY3RlZFRleHRSYW5nZSJdLFsic2hvd1RvYXN0IiwiaGlkZVRvYXN0Iiwic2hvd0xvYWRpbmciLCJoaWRlTG9hZGluZyIsInNob3dNb2RhbCIsInNob3dBY3Rpb25TaGVldCIsInNldE5hdmlnYXRpb25CYXJUaXRsZSIsInNldE5hdmlnYXRpb25CYXJDb2xvciIsInNob3dOYXZpZ2F0aW9uQmFyTG9hZGluZyIsImhpZGVOYXZpZ2F0aW9uQmFyTG9hZGluZyIsInNldFRhYkJhckl0ZW0iLCJzZXRUYWJCYXJTdHlsZSIsImhpZGVUYWJCYXIiLCJzaG93VGFiQmFyIiwic2V0VGFiQmFyQmFkZ2UiLCJyZW1vdmVUYWJCYXJCYWRnZSIsInNob3dUYWJCYXJSZWREb3QiLCJoaWRlVGFiQmFyUmVkRG90Iiwib25UYWJCYXJNaWRCdXR0b25UYXAiLCJzZXRCYWNrZ3JvdW5kQ29sb3IiLCJzZXRCYWNrZ3JvdW5kVGV4dFN0eWxlIiwiY3JlYXRlQW5pbWF0aW9uIiwicGFnZVNjcm9sbFRvIiwib25XaW5kb3dSZXNpemUiLCJvZmZXaW5kb3dSZXNpemUiLCJsb2FkRm9udEZhY2UiLCJzdGFydFB1bGxEb3duUmVmcmVzaCIsInN0b3BQdWxsRG93blJlZnJlc2giLCJjcmVhdGVTZWxlY3RvclF1ZXJ5IiwiY3JlYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJjcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXIiLCJnZXRNZW51QnV0dG9uQm91bmRpbmdDbGllbnRSZWN0Iiwic2hvd1RvcFdpbmRvdyIsInNob3dMZWZ0V2luZG93Iiwic2hvd1JpZ2h0V2luZG93IiwiaGlkZVRvcFdpbmRvdyIsImhpZGVMZWZ0V2luZG93IiwiaGlkZVJpZ2h0V2luZG93IiwiZ2V0VG9wV2luZG93U3R5bGUiLCJnZXRMZWZ0V2luZG93U3R5bGUiLCJnZXRSaWdodFdpbmRvd1N0eWxlIiwic2V0VG9wV2luZG93U3R5bGUiLCJzZXRMZWZ0V2luZG93U3R5bGUiLCJzZXRSaWdodFdpbmRvd1N0eWxlIiwiZ2V0TG9jYWxlIiwic2V0TG9jYWxlIiwib25Mb2NhbGVDaGFuZ2UiXSxbIiRlbWl0IiwiJG9uIiwiJG9uY2UiLCIkb2ZmIl0sWyJzYXZlRmlsZSIsImdldFNhdmVkRmlsZUxpc3QiLCJnZXRTYXZlZEZpbGVJbmZvIiwicmVtb3ZlU2F2ZWRGaWxlIiwiZ2V0RmlsZUluZm8iLCJvcGVuRG9jdW1lbnQiLCJnZXRGaWxlU3lzdGVtTWFuYWdlciJdLFsiY3JlYXRlT2Zmc2NyZWVuQ2FudmFzIiwiY3JlYXRlQ2FudmFzQ29udGV4dCIsImNhbnZhc1RvVGVtcEZpbGVQYXRoIiwiY2FudmFzUHV0SW1hZ2VEYXRhIiwiY2FudmFzR2V0SW1hZ2VEYXRhIl0sWyJnZXRQcm92aWRlciIsImxvZ2luIiwiY2hlY2tTZXNzaW9uIiwiZ2V0VXNlckluZm8iLCJnZXRVc2VyUHJvZmlsZSIsInByZUxvZ2luIiwiY2xvc2VBdXRoVmlldyIsImdldENoZWNrQm94U3RhdGUiLCJnZXRVbml2ZXJpZnlNYW5hZ2VyIiwic2hhcmUiLCJzaGFyZVdpdGhTeXN0ZW0iLCJzaG93U2hhcmVNZW51IiwiaGlkZVNoYXJlTWVudSIsInJlcXVlc3RQYXltZW50Iiwic3Vic2NyaWJlUHVzaCIsInVuc3Vic2NyaWJlUHVzaCIsIm9uUHVzaCIsIm9mZlB1c2giLCJyZXF1aXJlTmF0aXZlUGx1Z2luIiwidXB4MnB4IiwicmVzdG9yZUdsb2JhbCIsInJlcXVpcmVHbG9iYWwiLCJnZXRTdWJOVnVlQnlJZCIsImdldEN1cnJlbnRTdWJOVnVlIiwic2V0UGFnZU1ldGEiLCJvbkhvc3RFdmVudFJlY2VpdmUiLCJvbk5hdGl2ZUV2ZW50UmVjZWl2ZSIsInNlbmROYXRpdmVFdmVudCIsInByZWxvYWRQYWdlIiwidW5QcmVsb2FkUGFnZSIsImxvYWRTdWJQYWNrYWdlIiwic2VuZEhvc3RFdmVudCIsIm5hdmlnYXRlVG9NaW5pUHJvZ3JhbSIsImdldExhdW5jaE9wdGlvbnNTeW5jIiwiZ2V0RW50ZXJPcHRpb25zU3luYyIsImluaXRVVFNQcm94eUNsYXNzIiwiaW5pdFVUU1Byb3h5RnVuY3Rpb24iLCJpbml0VVRTSW5kZXhDbGFzc05hbWUiLCJpbml0VVRTQ2xhc3NOYW1lIiwiaW5pdFVUU1BhY2thZ2VOYW1lIiwicmVxdWlyZVVUU1BsdWdpbiIsInJlZ2lzdGVyVVRTUGx1Z2luIiwicmVnaXN0ZXJVVFNJbnRlcmZhY2UiXSxbImNyZWF0ZVJld2FyZGVkVmlkZW9BZCIsImNyZWF0ZUZ1bGxTY3JlZW5WaWRlb0FkIiwiY3JlYXRlSW50ZXJzdGl0aWFsQWQiLCJjcmVhdGVJbnRlcmFjdGl2ZUFkIl0sWyJpbnZva2VQdXNoQ2FsbGJhY2siLCJnZXRQdXNoQ2xpZW50SWQiLCJvblB1c2hNZXNzYWdlIiwib2ZmUHVzaE1lc3NhZ2UiLCJjcmVhdGVQdXNoTWVzc2FnZSJdKTt0LmV4cG9ydHM9cn0sIjk4NGMiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLm5vcm1hbGl6ZVRhYkJhclN0eWxlcz1hLGUubm9ybWFsbGl6ZVN0eWxlcz1mdW5jdGlvbiB0KGUpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToibGlnaHQiLG89bltpXSxzPXt9O2lmKCFvKXJldHVybiBlO3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihjKXt2YXIgdT1lW2NdO3NbY109ZnVuY3Rpb24oKXtpZigoMCxyLmlzUGxhaW5PYmplY3QpKHUpKXJldHVybiB0KHUsbixpKTtpZihBcnJheS5pc0FycmF5KHUpKXJldHVybiB1Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuKDAsci5pc1BsYWluT2JqZWN0KShlKT90KGUsbixpKTplfSkpO2lmKCgwLHIuaXNTdHIpKHUpJiZ1LnN0YXJ0c1dpdGgoIkAiKSl7dmFyIGU9dS5yZXBsYWNlKCJAIiwiIikscz1vW2VdfHx1O3N3aXRjaChjKXtjYXNlImJvcmRlclN0eWxlIjpzPWEocyk7YnJlYWt9cmV0dXJuIHN9cmV0dXJuIHV9KCl9KSksc30sbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJiNjRiIiksbigiZDgxZCIpLG4oIjJjYTAiKSxuKCJhYzFmIiksbigiNTMxOSIpO3ZhciByPW4oIjM1YmUiKSxpPXtibGFjazoicmdiYSgwLDAsMCwwLjQpIix3aGl0ZToicmdiYSgyNTUsMjU1LDI1NSwwLjQpIn07ZnVuY3Rpb24gYSh0KXtyZXR1cm4gdCYmdCBpbiBpP2lbdF06dH19LDk4NjE6ZnVuY3Rpb24odCxlLG4pe24oIjUzNTIiKX0sIjk4NmEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiYTI1OCIpLmZpbmRMYXN0LGE9ci5hVHlwZWRBcnJheSxvPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtvKCJmaW5kTGFzdCIsKGZ1bmN0aW9uKHQpe3JldHVybiBpKGEodGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSl9LCI5ODdkIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImVtaXR0ZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImZpZWxkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJob3ZlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiaW50ZXJhY3QiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImtleWJvYXJkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJsaXN0ZW5lcnMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInN1YnNjcmliZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmRlZmF1bHR9fSk7dmFyIGk9cihuKCI2NGIyIikpLGE9cihuKCJkOGMzIikpLG89cihuKCIzMzlmIikpLHM9cihuKCI2YjY5IikpLGM9cihuKCIxNTIxIikpLHU9cihuKCIxZWFkIikpLGw9cihuKCI2Yjg3IikpfSw5OTEwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjBkMDQiKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LCI5OWFmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImQwMzkiKSxhPW4oImU4YjUiKSxvPW4oIjg2MWQiKSxzPW4oIjdiMGIiKSxjPW4oIjA3ZmEiKSx1PW4oIjM1MTEiKSxsPW4oIjg0MTgiKSxmPW4oIjY1ZjAiKSxkPW4oIjFkZGUiKSxoPW4oImI2MjIiKSxwPW4oIjJkMDAiKSx2PWgoImlzQ29uY2F0U3ByZWFkYWJsZSIpLGc9cD49NTF8fCFpKChmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0W3ZdPSExLHQuY29uY2F0KClbMF0hPT10fSkpLG09ZCgiY29uY2F0IiksYj1mdW5jdGlvbih0KXtpZighbyh0KSlyZXR1cm4hMTt2YXIgZT10W3ZdO3JldHVybiB2b2lkIDAhPT1lPyEhZTphKHQpfSx5PSFnfHwhbTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxhcml0eToxLGZvcmNlZDp5fSx7Y29uY2F0OmZ1bmN0aW9uKHQpe3ZhciBlLG4scixpLGEsbz1zKHRoaXMpLGQ9ZihvLDApLGg9MDtmb3IoZT0tMSxyPWFyZ3VtZW50cy5sZW5ndGg7ZTxyO2UrKylpZihhPS0xPT09ZT9vOmFyZ3VtZW50c1tlXSxiKGEpKWZvcihpPWMoYSksdShoK2kpLG49MDtuPGk7bisrLGgrKyluIGluIGEmJmwoZCxoLGFbbl0pO2Vsc2UgdShoKzEpLGwoZCxoKyssYSk7cmV0dXJuIGQubGVuZ3RoPWgsZH19KX0sIjk5ZTAiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJhYzFmIiksbigiNTMxOSIpLG4oImQzYjciKSxuKCIxNTliIiksbigiMTRkOSIpO3ZhciByPXtlbnNwOiLigIIiLGVtc3A6IuKAgyIsbmJzcDoiwqAifSxpPXtuYW1lOiJUZXh0Iixwcm9wczp7c2VsZWN0YWJsZTp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LHNwYWNlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxkZWNvZGU6e3R5cGU6W0Jvb2xlYW4sU3RyaW5nXSxkZWZhdWx0OiExfX0sbWV0aG9kczp7X2RlY29kZUh0bWw6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3BhY2UmJnJbdGhpcy5zcGFjZV0mJih0PXQucmVwbGFjZSgvIC9nLHJbdGhpcy5zcGFjZV0pKSx0aGlzLmRlY29kZSYmKHQ9dC5yZXBsYWNlKC8mbmJzcDsvZyxyLm5ic3ApLnJlcGxhY2UoLyZlbnNwOy9nLHIuZW5zcCkucmVwbGFjZSgvJmVtc3A7L2csci5lbXNwKS5yZXBsYWNlKC8mbHQ7L2csIjwiKS5yZXBsYWNlKC8mZ3Q7L2csIj4iKS5yZXBsYWNlKC8mYW1wOy9nLCImIikucmVwbGFjZSgvJnF1b3Q7L2csJyInKS5yZXBsYWNlKC8mYXBvczsvZywiJyIpKSx0fX0scmVuZGVyOmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscj1bXTtyZXR1cm4gdGhpcy4kc2xvdHMuZGVmYXVsdCYmdGhpcy4kc2xvdHMuZGVmYXVsdC5mb3JFYWNoKChmdW5jdGlvbihpKXtpZihpLnRleHQpe3ZhciBhPWkudGV4dC5yZXBsYWNlKC9cXG4vZywiXG4iKSxvPWEuc3BsaXQoIlxuIik7by5mb3JFYWNoKChmdW5jdGlvbih0LGkpe3IucHVzaChuLl9kZWNvZGVIdG1sKHQpKSxpIT09by5sZW5ndGgtMSYmci5wdXNoKGUoImJyIikpfSkpfWVsc2UgaS5jb21wb25lbnRPcHRpb25zJiYidi11bmktdGV4dCIhPT1pLmNvbXBvbmVudE9wdGlvbnMudGFnJiZ0Lndhcm4oIkRvIG5vdCBuZXN0IG90aGVyIGNvbXBvbmVudHMgaW4gdGhlIHRleHQgY29tcG9uZW50LCBhcyB0aGVyZSBtYXkgYmUgZGlzcGxheSBkaWZmZXJlbmNlcyBvbiBkaWZmZXJlbnQgcGxhdGZvcm1zLiIpLHIucHVzaChpKX0pKSxlKCJ1bmktdGV4dCIse29uOnRoaXMuJGxpc3RlbmVycyxhdHRyczp7c2VsZWN0YWJsZTohIXRoaXMuc2VsZWN0YWJsZX19LFtlKCJzcGFuIix7fSxyKV0pfX07ZS5kZWZhdWx0PWl9KS5jYWxsKHRoaXMsbigiNWE1MiIpWyJkZWZhdWx0Il0pfSwiOWEwYyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjM0MmYiKTt0LmV4cG9ydHM9L1ZlcnNpb25cLzEwKD86XC5cZCspezEsMn0oPzogW1x3Li9dKyk/KD86IE1vYmlsZVwvXHcrKT8gU2FmYXJpXC8vLnRlc3Qocil9LCI5YTFmIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYzY1YiIpLGk9bigiNTllZCIpLGE9bigiODI1YSIpLG89bigiMGQ1MSIpLHM9bigiMzVhMSIpLGM9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg8Mj9zKHQpOmU7aWYoaShuKSlyZXR1cm4gYShyKG4sdCkpO3Rocm93IGMobyh0KSsiIGlzIG5vdCBpdGVyYWJsZSIpfX0sIjlhODkiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQscil7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnB1Ymxpc2g9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC5lbWl0KCJhcGkuIitlLG4pfSxlLnB1Ymxpc2hIYW5kbGVyPWZ1bmN0aW9uKHQsZSxuKXtyLlVuaVZpZXdKU0JyaWRnZS5zdWJzY3JpYmVIYW5kbGVyKHQsZSxuKX19KS5jYWxsKHRoaXMsbigiYTlhYSIpLG4oImM4YmEiKSl9LCI5YThjIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImUzMzAiKSxpPW4oImViYjUiKSxhPW4oIjE0NWUiKSxvPXIoYSkscz1pLmFUeXBlZEFycmF5LGM9aS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO2MoImNvcHlXaXRoaW4iLChmdW5jdGlvbih0LGUpe3JldHVybiBvKHModGhpcyksdCxlLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0pKX0sIjlhYTgiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjg2MGYiKSxpPW4oIjkwZGUiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LCI5YWRmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCJjM2FiIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiOWJkZCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjgyNWEiKSxpPW4oIjJhNjIiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sYSl7dHJ5e3JldHVybiBhP2UocihuKVswXSxuWzFdKTplKG4pfWNhdGNoKG8pe2kodCwidGhyb3ciLG8pfX19LCI5YmYyIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiMGNmYiIpLGE9bigiYWVkOSIpLG89bigiODI1YSIpLHM9bigiYTA0YiIpLGM9VHlwZUVycm9yLHU9T2JqZWN0LmRlZmluZVByb3BlcnR5LGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtlLmY9cj9hP2Z1bmN0aW9uKHQsZSxuKXtpZihvKHQpLGU9cyhlKSxvKG4pLCJmdW5jdGlvbiI9PT10eXBlb2YgdCYmInByb3RvdHlwZSI9PT1lJiYidmFsdWUiaW4gbiYmIndyaXRhYmxlImluIG4mJiFuWyJ3cml0YWJsZSJdKXt2YXIgcj1sKHQsZSk7ciYmclsid3JpdGFibGUiXSYmKHRbZV09bi52YWx1ZSxuPXtjb25maWd1cmFibGU6ImNvbmZpZ3VyYWJsZSJpbiBuP25bImNvbmZpZ3VyYWJsZSJdOnJbImNvbmZpZ3VyYWJsZSJdLGVudW1lcmFibGU6ImVudW1lcmFibGUiaW4gbj9uWyJlbnVtZXJhYmxlIl06clsiZW51bWVyYWJsZSJdLHdyaXRhYmxlOiExfSl9cmV0dXJuIHUodCxlLG4pfTp1OmZ1bmN0aW9uKHQsZSxuKXtpZihvKHQpLGU9cyhlKSxvKG4pLGkpdHJ5e3JldHVybiB1KHQsZSxuKX1jYXRjaChyKXt9aWYoImdldCJpbiBufHwic2V0ImluIG4pdGhyb3cgYygiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gbiYmKHRbZV09bi52YWx1ZSksdH19LCI5YzkyIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0LHIpe24oIjdhODIiKTt2YXIgaT1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCI5OWFmIik7dmFyIGE9bigiZGI2YSIpLG89bigiMGZiZSIpLHM9aShuKCIzNTBhIikpLGM9aShuKCJmMjYyIikpLHU9bigiNjMxYSIpO3ZhciBsPXtuYW1lOiJBcHAiLGNvbXBvbmVudHM6cy5kZWZhdWx0LG1peGluczpjLmRlZmF1bHQscHJvcHM6e2tlZXBBbGl2ZUluY2x1ZGU6e3R5cGU6QXJyYXksZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybltdfX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57dHJhbnNpdGlvbk5hbWU6ImZhZGUiLGhpZGVUYWJCYXI6ITEsc3lzQ29tcG9uZW50czp0aGlzLiRzeXNDb21wb25lbnRzLHNob3dMYXlvdXQ6ITEsc2hvd01heFdpZHRoOiExLHRhYkJhck1lZGlhUXVlcnk6ITF9fSxjb21wdXRlZDp7a2V5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJvdXRlLm1ldGEubmFtZSsiLSIrdGhpcy4kcm91dGUucGFyYW1zLl9faWRfXysiLSIrKF9fdW5pQ29uZmlnLnJlTGF1bmNofHwxKX0sdGFiQmFyT3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB1LnRhYkJhcn0saGFzVGFiQmFyOmZ1bmN0aW9uKCl7cmV0dXJuIHUudGFiQmFyLmxpc3QmJnUudGFiQmFyLmxpc3QubGVuZ3RofSxzaG93VGFiQmFyOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaGlkZVRhYkJhciYmKHRoaXMuJHJvdXRlLm1ldGEuaXNUYWJCYXJ8fHRoaXMudGFiQmFyTWVkaWFRdWVyeSl9fSx3YXRjaDp7JHJvdXRlOmZ1bmN0aW9uKGUsbil7dC5lbWl0KCJvbkhpZGVQb3B1cCIpfSxoaWRlVGFiQmFyOmZ1bmN0aW9uKHQsZSl7aWYodW5pLmNhbklVc2UoImNzcy52YXIiKSl7dmFyIG49dD8wOm8uVEFCQkFSX0hFSUdIVCxpPXVuaS5jYW5JVXNlKCJjc3MuZW52Iik/ImVudiI6dW5pLmNhbklVc2UoImNzcy5jb25zdGFudCIpPyJjb25zdGFudCI6IiIsYT1uJiZpPyJjYWxjKCIuY29uY2F0KG4sInB4ICsgIikuY29uY2F0KGksIihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSkiKToiIi5jb25jYXQobiwicHgiKTtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIi0td2luZG93LWJvdHRvbSIsYSksci5kZWJ1ZygidW5pLiIuY29uY2F0KGE/InNob3dUYWJCYXIiOiJoaWRlVGFiQmFyIiwi77yaLS13aW5kb3ctYm90dG9tPSIpLmNvbmNhdChhKSl9d2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXNpemUiKSl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dW5pLmNhbklVc2UoImNzcy52YXIiKSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCItLXN0YXR1cy1iYXItaGVpZ2h0IiwiMHB4IiksdGhpcy5pbml0TWVkaWFRdWVyeSgpfSxtb3VudGVkOmZ1bmN0aW9uKCl7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLChmdW5jdGlvbihlKXsoMCxhLmlzUGxhaW5PYmplY3QpKGUuZGF0YSkmJiJXRUJfSU5WT0tFX0FQUFNFUlZJQ0UiPT09ZS5kYXRhLnR5cGUmJnQuZW1pdCgib25XZWJJbnZva2VBcHBTZXJ2aWNlIixlLmRhdGEuZGF0YSxlLmRhdGEucGFnZUlkKX0pKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwoZnVuY3Rpb24oKXsidmlzaWJsZSI9PT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU/dC5lbWl0KCJvbkFwcEVudGVyRm9yZWdyb3VuZCIse30pOnQuZW1pdCgib25BcHBFbnRlckJhY2tncm91bmQiKX0pKSxmdW5jdGlvbigpe3ZhciBlPW51bGw7dHJ5e2U9d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKX1jYXRjaChyKXt9aWYoZSl7dmFyIG49ZnVuY3Rpb24oZSl7dC5lbWl0KCJhcGkuIitvLk9OX1RIRU1FX0NIQU5HRSx7dGhlbWU6ZS5tYXRjaGVzPyJkYXJrIjoibGlnaHQifSl9O2UuYWRkRXZlbnRMaXN0ZW5lcj9lLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsbik6ZS5hZGRMaXN0ZW5lcihuKX19KCl9LG1ldGhvZHM6e29uTGF5b3V0OmZ1bmN0aW9uKHQpe3RoaXMuc2hvd0xheW91dD10fSxvbk1heFdpZHRoOmZ1bmN0aW9uKHQpe3RoaXMuc2hvd01heFdpZHRoPXR9LGluaXRNZWRpYVF1ZXJ5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih3aW5kb3cubWF0Y2hNZWRpYSYmdS50YWJCYXIubWF0Y2hNZWRpYSYmKDAsYS5oYXNPd24pKHUudGFiQmFyLm1hdGNoTWVkaWEsIm1pbldpZHRoIikpe3ZhciBlPXdpbmRvdy5tYXRjaE1lZGlhKCIobWluLXdpZHRoOiAiK3UudGFiQmFyLm1hdGNoTWVkaWEubWluV2lkdGgrInB4KSIpO2UuYWRkTGlzdGVuZXIoKGZ1bmN0aW9uKGUpe3QudGFiQmFyTWVkaWFRdWVyeT1lLm1hdGNoZXN9KSksdGhpcy50YWJCYXJNZWRpYVF1ZXJ5PWUubWF0Y2hlc319fX07ZS5kZWZhdWx0PWx9KS5jYWxsKHRoaXMsbigiYTlhYSIpLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sIjlkOGMiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNoZWNrSW5XaW5kb3dzPWZ1bmN0aW9uKHQpezA7d2hpbGUodCl7aWYoLTEhPT1yLmluZGV4T2YodC4kb3B0aW9ucy5uYW1lKSlyZXR1cm4hMDt0PXQuJHBhcmVudH19LG4oImM5NzUiKTt2YXIgcj1bIlZVbmlMZWZ0V2luZG93IiwiVlVuaVRvcFdpbmRvdyIsIlZVbmlSaWdodFdpbmRvdyJdfSwiOWYwNCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsZSxuKXtyZXR1cm4gdD5lLW4mJnQ8ZStufWZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gcih0LDAsZSl9ZnVuY3Rpb24gYSgpe31mdW5jdGlvbiBvKHQsZSl7dGhpcy5fbT10LHRoaXMuX2Y9MWUzKmUsdGhpcy5fc3RhcnRUaW1lPTAsdGhpcy5fdj0wfWZ1bmN0aW9uIHModCxlLG4pe3RoaXMuX209dCx0aGlzLl9rPWUsdGhpcy5fYz1uLHRoaXMuX3NvbHV0aW9uPW51bGwsdGhpcy5fZW5kUG9zaXRpb249MCx0aGlzLl9zdGFydFRpbWU9MH1mdW5jdGlvbiBjKHQsZSxuKXt0aGlzLl9zcHJpbmdYPW5ldyBzKHQsZSxuKSx0aGlzLl9zcHJpbmdZPW5ldyBzKHQsZSxuKSx0aGlzLl9zcHJpbmdTY2FsZT1uZXcgcyh0LGUsbiksdGhpcy5fc3RhcnRUaW1lPTB9bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkRlY2xpbmU9YSxlLkZyaWN0aW9uPW8sZS5TVEQ9YyxlLlNwcmluZz1zLGEucHJvdG90eXBlLng9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc3FydCh0KX0sby5wcm90b3R5cGUuc2V0Vj1mdW5jdGlvbih0LGUpe3ZhciBuPU1hdGgucG93KE1hdGgucG93KHQsMikrTWF0aC5wb3coZSwyKSwuNSk7dGhpcy5feF92PXQsdGhpcy5feV92PWUsdGhpcy5feF9hPS10aGlzLl9mKnRoaXMuX3hfdi9uLHRoaXMuX3lfYT0tdGhpcy5fZip0aGlzLl95X3Yvbix0aGlzLl90PU1hdGguYWJzKHQvdGhpcy5feF9hKXx8TWF0aC5hYnMoZS90aGlzLl95X2EpLHRoaXMuX2xhc3REdD1udWxsLHRoaXMuX3N0YXJ0VGltZT0obmV3IERhdGUpLmdldFRpbWUoKX0sby5wcm90b3R5cGUuc2V0Uz1mdW5jdGlvbih0LGUpe3RoaXMuX3hfcz10LHRoaXMuX3lfcz1lfSxvLnByb3RvdHlwZS5zPWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksdD50aGlzLl90JiYodD10aGlzLl90LHRoaXMuX2xhc3REdD10KTt2YXIgZT10aGlzLl94X3YqdCsuNSp0aGlzLl94X2EqTWF0aC5wb3codCwyKSt0aGlzLl94X3Msbj10aGlzLl95X3YqdCsuNSp0aGlzLl95X2EqTWF0aC5wb3codCwyKSt0aGlzLl95X3M7cmV0dXJuKHRoaXMuX3hfYT4wJiZlPHRoaXMuX2VuZFBvc2l0aW9uWHx8dGhpcy5feF9hPDAmJmU+dGhpcy5fZW5kUG9zaXRpb25YKSYmKGU9dGhpcy5fZW5kUG9zaXRpb25YKSwodGhpcy5feV9hPjAmJm48dGhpcy5fZW5kUG9zaXRpb25ZfHx0aGlzLl95X2E8MCYmbj50aGlzLl9lbmRQb3NpdGlvblkpJiYobj10aGlzLl9lbmRQb3NpdGlvblkpLHt4OmUseTpufX0sby5wcm90b3R5cGUuZHM9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksdD50aGlzLl90JiYodD10aGlzLl90KSx7ZHg6dGhpcy5feF92K3RoaXMuX3hfYSp0LGR5OnRoaXMuX3lfdit0aGlzLl95X2EqdH19LG8ucHJvdG90eXBlLmRlbHRhPWZ1bmN0aW9uKCl7cmV0dXJue3g6LTEuNSpNYXRoLnBvdyh0aGlzLl94X3YsMikvdGhpcy5feF9hfHwwLHk6LTEuNSpNYXRoLnBvdyh0aGlzLl95X3YsMikvdGhpcy5feV9hfHwwfX0sby5wcm90b3R5cGUuZHQ9ZnVuY3Rpb24oKXtyZXR1cm4tdGhpcy5feF92L3RoaXMuX3hfYX0sby5wcm90b3R5cGUuZG9uZT1mdW5jdGlvbigpe3ZhciB0PXIodGhpcy5zKCkueCx0aGlzLl9lbmRQb3NpdGlvblgpfHxyKHRoaXMucygpLnksdGhpcy5fZW5kUG9zaXRpb25ZKXx8dGhpcy5fbGFzdER0PT09dGhpcy5fdDtyZXR1cm4gdGhpcy5fbGFzdER0PW51bGwsdH0sby5wcm90b3R5cGUuc2V0RW5kPWZ1bmN0aW9uKHQsZSl7dGhpcy5fZW5kUG9zaXRpb25YPXQsdGhpcy5fZW5kUG9zaXRpb25ZPWV9LG8ucHJvdG90eXBlLnJlY29uZmlndXJlPWZ1bmN0aW9uKHQsZSl7dGhpcy5fbT10LHRoaXMuX2Y9MWUzKmV9LHMucHJvdG90eXBlLl9zb2x2ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2Mscj10aGlzLl9tLGk9dGhpcy5fayxhPW4qbi00KnIqaTtpZigwPT09YSl7dmFyIG89LW4vKDIqcikscz10LGM9ZS8obyp0KTtyZXR1cm57eDpmdW5jdGlvbih0KXtyZXR1cm4ocytjKnQpKk1hdGgucG93KE1hdGguRSxvKnQpfSxkeDpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLnBvdyhNYXRoLkUsbyp0KTtyZXR1cm4gbyoocytjKnQpKmUrYyplfX19aWYoYT4wKXt2YXIgdT0oLW4tTWF0aC5zcXJ0KGEpKS8oMipyKSxsPSgtbitNYXRoLnNxcnQoYSkpLygyKnIpLGY9KGUtdSp0KS8obC11KSxkPXQtZjtyZXR1cm57eDpmdW5jdGlvbih0KXt2YXIgZSxuO3JldHVybiB0PT09dGhpcy5fdCYmKGU9dGhpcy5fcG93RVIxVCxuPXRoaXMuX3Bvd0VSMlQpLHRoaXMuX3Q9dCxlfHwoZT10aGlzLl9wb3dFUjFUPU1hdGgucG93KE1hdGguRSx1KnQpKSxufHwobj10aGlzLl9wb3dFUjJUPU1hdGgucG93KE1hdGguRSxsKnQpKSxkKmUrZipufSxkeDpmdW5jdGlvbih0KXt2YXIgZSxuO3JldHVybiB0PT09dGhpcy5fdCYmKGU9dGhpcy5fcG93RVIxVCxuPXRoaXMuX3Bvd0VSMlQpLHRoaXMuX3Q9dCxlfHwoZT10aGlzLl9wb3dFUjFUPU1hdGgucG93KE1hdGguRSx1KnQpKSxufHwobj10aGlzLl9wb3dFUjJUPU1hdGgucG93KE1hdGguRSxsKnQpKSxkKnUqZStmKmwqbn19fXZhciBoPU1hdGguc3FydCg0KnIqaS1uKm4pLygyKnIpLHA9LW4vMipyLHY9dCxnPShlLXAqdCkvaDtyZXR1cm57eDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3coTWF0aC5FLHAqdCkqKHYqTWF0aC5jb3MoaCp0KStnKk1hdGguc2luKGgqdCkpfSxkeDpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLnBvdyhNYXRoLkUscCp0KSxuPU1hdGguY29zKGgqdCkscj1NYXRoLnNpbihoKnQpO3JldHVybiBlKihnKmgqbi12KmgqcikrcCplKihnKnIrdipuKX19fSxzLnByb3RvdHlwZS54PWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10JiYodD0oKG5ldyBEYXRlKS5nZXRUaW1lKCktdGhpcy5fc3RhcnRUaW1lKS8xZTMpLHRoaXMuX3NvbHV0aW9uP3RoaXMuX2VuZFBvc2l0aW9uK3RoaXMuX3NvbHV0aW9uLngodCk6MH0scy5wcm90b3R5cGUuZHg9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksdGhpcy5fc29sdXRpb24/dGhpcy5fc29sdXRpb24uZHgodCk6MH0scy5wcm90b3R5cGUuc2V0RW5kPWZ1bmN0aW9uKHQsZSxuKXtpZihufHwobj0obmV3IERhdGUpLmdldFRpbWUoKSksdCE9PXRoaXMuX2VuZFBvc2l0aW9ufHwhaShlLC4xKSl7ZT1lfHwwO3ZhciByPXRoaXMuX2VuZFBvc2l0aW9uO3RoaXMuX3NvbHV0aW9uJiYoaShlLC4xKSYmKGU9dGhpcy5fc29sdXRpb24uZHgoKG4tdGhpcy5fc3RhcnRUaW1lKS8xZTMpKSxyPXRoaXMuX3NvbHV0aW9uLngoKG4tdGhpcy5fc3RhcnRUaW1lKS8xZTMpLGkoZSwuMSkmJihlPTApLGkociwuMSkmJihyPTApLHIrPXRoaXMuX2VuZFBvc2l0aW9uKSx0aGlzLl9zb2x1dGlvbiYmaShyLXQsLjEpJiZpKGUsLjEpfHwodGhpcy5fZW5kUG9zaXRpb249dCx0aGlzLl9zb2x1dGlvbj10aGlzLl9zb2x2ZShyLXRoaXMuX2VuZFBvc2l0aW9uLGUpLHRoaXMuX3N0YXJ0VGltZT1uKX19LHMucHJvdG90eXBlLnNuYXA9ZnVuY3Rpb24odCl7dGhpcy5fc3RhcnRUaW1lPShuZXcgRGF0ZSkuZ2V0VGltZSgpLHRoaXMuX2VuZFBvc2l0aW9uPXQsdGhpcy5fc29sdXRpb249e3g6ZnVuY3Rpb24oKXtyZXR1cm4gMH0sZHg6ZnVuY3Rpb24oKXtyZXR1cm4gMH19fSxzLnByb3RvdHlwZS5kb25lPWZ1bmN0aW9uKHQpe3JldHVybiB0fHwodD0obmV3IERhdGUpLmdldFRpbWUoKSkscih0aGlzLngoKSx0aGlzLl9lbmRQb3NpdGlvbiwuMSkmJmkodGhpcy5keCgpLC4xKX0scy5wcm90b3R5cGUucmVjb25maWd1cmU9ZnVuY3Rpb24odCxlLG4pe3RoaXMuX209dCx0aGlzLl9rPWUsdGhpcy5fYz1uLHRoaXMuZG9uZSgpfHwodGhpcy5fc29sdXRpb249dGhpcy5fc29sdmUodGhpcy54KCktdGhpcy5fZW5kUG9zaXRpb24sdGhpcy5keCgpKSx0aGlzLl9zdGFydFRpbWU9KG5ldyBEYXRlKS5nZXRUaW1lKCkpfSxzLnByb3RvdHlwZS5zcHJpbmdDb25zdGFudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9rfSxzLnByb3RvdHlwZS5kYW1waW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N9LHMucHJvdG90eXBlLmNvbmZpZ3VyYXRpb249ZnVuY3Rpb24oKXtyZXR1cm5be2xhYmVsOiJTcHJpbmcgQ29uc3RhbnQiLHJlYWQ6dGhpcy5zcHJpbmdDb25zdGFudC5iaW5kKHRoaXMpLHdyaXRlOmZ1bmN0aW9uKHQsZSl7dC5yZWNvbmZpZ3VyZSgxLGUsdC5kYW1waW5nKCkpfS5iaW5kKHRoaXMsdGhpcyksbWluOjEwMCxtYXg6MWUzfSx7bGFiZWw6IkRhbXBpbmciLHJlYWQ6dGhpcy5kYW1waW5nLmJpbmQodGhpcyksd3JpdGU6ZnVuY3Rpb24odCxlKXt0LnJlY29uZmlndXJlKDEsdC5zcHJpbmdDb25zdGFudCgpLGUpfS5iaW5kKHRoaXMsdGhpcyksbWluOjEsbWF4OjUwMH1dfSxjLnByb3RvdHlwZS5zZXRFbmQ9ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9KG5ldyBEYXRlKS5nZXRUaW1lKCk7dGhpcy5fc3ByaW5nWC5zZXRFbmQodCxyLGkpLHRoaXMuX3NwcmluZ1kuc2V0RW5kKGUscixpKSx0aGlzLl9zcHJpbmdTY2FsZS5zZXRFbmQobixyLGkpLHRoaXMuX3N0YXJ0VGltZT1pfSxjLnByb3RvdHlwZS54PWZ1bmN0aW9uKCl7dmFyIHQ9KChuZXcgRGF0ZSkuZ2V0VGltZSgpLXRoaXMuX3N0YXJ0VGltZSkvMWUzO3JldHVybnt4OnRoaXMuX3NwcmluZ1gueCh0KSx5OnRoaXMuX3NwcmluZ1kueCh0KSxzY2FsZTp0aGlzLl9zcHJpbmdTY2FsZS54KHQpfX0sYy5wcm90b3R5cGUuZG9uZT1mdW5jdGlvbigpe3ZhciB0PShuZXcgRGF0ZSkuZ2V0VGltZSgpO3JldHVybiB0aGlzLl9zcHJpbmdYLmRvbmUodCkmJnRoaXMuX3NwcmluZ1kuZG9uZSh0KSYmdGhpcy5fc3ByaW5nU2NhbGUuZG9uZSh0KX0sYy5wcm90b3R5cGUucmVjb25maWd1cmU9ZnVuY3Rpb24odCxlLG4pe3RoaXMuX3NwcmluZ1gucmVjb25maWd1cmUodCxlLG4pLHRoaXMuX3NwcmluZ1kucmVjb25maWd1cmUodCxlLG4pLHRoaXMuX3NwcmluZ1NjYWxlLnJlY29uZmlndXJlKHQsZSxuKX19LCI5ZjQ4IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIxMjM5IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiOWY0OSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnRyeUNhdGNoPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3RyeXtyZXR1cm4gZS5hcHBseShlLGFyZ3VtZW50cyl9Y2F0Y2gobil7dC5lcnJvcihuKX19fSxlLnRyeUNhdGNoRnJhbWV3b3JrPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3RyeXtyZXR1cm4gZS5hcHBseShlLGFyZ3VtZW50cyl9Y2F0Y2gobil7dC5lcnJvcihuKX19fX0pLmNhbGwodGhpcyxuKCI1YTUyIilbImRlZmF1bHQiXSl9LCI5ZjdmIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZDAzOSIpLGk9bigiZGE4NCIpLGE9aS5SZWdFeHAsbz1yKChmdW5jdGlvbigpe3ZhciB0PWEoImEiLCJ5Iik7cmV0dXJuIHQubGFzdEluZGV4PTIsbnVsbCE9dC5leGVjKCJhYmNkIil9KSkscz1vfHxyKChmdW5jdGlvbigpe3JldHVybiFhKCJhIiwieSIpLnN0aWNreX0pKSxjPW98fHIoKGZ1bmN0aW9uKCl7dmFyIHQ9YSgiXnIiLCJneSIpO3JldHVybiB0Lmxhc3RJbmRleD0yLG51bGwhPXQuZXhlYygic3RyIil9KSk7dC5leHBvcnRzPXtCUk9LRU5fQ0FSRVQ6YyxNSVNTRURfU1RJQ0tZOnMsVU5TVVBQT1JURURfWTpvfX0sIjlmZDEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kY3JlYXRlRWxlbWVudCxlPXRoaXMuX3NlbGYuX2N8fHQ7cmV0dXJuIGUoInVuaS1zd2lwZXItaXRlbSIsdGhpcy5fZyh7fSx0aGlzLiRsaXN0ZW5lcnMpLFt0aGlzLl90KCJkZWZhdWx0IildLDIpfSxpPVtdfSxhMDRiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJjMDRlIiksaT1uKCJkOWI1Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXIodCwic3RyaW5nIik7cmV0dXJuIGkoZSk/ZTplKyIifX0sYTA3ODpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMDM2NiIpLGk9bigiYzY1YiIpLGE9bigiNTA4NyIpLG89bigiN2IwYiIpLHM9bigiMDdmYSIpLGM9bigiOWExZiIpLHU9bigiMzVhMSIpLGw9bigiZTk1YSIpLGY9bigiYmNiZiIpLGQ9bigiZWJiNSIpLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsaD1uKCJmNDk1Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLG4scCx2LGcsbSxiLHksXz1hKHRoaXMpLHc9byh0KSx4PWFyZ3VtZW50cy5sZW5ndGgsUz14PjE/YXJndW1lbnRzWzFdOnZvaWQgMCxUPXZvaWQgMCE9PVMsQz11KHcpO2lmKEMmJiFsKEMpKXtiPWModyxDKSx5PWIubmV4dCx3PVtdO3doaWxlKCEobT1pKHksYikpLmRvbmUpdy5wdXNoKG0udmFsdWUpfWZvcihUJiZ4PjImJihTPXIoUyxhcmd1bWVudHNbMl0pKSxuPXModykscD1uZXcoZChfKSkobiksdj1mKHApLGU9MDtuPmU7ZSsrKWc9VD9TKHdbZV0sZSk6d1tlXSxwW2VdPXY/aChnKTorZztyZXR1cm4gcH19LGEyNTg6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjAzNjYiKSxpPW4oIjQ0YWQiKSxhPW4oIjdiMGIiKSxvPW4oIjA3ZmEiKSxzPWZ1bmN0aW9uKHQpe3ZhciBlPTE9PXQ7cmV0dXJuIGZ1bmN0aW9uKG4scyxjKXt2YXIgdSxsLGY9YShuKSxkPWkoZiksaD1yKHMsYykscD1vKGQpO3doaWxlKHAtLSA+MClpZih1PWRbcF0sbD1oKHUscCxmKSxsKXN3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIHU7Y2FzZSAxOnJldHVybiBwfXJldHVybiBlPy0xOnZvaWQgMH19O3QuZXhwb3J0cz17ZmluZExhc3Q6cygwKSxmaW5kTGFzdEluZGV4OnMoMSl9fSxhMzhlOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCl7dmFyIGU9KDAsaS5kZWZhdWx0KSh0LCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09PSgwLHIuZGVmYXVsdCkoZSk/ZTpTdHJpbmcoZSl9O3ZhciByPWEobigiNTNjYSIpKSxpPWEobigiYWY1MCIpKTtmdW5jdGlvbiBhKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX19LGEzOTU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjcwMzciKVsiZGVmYXVsdCJdLGk9bigiZTUwZCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1pKHQsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT09cihlKT9lOlN0cmluZyhlKX0sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzWyJkZWZhdWx0Il09dC5leHBvcnRzfSxhNDM0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiN2IwYiIpLGE9bigiMjNjYiIpLG89bigiNTkyNiIpLHM9bigiMDdmYSIpLGM9bigiM2EzNCIpLHU9bigiMzUxMSIpLGw9bigiNjVmMCIpLGY9bigiODQxOCIpLGQ9bigiMDgzYSIpLGg9bigiMWRkZSIpLHA9aCgic3BsaWNlIiksdj1NYXRoLm1heCxnPU1hdGgubWluO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohcH0se3NwbGljZTpmdW5jdGlvbih0LGUpe3ZhciBuLHIsaCxwLG0sYix5PWkodGhpcyksXz1zKHkpLHc9YSh0LF8pLHg9YXJndW1lbnRzLmxlbmd0aDtmb3IoMD09PXg/bj1yPTA6MT09PXg/KG49MCxyPV8tdyk6KG49eC0yLHI9Zyh2KG8oZSksMCksXy13KSksdShfK24tciksaD1sKHkscikscD0wO3A8cjtwKyspbT13K3AsbSBpbiB5JiZmKGgscCx5W21dKTtpZihoLmxlbmd0aD1yLG48cil7Zm9yKHA9dztwPF8tcjtwKyspbT1wK3IsYj1wK24sbSBpbiB5P3lbYl09eVttXTpkKHksYik7Zm9yKHA9XztwPl8tcituO3AtLSlkKHkscC0xKX1lbHNlIGlmKG4+cilmb3IocD1fLXI7cD53O3AtLSltPXArci0xLGI9cCtuLTEsbSBpbiB5P3lbYl09eVttXTpkKHksYik7Zm9yKHA9MDtwPG47cCsrKXlbcCt3XT1hcmd1bWVudHNbcCsyXTtyZXR1cm4gYyh5LF8tcituKSxofX0pfSxhNDlmOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5uYXZpZ2F0ZUJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHMoIm5hdmlnYXRlQmFjayIsdCl9LGUubmF2aWdhdGVUbz1mdW5jdGlvbih0KXtyZXR1cm4gcygibmF2aWdhdGVUbyIsdCl9LGUucHJlbG9hZFBhZ2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10LnVybCxyPW4uc3BsaXQoIj8iKVswXS5yZXBsYWNlKC9cLy9nLCItIik7X191bmlDb25maWcuX193ZWJwYWNrX2NodW5rX2xvYWRfXyhyLnN1YnN0cigxKSkudGhlbigoZnVuY3Rpb24oKXtvKGUse3VybDpuLGVyck1zZzoicHJlbG9hZFBhZ2U6b2sifSl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe28oZSx7dXJsOm4sZXJyTXNnOiJwcmVsb2FkUGFnZTpmYWlsICIrdH0pfSkpfSxlLnJlTGF1bmNoPWZ1bmN0aW9uKHQpe3JldHVybiBzKCJyZUxhdW5jaCIsdCl9LGUucmVkaXJlY3RUbz1mdW5jdGlvbih0KXtyZXR1cm4gcygicmVkaXJlY3RUbyIsdCl9LGUuc3dpdGNoVGFiPWZ1bmN0aW9uKHQpe3JldHVybiBzKCJzd2l0Y2hUYWIiLHQpfSxuKCJhYzFmIiksbigiNTMxOSIpLG4oIjE0ZDkiKTt2YXIgcj1uKCJmNGYwIiksaT1uKCIxOWJmIiksYT10LG89YS5pbnZva2VDYWxsYmFja0hhbmRsZXI7ZnVuY3Rpb24gcyh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1lLnVybCxhPWUuZGVsdGEsbz1lLmV2ZW50cyxjPWUuZXhpc3RzLHU9ZS5hbmltYXRpb25UeXBlLGw9ZS5hbmltYXRpb25EdXJhdGlvbixmPWUuZnJvbSxkPXZvaWQgMD09PWY/Im5hdmlnYXRlQmFjayI6ZixoPWUuZGV0YWlsLHA9Z2V0QXBwKCkuJHJvdXRlcjtzd2l0Y2goZGVsZXRlIHAuJGV2ZW50Q2hhbm5lbCx0KXtjYXNlInJlZGlyZWN0VG8iOmlmKCJiYWNrIj09PWMpe3ZhciB2PSgwLHIuZmluZEV4aXN0c1BhZ2VJbmRleCkobik7aWYoLTEhPT12KXt2YXIgZz1nZXRDdXJyZW50UGFnZXMoKS5sZW5ndGgtMS12O2lmKGc+MClyZXR1cm4gcygibmF2aWdhdGVCYWNrIix7ZGVsdGE6Z30pfX1wLnJlcGxhY2Uoe3R5cGU6dCxwYXRoOm59KTticmVhaztjYXNlIm5hdmlnYXRlVG8iOnJldHVybiBwLiRldmVudENoYW5uZWw9KDAsaS5pbml0RXZlbnRDaGFubmVsKShvKSxwLnB1c2goe3R5cGU6dCxwYXRoOm4sYW5pbWF0aW9uVHlwZTp1LGFuaW1hdGlvbkR1cmF0aW9uOmx9KSx7ZXJyTXNnOnQrIjpvayIsZXZlbnRDaGFubmVsOnAuJGV2ZW50Q2hhbm5lbH07Y2FzZSJuYXZpZ2F0ZUJhY2siOnZhciBtPSEwLGI9Z2V0Q3VycmVudFBhZ2VzKCk7aWYoYi5sZW5ndGgpe3ZhciB5PWJbYi5sZW5ndGgtMV07KDAsci5oYXNMaWZlY3ljbGVIb29rKSh5LiRvcHRpb25zLCJvbkJhY2tQcmVzcyIpJiYhMD09PXkuX19jYWxsX2hvb2soIm9uQmFja1ByZXNzIix7ZnJvbTpkfSkmJihtPSExKX1tJiYoYT4xJiYocC5fJGRlbHRhPWEpLHAuZ28oLWEse2FuaW1hdGlvblR5cGU6dSxhbmltYXRpb25EdXJhdGlvbjpsfSkpO2JyZWFrO2Nhc2UicmVMYXVuY2giOnAucmVwbGFjZSh7dHlwZTp0LHBhdGg6bn0pO2JyZWFrO2Nhc2Uic3dpdGNoVGFiIjpwLnJlcGxhY2Uoe3R5cGU6dCxwYXRoOm4scGFyYW1zOntkZXRhaWw6aH19KTticmVha31yZXR1cm57ZXJyTXNnOnQrIjpvayJ9fX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSxhNGI0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIzNDJmIik7dC5leHBvcnRzPS93ZWIwcyg/IS4qY2hyb21lKS9pLnRlc3Qocil9LGE0ZDM6ZnVuY3Rpb24odCxlLG4pe24oImQ5ZjUiKSxuKCJiNGY4IiksbigiYzUxMyIpLG4oImU5YzQiKSxuKCI1YTQ3Iil9LGE1MjQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZWNiZiIpLGk9bigiNzlhZSIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sYTUzYzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCJhYmY0IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxhNTVjOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNhbklVc2U9dm9pZCAwO3ZhciByPVt7bmFtZToic2NoZW1hIix0eXBlOlN0cmluZyxyZXF1aXJlZDohMH1dO2UuY2FuSVVzZT1yfSxhNWUwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmlzQ2FsbGJhY2tBcGk9aCxlLmlzQ29udGV4dEFwaT1mLGUuaXNTeW5jQXBpPWQsZS5pc1Rhc2tBcGk9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1jLmluZGV4T2YodCl9LGUucHJvbWlzaWZ5PWZ1bmN0aW9uKHQsZSl7aWYoIXYodCl8fCEoMCxyLmlzRm4pKGUpKXJldHVybiBlO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sYT1hcmd1bWVudHMubGVuZ3RoLG89bmV3IEFycmF5KGE+MT9hLTE6MCkscz0xO3M8YTtzKyspb1tzLTFdPWFyZ3VtZW50c1tzXTtyZXR1cm4oMCxyLmlzRm4pKG4uc3VjY2Vzcyl8fCgwLHIuaXNGbikobi5mYWlsKXx8KDAsci5pc0ZuKShuLmNvbXBsZXRlKT8oMCxpLndyYXBwZXJSZXR1cm5WYWx1ZSkodCxpLmludm9rZUFwaS5hcHBseSh2b2lkIDAsW3QsZSxuXS5jb25jYXQobykpKTooMCxpLndyYXBwZXJSZXR1cm5WYWx1ZSkodCxwKG5ldyBQcm9taXNlKChmdW5jdGlvbihyLGEpe2kuaW52b2tlQXBpLmFwcGx5KHZvaWQgMCxbdCxlLE9iamVjdC5hc3NpZ24oe30sbix7c3VjY2VzczpyLGZhaWw6YX0pXS5jb25jYXQobykpfSkpKSl9fSxlLnNob3VsZFByb21pc2U9dixuKCJhYzFmIiksbigiMDBiNCIpLG4oImM5NzUiKSxuKCJkM2I3IiksbigiOTlhZiIpO3ZhciByPW4oImRiNmEiKSxpPW4oImZlNjciKSxhPS9eXCR8V2luZG93JHxXaW5kb3dTdHlsZSR8c2VuZEhvc3RFdmVudHxzZW5kTmF0aXZlRXZlbnR8cmVzdG9yZUdsb2JhbHxyZXF1aXJlR2xvYmFsfGdldEN1cnJlbnRTdWJOVnVlfGdldE1lbnVCdXR0b25Cb3VuZGluZ0NsaWVudFJlY3R8XnJlcG9ydHxpbnRlcmNlcHRvcnN8SW50ZXJjZXB0b3IkfGdldFN1Yk5WdWVCeUlkfHJlcXVpcmVOYXRpdmVQbHVnaW58dXB4MnB4fGhpZGVLZXlib2FyZHxjYW5JVXNlfF5jcmVhdGV8U3luYyR8TWFuYWdlciR8YmFzZTY0VG9BcnJheUJ1ZmZlcnxhcnJheUJ1ZmZlclRvQmFzZTY0fGdldExvY2FsZXxzZXRMb2NhbGV8aW52b2tlUHVzaENhbGxiYWNrfGdldFdpbmRvd0luZm98Z2V0RGV2aWNlSW5mb3xnZXRBcHBCYXNlSW5mb3xnZXRTeXN0ZW1TZXR0aW5nfGdldEFwcEF1dGhvcml6ZVNldHRpbmd8aW5pdFVUU3xyZXF1aXJlVVRTfHJlZ2lzdGVyVVRTLyxvPS9eY3JlYXRlfE1hbmFnZXIkLyxzPVsiY3JlYXRlQkxFQ29ubmVjdGlvbiJdLGM9WyJyZXF1ZXN0IiwiZG93bmxvYWRGaWxlIiwidXBsb2FkRmlsZSIsImNvbm5lY3RTb2NrZXQiXSx1PVsiY3JlYXRlQkxFQ29ubmVjdGlvbiIsImNyZWF0ZVB1c2hNZXNzYWdlIl0sbD0vXm9ufF5vZmYvO2Z1bmN0aW9uIGYodCl7cmV0dXJuIG8udGVzdCh0KSYmLTE9PT1zLmluZGV4T2YodCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gYS50ZXN0KHQpJiYtMT09PXUuaW5kZXhPZih0KX1mdW5jdGlvbiBoKHQpe3JldHVybiBsLnRlc3QodCkmJiJvblB1c2giIT09dH1mdW5jdGlvbiBwKHQpe3JldHVybiB0LnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybltudWxsLHRdfSkpLmNhdGNoKChmdW5jdGlvbih0KXtyZXR1cm5bdF19KSl9ZnVuY3Rpb24gdih0KXtyZXR1cm4hKGYodCl8fGQodCl8fGgodCkpfVByb21pc2UucHJvdG90eXBlLmZpbmFsbHl8fChQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIHRoaXMudGhlbigoZnVuY3Rpb24obil7cmV0dXJuIGUucmVzb2x2ZSh0KCkpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIG59KSl9KSwoZnVuY3Rpb24obil7cmV0dXJuIGUucmVzb2x2ZSh0KCkpLnRoZW4oKGZ1bmN0aW9uKCl7dGhyb3cgbn0pKX0pKX0pfSxhNjMwOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyM2U3IiksaT1uKCI0ZGY0IiksYT1uKCIxYzdlIiksbz0hYSgoZnVuY3Rpb24odCl7QXJyYXkuZnJvbSh0KX0pKTtyKHt0YXJnZXQ6IkFycmF5IixzdGF0OiEwLGZvcmNlZDpvfSx7ZnJvbTppfSl9LGE2NDA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJkMDM5Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49W11bdF07cmV0dXJuISFuJiZyKChmdW5jdGlvbigpe24uY2FsbChudWxsLGV8fGZ1bmN0aW9uKCl7cmV0dXJuIDF9LDEpfSkpfX0sYTc5ZDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImM0MzAiKSxhPW4oImQyNTYiKSxvPW4oImQwMzkiKSxzPW4oImQwNjYiKSxjPW4oIjE2MjYiKSx1PW4oIjQ4NDAiKSxsPW4oImNkZjkiKSxmPW4oImNiMmQiKSxkPWEmJmEucHJvdG90eXBlLGg9ISFhJiZvKChmdW5jdGlvbigpe2RbImZpbmFsbHkiXS5jYWxsKHt0aGVuOmZ1bmN0aW9uKCl7fX0sKGZ1bmN0aW9uKCl7fSkpfSkpO2lmKHIoe3RhcmdldDoiUHJvbWlzZSIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6aH0se2ZpbmFsbHk6ZnVuY3Rpb24odCl7dmFyIGU9dSh0aGlzLHMoIlByb21pc2UiKSksbj1jKHQpO3JldHVybiB0aGlzLnRoZW4obj9mdW5jdGlvbihuKXtyZXR1cm4gbChlLHQoKSkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gbn0pKX06dCxuP2Z1bmN0aW9uKG4pe3JldHVybiBsKGUsdCgpKS50aGVuKChmdW5jdGlvbigpe3Rocm93IG59KSl9OnQpfX0pLCFpJiZjKGEpKXt2YXIgcD1zKCJQcm9taXNlIikucHJvdG90eXBlWyJmaW5hbGx5Il07ZFsiZmluYWxseSJdIT09cCYmZihkLCJmaW5hbGx5IixwLHt1bnNhZmU6ITB9KX19LGE3YTc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLmluZGV4T2YoIkVycm9yIik+LTF9ZnVuY3Rpb24gcih0LGUpe2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXTtyZXR1cm4gdH12YXIgaT17bmFtZToiUm91dGVyVmlldyIsZnVuY3Rpb25hbDohMCxwcm9wczp7bmFtZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiZGVmYXVsdCJ9fSxyZW5kZXI6ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnByb3BzLGk9ZS5jaGlsZHJlbixhPWUucGFyZW50LG89ZS5kYXRhO28ucm91dGVyVmlldz0hMDt2YXIgcz1hLiRjcmVhdGVFbGVtZW50LGM9bi5uYW1lLHU9YS4kcm91dGUsbD1hLl9yb3V0ZXJWaWV3Q2FjaGV8fChhLl9yb3V0ZXJWaWV3Q2FjaGU9e30pLGY9MCxkPSExO3doaWxlKGEmJmEuX3JvdXRlclJvb3QhPT1hKWEuJHZub2RlJiZhLiR2bm9kZS5kYXRhLnJvdXRlclZpZXcmJmYrKyxhLl9pbmFjdGl2ZSYmKGQ9ITApLGE9YS4kcGFyZW50O2lmKG8ucm91dGVyVmlld0RlcHRoPWYsZClyZXR1cm4gcyhsW2NdLG8saSk7dmFyIGg9dS5tYXRjaGVkW2ZdO2lmKCFoKXJldHVybiBsW2NdPW51bGwscygpO3ZhciBwPWxbY109aC5jb21wb25lbnRzW2NdO28ucmVnaXN0ZXJSb3V0ZUluc3RhbmNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49aC5pbnN0YW5jZXNbY107KGUmJm4hPT10fHwhZSYmbj09PXQpJiYoaC5pbnN0YW5jZXNbY109ZSl9LChvLmhvb2t8fChvLmhvb2s9e30pKS5wcmVwYXRjaD1mdW5jdGlvbih0LGUpe2guaW5zdGFuY2VzW2NdPWUuY29tcG9uZW50SW5zdGFuY2V9O3ZhciB2PW8ucHJvcHM9ZnVuY3Rpb24odCxlKXtzd2l0Y2godHlwZW9mIGUpe2Nhc2UidW5kZWZpbmVkIjpyZXR1cm47Y2FzZSJvYmplY3QiOnJldHVybiBlO2Nhc2UiZnVuY3Rpb24iOnJldHVybiBlKHQpO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIGU/dC5wYXJhbXM6dm9pZCAwO2RlZmF1bHQ6MH19KHUsaC5wcm9wcyYmaC5wcm9wc1tjXSk7aWYodil7dj1vLnByb3BzPXIoe30sdik7dmFyIGc9by5hdHRycz1vLmF0dHJzfHx7fTtmb3IodmFyIG0gaW4gdilwLnByb3BzJiZtIGluIHAucHJvcHN8fChnW21dPXZbbV0sZGVsZXRlIHZbbV0pfXJldHVybiBzKHAsbyxpKX19O3ZhciBhPS9bIScoKSpdL2csbz1mdW5jdGlvbih0KXtyZXR1cm4iJSIrdC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KX0scz0vJTJDL2csYz1mdW5jdGlvbih0KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHQpLnJlcGxhY2UoYSxvKS5yZXBsYWNlKHMsIiwiKX0sdT1kZWNvZGVVUklDb21wb25lbnQ7ZnVuY3Rpb24gbCh0LGUsbil7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciByLGk9bnx8Zjt0cnl7cj1pKHR8fCIiKX1jYXRjaChvKXtyPXt9fWZvcih2YXIgYSBpbiBlKXJbYV09ZVthXTtyZXR1cm4gcn1mdW5jdGlvbiBmKHQpe3ZhciBlPXt9O3JldHVybiB0PXQudHJpbSgpLnJlcGxhY2UoL14oXD98I3wmKS8sIiIpLHQ/KHQuc3BsaXQoIiYiKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbj10LnJlcGxhY2UoL1wrL2csIiAiKS5zcGxpdCgiPSIpLHI9dShuLnNoaWZ0KCkpLGk9bi5sZW5ndGg+MD91KG4uam9pbigiPSIpKTpudWxsO3ZvaWQgMD09PWVbcl0/ZVtyXT1pOkFycmF5LmlzQXJyYXkoZVtyXSk/ZVtyXS5wdXNoKGkpOmVbcl09W2Vbcl0saV19KSksZSk6ZX1mdW5jdGlvbiBkKHQpe3ZhciBlPXQ/T2JqZWN0LmtleXModCkubWFwKChmdW5jdGlvbihlKXt2YXIgbj10W2VdO2lmKHZvaWQgMD09PW4pcmV0dXJuIiI7aWYobnVsbD09PW4pcmV0dXJuIGMoZSk7aWYoQXJyYXkuaXNBcnJheShuKSl7dmFyIHI9W107cmV0dXJuIG4uZm9yRWFjaCgoZnVuY3Rpb24odCl7dm9pZCAwIT09dCYmKG51bGw9PT10P3IucHVzaChjKGUpKTpyLnB1c2goYyhlKSsiPSIrYyh0KSkpfSkpLHIuam9pbigiJiIpfXJldHVybiBjKGUpKyI9IitjKG4pfSkpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoPjB9KSkuam9pbigiJiIpOm51bGw7cmV0dXJuIGU/Ij8iK2U6IiJ9dmFyIGg9L1wvPyQvO2Z1bmN0aW9uIHAodCxlLG4scil7dmFyIGk9ciYmci5vcHRpb25zLnN0cmluZ2lmeVF1ZXJ5LGE9ZS5xdWVyeXx8e307dHJ5e2E9dihhKX1jYXRjaChzKXt9dmFyIG89e25hbWU6ZS5uYW1lfHx0JiZ0Lm5hbWUsbWV0YTp0JiZ0Lm1ldGF8fHt9LHBhdGg6ZS5wYXRofHwiLyIsaGFzaDplLmhhc2h8fCIiLHR5cGU6ZS50eXBlLHF1ZXJ5OmEscGFyYW1zOmUucGFyYW1zfHx7fSxmdWxsUGF0aDpiKGUsaSksbWF0Y2hlZDp0P20odCk6W119O3JldHVybiBuJiYoby5yZWRpcmVjdGVkRnJvbT1iKG4saSkpLE9iamVjdC5mcmVlemUobyl9ZnVuY3Rpb24gdih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0Lm1hcCh2KTtpZih0JiYib2JqZWN0Ij09PXR5cGVvZiB0KXt2YXIgZT17fTtmb3IodmFyIG4gaW4gdCllW25dPXYodFtuXSk7cmV0dXJuIGV9cmV0dXJuIHR9dmFyIGc9cChudWxsLHtwYXRoOiIvIn0pO2Z1bmN0aW9uIG0odCl7dmFyIGU9W107d2hpbGUodCllLnVuc2hpZnQodCksdD10LnBhcmVudDtyZXR1cm4gZX1mdW5jdGlvbiBiKHQsZSl7dmFyIG49dC5wYXRoLHI9dC5xdWVyeTt2b2lkIDA9PT1yJiYocj17fSk7dmFyIGk9dC5oYXNoO3ZvaWQgMD09PWkmJihpPSIiKTt2YXIgYT1lfHxkO3JldHVybihufHwiLyIpK2EocikraX1mdW5jdGlvbiB5KHQsZSl7aWYodm9pZCAwPT09dCYmKHQ9e30pLHZvaWQgMD09PWUmJihlPXt9KSwhdHx8IWUpcmV0dXJuIHQ9PT1lO3ZhciBuPU9iamVjdC5rZXlzKHQpLHI9T2JqZWN0LmtleXMoZSk7cmV0dXJuIG4ubGVuZ3RoPT09ci5sZW5ndGgmJm4uZXZlcnkoKGZ1bmN0aW9uKG4pe3ZhciByPXRbbl0saT1lW25dO3JldHVybiJvYmplY3QiPT09dHlwZW9mIHImJiJvYmplY3QiPT09dHlwZW9mIGk/eShyLGkpOlN0cmluZyhyKT09PVN0cmluZyhpKX0pKX12YXIgXyx3PVtTdHJpbmcsT2JqZWN0XSx4PVtTdHJpbmcsQXJyYXldLFM9e25hbWU6IlJvdXRlckxpbmsiLHByb3BzOnt0bzp7dHlwZTp3LHJlcXVpcmVkOiEwfSx0YWc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImEifSxleGFjdDpCb29sZWFuLGFwcGVuZDpCb29sZWFuLHJlcGxhY2U6Qm9vbGVhbixhY3RpdmVDbGFzczpTdHJpbmcsZXhhY3RBY3RpdmVDbGFzczpTdHJpbmcsZXZlbnQ6e3R5cGU6eCxkZWZhdWx0OiJjbGljayJ9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuJHJvdXRlcixpPXRoaXMuJHJvdXRlLGE9bi5yZXNvbHZlKHRoaXMudG8saSx0aGlzLmFwcGVuZCksbz1hLmxvY2F0aW9uLHM9YS5yb3V0ZSxjPWEuaHJlZix1PXt9LGw9bi5vcHRpb25zLmxpbmtBY3RpdmVDbGFzcyxmPW4ub3B0aW9ucy5saW5rRXhhY3RBY3RpdmVDbGFzcyxkPW51bGw9PWw/InJvdXRlci1saW5rLWFjdGl2ZSI6bCx2PW51bGw9PWY/InJvdXRlci1saW5rLWV4YWN0LWFjdGl2ZSI6ZixtPW51bGw9PXRoaXMuYWN0aXZlQ2xhc3M/ZDp0aGlzLmFjdGl2ZUNsYXNzLGI9bnVsbD09dGhpcy5leGFjdEFjdGl2ZUNsYXNzP3Y6dGhpcy5leGFjdEFjdGl2ZUNsYXNzLF89by5wYXRoP3AobnVsbCxvLG51bGwsbik6czt1W2JdPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9PT1nP3Q9PT1lOiEhZSYmKHQucGF0aCYmZS5wYXRoP3QucGF0aC5yZXBsYWNlKGgsIiIpPT09ZS5wYXRoLnJlcGxhY2UoaCwiIikmJnQuaGFzaD09PWUuaGFzaCYmeSh0LnF1ZXJ5LGUucXVlcnkpOiEoIXQubmFtZXx8IWUubmFtZSkmJih0Lm5hbWU9PT1lLm5hbWUmJnQuaGFzaD09PWUuaGFzaCYmeSh0LnF1ZXJ5LGUucXVlcnkpJiZ5KHQucGFyYW1zLGUucGFyYW1zKSkpfShpLF8pLHVbbV09dGhpcy5leGFjdD91W2JdOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDA9PT10LnBhdGgucmVwbGFjZShoLCIvIikuaW5kZXhPZihlLnBhdGgucmVwbGFjZShoLCIvIikpJiYoIWUuaGFzaHx8dC5oYXNoPT09ZS5oYXNoKSYmZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSlpZighKG4gaW4gdCkpcmV0dXJuITE7cmV0dXJuITB9KHQucXVlcnksZS5xdWVyeSl9KGksXyk7dmFyIHc9ZnVuY3Rpb24odCl7VCh0KSYmKGUucmVwbGFjZT9uLnJlcGxhY2Uobyk6bi5wdXNoKG8pKX0seD17Y2xpY2s6VH07QXJyYXkuaXNBcnJheSh0aGlzLmV2ZW50KT90aGlzLmV2ZW50LmZvckVhY2goKGZ1bmN0aW9uKHQpe3hbdF09d30pKTp4W3RoaXMuZXZlbnRdPXc7dmFyIFM9e2NsYXNzOnV9O2lmKCJhIj09PXRoaXMudGFnKVMub249eCxTLmF0dHJzPXtocmVmOmN9O2Vsc2V7dmFyIEM9ZnVuY3Rpb24gdChlKXt2YXIgbjtpZihlKWZvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXtpZihuPWVbcl0sImEiPT09bi50YWcpcmV0dXJuIG47aWYobi5jaGlsZHJlbiYmKG49dChuLmNoaWxkcmVuKSkpcmV0dXJuIG59fSh0aGlzLiRzbG90cy5kZWZhdWx0KTtpZihDKXtDLmlzU3RhdGljPSExO3ZhciBrPUMuZGF0YT1yKHt9LEMuZGF0YSk7ay5vbj14O3ZhciBPPUMuZGF0YS5hdHRycz1yKHt9LEMuZGF0YS5hdHRycyk7Ty5ocmVmPWN9ZWxzZSBTLm9uPXh9cmV0dXJuIHQodGhpcy50YWcsUyx0aGlzLiRzbG90cy5kZWZhdWx0KX19O2Z1bmN0aW9uIFQodCl7aWYoISh0Lm1ldGFLZXl8fHQuYWx0S2V5fHx0LmN0cmxLZXl8fHQuc2hpZnRLZXkpJiYhdC5kZWZhdWx0UHJldmVudGVkJiYodm9pZCAwPT09dC5idXR0b258fDA9PT10LmJ1dHRvbikpe2lmKHQuY3VycmVudFRhcmdldCYmdC5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSl7dmFyIGU9dC5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgidGFyZ2V0Iik7aWYoL1xiX2JsYW5rXGIvaS50ZXN0KGUpKXJldHVybn1yZXR1cm4gdC5wcmV2ZW50RGVmYXVsdCYmdC5wcmV2ZW50RGVmYXVsdCgpLCEwfX12YXIgQz0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3c7ZnVuY3Rpb24gayh0LGUsbil7dmFyIHI9dC5jaGFyQXQoMCk7aWYoIi8iPT09cilyZXR1cm4gdDtpZigiPyI9PT1yfHwiIyI9PT1yKXJldHVybiBlK3Q7dmFyIGk9ZS5zcGxpdCgiLyIpO24mJmlbaS5sZW5ndGgtMV18fGkucG9wKCk7Zm9yKHZhciBhPXQucmVwbGFjZSgvXlwvLywiIikuc3BsaXQoIi8iKSxvPTA7bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb107Ii4uIj09PXM/aS5wb3AoKToiLiIhPT1zJiZpLnB1c2gocyl9cmV0dXJuIiIhPT1pWzBdJiZpLnVuc2hpZnQoIiIpLGkuam9pbigiLyIpfWZ1bmN0aW9uIE8odCl7cmV0dXJuIHQucmVwbGFjZSgvXC9cLy9nLCIvIil9dmFyIEU9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSxJPVUsUD1qLE09ZnVuY3Rpb24odCxlKXtyZXR1cm4gQihqKHQsZSkpfSxBPUIsJD1WLEw9bmV3IFJlZ0V4cChbIihcXFxcLikiLCIoW1xcLy5dKT8oPzooPzpcXDooXFx3KykoPzpcXCgoKD86XFxcXC58W15cXFxcKCldKSspXFwpKT98XFwoKCg/OlxcXFwufFteXFxcXCgpXSkrKVxcKSkoWysqP10pP3woXFwqKSkiXS5qb2luKCJ8IiksImciKTtmdW5jdGlvbiBqKHQsZSl7dmFyIG4scj1bXSxpPTAsYT0wLG89IiIscz1lJiZlLmRlbGltaXRlcnx8Ii8iO3doaWxlKG51bGwhPShuPUwuZXhlYyh0KSkpe3ZhciBjPW5bMF0sdT1uWzFdLGw9bi5pbmRleDtpZihvKz10LnNsaWNlKGEsbCksYT1sK2MubGVuZ3RoLHUpbys9dVsxXTtlbHNle3ZhciBmPXRbYV0sZD1uWzJdLGg9blszXSxwPW5bNF0sdj1uWzVdLGc9bls2XSxtPW5bN107byYmKHIucHVzaChvKSxvPSIiKTt2YXIgYj1udWxsIT1kJiZudWxsIT1mJiZmIT09ZCx5PSIrIj09PWd8fCIqIj09PWcsXz0iPyI9PT1nfHwiKiI9PT1nLHc9blsyXXx8cyx4PXB8fHY7ci5wdXNoKHtuYW1lOmh8fGkrKyxwcmVmaXg6ZHx8IiIsZGVsaW1pdGVyOncsb3B0aW9uYWw6XyxyZXBlYXQ6eSxwYXJ0aWFsOmIsYXN0ZXJpc2s6ISFtLHBhdHRlcm46eD9GKHgpOm0/Ii4qIjoiW14iK0QodykrIl0rPyJ9KX19cmV0dXJuIGE8dC5sZW5ndGgmJihvKz10LnN1YnN0cihhKSksbyYmci5wdXNoKG8pLHJ9ZnVuY3Rpb24gUih0KXtyZXR1cm4gZW5jb2RlVVJJKHQpLnJlcGxhY2UoL1tcLz8jXS9nLChmdW5jdGlvbih0KXtyZXR1cm4iJSIrdC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSkpfWZ1bmN0aW9uIE4odCl7cmV0dXJuIGVuY29kZVVSSSh0KS5yZXBsYWNlKC9bPyNdL2csKGZ1bmN0aW9uKHQpe3JldHVybiIlIit0LmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9KSl9ZnVuY3Rpb24gQih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxuPTA7bjx0Lmxlbmd0aDtuKyspIm9iamVjdCI9PT10eXBlb2YgdFtuXSYmKGVbbl09bmV3IFJlZ0V4cCgiXig/OiIrdFtuXS5wYXR0ZXJuKyIpJCIpKTtyZXR1cm4gZnVuY3Rpb24obixyKXtmb3IodmFyIGk9IiIsYT1ufHx7fSxvPXJ8fHt9LHM9by5wcmV0dHk/UjplbmNvZGVVUklDb21wb25lbnQsYz0wO2M8dC5sZW5ndGg7YysrKXt2YXIgdT10W2NdO2lmKCJzdHJpbmciIT09dHlwZW9mIHUpe3ZhciBsLGY9YVt1Lm5hbWVdO2lmKG51bGw9PWYpe2lmKHUub3B0aW9uYWwpe3UucGFydGlhbCYmKGkrPXUucHJlZml4KTtjb250aW51ZX10aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCAiJyt1Lm5hbWUrJyIgdG8gYmUgZGVmaW5lZCcpfWlmKEUoZikpe2lmKCF1LnJlcGVhdCl0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCAiJyt1Lm5hbWUrJyIgdG8gbm90IHJlcGVhdCwgYnV0IHJlY2VpdmVkIGAnK0pTT04uc3RyaW5naWZ5KGYpKyJgIik7aWYoMD09PWYubGVuZ3RoKXtpZih1Lm9wdGlvbmFsKWNvbnRpbnVlO3Rocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkICInK3UubmFtZSsnIiB0byBub3QgYmUgZW1wdHknKX1mb3IodmFyIGQ9MDtkPGYubGVuZ3RoO2QrKyl7aWYobD1zKGZbZF0pLCFlW2NdLnRlc3QobCkpdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYWxsICInK3UubmFtZSsnIiB0byBtYXRjaCAiJyt1LnBhdHRlcm4rJyIsIGJ1dCByZWNlaXZlZCBgJytKU09OLnN0cmluZ2lmeShsKSsiYCIpO2krPSgwPT09ZD91LnByZWZpeDp1LmRlbGltaXRlcikrbH19ZWxzZXtpZihsPXUuYXN0ZXJpc2s/TihmKTpzKGYpLCFlW2NdLnRlc3QobCkpdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgIicrdS5uYW1lKyciIHRvIG1hdGNoICInK3UucGF0dGVybisnIiwgYnV0IHJlY2VpdmVkICInK2wrJyInKTtpKz11LnByZWZpeCtsfX1lbHNlIGkrPXV9cmV0dXJuIGl9fWZ1bmN0aW9uIEQodCl7cmV0dXJuIHQucmVwbGFjZSgvKFsuKyo/PV4hOiR7fSgpW1xdfFwvXFxdKS9nLCJcXCQxIil9ZnVuY3Rpb24gRih0KXtyZXR1cm4gdC5yZXBsYWNlKC8oWz0hOiRcLygpXSkvZywiXFwkMSIpfWZ1bmN0aW9uIFcodCxlKXtyZXR1cm4gdC5rZXlzPWUsdH1mdW5jdGlvbiBIKHQpe3JldHVybiB0LnNlbnNpdGl2ZT8iIjoiaSJ9ZnVuY3Rpb24gVih0LGUsbil7RShlKXx8KG49ZXx8bixlPVtdKSxuPW58fHt9O2Zvcih2YXIgcj1uLnN0cmljdCxpPSExIT09bi5lbmQsYT0iIixvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBzPXRbb107aWYoInN0cmluZyI9PT10eXBlb2YgcylhKz1EKHMpO2Vsc2V7dmFyIGM9RChzLnByZWZpeCksdT0iKD86IitzLnBhdHRlcm4rIikiO2UucHVzaChzKSxzLnJlcGVhdCYmKHUrPSIoPzoiK2MrdSsiKSoiKSx1PXMub3B0aW9uYWw/cy5wYXJ0aWFsP2MrIigiK3UrIik/IjoiKD86IitjKyIoIit1KyIpKT8iOmMrIigiK3UrIikiLGErPXV9fXZhciBsPUQobi5kZWxpbWl0ZXJ8fCIvIiksZj1hLnNsaWNlKC1sLmxlbmd0aCk9PT1sO3JldHVybiByfHwoYT0oZj9hLnNsaWNlKDAsLWwubGVuZ3RoKTphKSsiKD86IitsKyIoPz0kKSk/IiksYSs9aT8iJCI6ciYmZj8iIjoiKD89IitsKyJ8JCkiLFcobmV3IFJlZ0V4cCgiXiIrYSxIKG4pKSxlKX1mdW5jdGlvbiBVKHQsZSxuKXtyZXR1cm4gRShlKXx8KG49ZXx8bixlPVtdKSxuPW58fHt9LHQgaW5zdGFuY2VvZiBSZWdFeHA/ZnVuY3Rpb24odCxlKXt2YXIgbj10LnNvdXJjZS5tYXRjaCgvXCgoPyFcPykvZyk7aWYobilmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyllLnB1c2goe25hbWU6cixwcmVmaXg6bnVsbCxkZWxpbWl0ZXI6bnVsbCxvcHRpb25hbDohMSxyZXBlYXQ6ITEscGFydGlhbDohMSxhc3RlcmlzazohMSxwYXR0ZXJuOm51bGx9KTtyZXR1cm4gVyh0LGUpfSh0LGUpOkUodCk/ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj1bXSxpPTA7aTx0Lmxlbmd0aDtpKyspci5wdXNoKFUodFtpXSxlLG4pLnNvdXJjZSk7dmFyIGE9bmV3IFJlZ0V4cCgiKD86IityLmpvaW4oInwiKSsiKSIsSChuKSk7cmV0dXJuIFcoYSxlKX0odCxlLG4pOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gVihqKHQsbiksZSxuKX0odCxlLG4pfUkucGFyc2U9UCxJLmNvbXBpbGU9TSxJLnRva2Vuc1RvRnVuY3Rpb249QSxJLnRva2Vuc1RvUmVnRXhwPSQ7dmFyIHE9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiB6KHQsZSxuKXt0cnl7dmFyIHI9cVt0XXx8KHFbdF09SS5jb21waWxlKHQpKTtyZXR1cm4gcihlfHx7fSx7cHJldHR5OiEwfSl9Y2F0Y2goaSl7cmV0dXJuIiJ9fWZ1bmN0aW9uIFkodCxlLG4scil7dmFyIGk9ZXx8W10sYT1ufHxPYmplY3QuY3JlYXRlKG51bGwpLG89cnx8T2JqZWN0LmNyZWF0ZShudWxsKTt0LmZvckVhY2goKGZ1bmN0aW9uKHQpeyhmdW5jdGlvbiB0KGUsbixyLGksYSxvKXt2YXIgcz1pLnBhdGgsYz1pLm5hbWU7MDt2YXIgdT1pLnBhdGhUb1JlZ2V4cE9wdGlvbnN8fHt9LGw9ZnVuY3Rpb24odCxlLG4pe258fCh0PXQucmVwbGFjZSgvXC8kLywiIikpO2lmKCIvIj09PXRbMF0pcmV0dXJuIHQ7aWYobnVsbD09ZSlyZXR1cm4gdDtyZXR1cm4gTyhlLnBhdGgrIi8iK3QpfShzLGEsdS5zdHJpY3QpOyJib29sZWFuIj09PXR5cGVvZiBpLmNhc2VTZW5zaXRpdmUmJih1LnNlbnNpdGl2ZT1pLmNhc2VTZW5zaXRpdmUpO3ZhciBmPXtwYXRoOmwscmVnZXg6WChsLHUpLGNvbXBvbmVudHM6aS5jb21wb25lbnRzfHx7ZGVmYXVsdDppLmNvbXBvbmVudH0saW5zdGFuY2VzOnt9LG5hbWU6YyxwYXJlbnQ6YSxtYXRjaEFzOm8scmVkaXJlY3Q6aS5yZWRpcmVjdCxiZWZvcmVFbnRlcjppLmJlZm9yZUVudGVyLG1ldGE6aS5tZXRhfHx7fSxwcm9wczpudWxsPT1pLnByb3BzP3t9OmkuY29tcG9uZW50cz9pLnByb3BzOntkZWZhdWx0OmkucHJvcHN9fTtpLmNoaWxkcmVuJiZpLmNoaWxkcmVuLmZvckVhY2goKGZ1bmN0aW9uKGkpe3ZhciBhPW8/TyhvKyIvIitpLnBhdGgpOnZvaWQgMDt0KGUsbixyLGksZixhKX0pKTtpZih2b2lkIDAhPT1pLmFsaWFzKXt2YXIgZD1BcnJheS5pc0FycmF5KGkuYWxpYXMpP2kuYWxpYXM6W2kuYWxpYXNdO2QuZm9yRWFjaCgoZnVuY3Rpb24obyl7dmFyIHM9e3BhdGg6byxjaGlsZHJlbjppLmNoaWxkcmVufTt0KGUsbixyLHMsYSxmLnBhdGh8fCIvIil9KSl9bltmLnBhdGhdfHwoZS5wdXNoKGYucGF0aCksbltmLnBhdGhdPWYpO2MmJihyW2NdfHwocltjXT1mKSl9KShpLGEsbyx0KX0pKTtmb3IodmFyIHM9MCxjPWkubGVuZ3RoO3M8YztzKyspIioiPT09aVtzXSYmKGkucHVzaChpLnNwbGljZShzLDEpWzBdKSxjLS0scy0tKTtyZXR1cm57cGF0aExpc3Q6aSxwYXRoTWFwOmEsbmFtZU1hcDpvfX1mdW5jdGlvbiBYKHQsZSl7dmFyIG49SSh0LFtdLGUpO3JldHVybiBufWZ1bmN0aW9uIEcodCxlLG4saSl7dmFyIGE9InN0cmluZyI9PT10eXBlb2YgdD97cGF0aDp0fTp0O2lmKGEubmFtZXx8YS5fbm9ybWFsaXplZClyZXR1cm4gYTtpZighYS5wYXRoJiZhLnBhcmFtcyYmZSl7YT1yKHt9LGEpLGEuX25vcm1hbGl6ZWQ9ITA7dmFyIG89cihyKHt9LGUucGFyYW1zKSxhLnBhcmFtcyk7aWYoZS5uYW1lKWEubmFtZT1lLm5hbWUsYS5wYXJhbXM9bztlbHNlIGlmKGUubWF0Y2hlZC5sZW5ndGgpe3ZhciBzPWUubWF0Y2hlZFtlLm1hdGNoZWQubGVuZ3RoLTFdLnBhdGg7YS5wYXRoPXoocyxvLGUucGF0aCl9ZWxzZSAwO3JldHVybiBhfXZhciBjPWZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49IiIscj10LmluZGV4T2YoIiMiKTtyPj0wJiYoZT10LnNsaWNlKHIpLHQ9dC5zbGljZSgwLHIpKTt2YXIgaT10LmluZGV4T2YoIj8iKTtyZXR1cm4gaT49MCYmKG49dC5zbGljZShpKzEpLHQ9dC5zbGljZSgwLGkpKSx7cGF0aDp0LHF1ZXJ5Om4saGFzaDplfX0oYS5wYXRofHwiIiksdT1lJiZlLnBhdGh8fCIvIixmPWMucGF0aD9rKGMucGF0aCx1LG58fGEuYXBwZW5kKTp1LGQ9bChjLnF1ZXJ5LGEucXVlcnksaSYmaS5vcHRpb25zLnBhcnNlUXVlcnkpLGg9YS5oYXNofHxjLmhhc2g7cmV0dXJuIGgmJiIjIiE9PWguY2hhckF0KDApJiYoaD0iIyIraCkse19ub3JtYWxpemVkOiEwLHR5cGU6YS50eXBlLHBhcmFtczphLnBhcmFtc3x8e30scGF0aDpmLHF1ZXJ5OmQsaGFzaDpofX1mdW5jdGlvbiBRKHQsZSl7dmFyIG49WSh0KSxpPW4ucGF0aExpc3QsYT1uLnBhdGhNYXAsbz1uLm5hbWVNYXA7ZnVuY3Rpb24gcyh0LG4scil7dmFyIHM9Ryh0LG4sITEsZSksYz1zLm5hbWU7aWYoYyl7dmFyIGw9b1tjXTtpZighbClyZXR1cm4gdShudWxsLHMpO3ZhciBmPWwucmVnZXgua2V5cy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0Lm9wdGlvbmFsfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZX0pKTtpZigib2JqZWN0IiE9PXR5cGVvZiBzLnBhcmFtcyYmKHMucGFyYW1zPXt9KSxuJiYib2JqZWN0Ij09PXR5cGVvZiBuLnBhcmFtcylmb3IodmFyIGQgaW4gbi5wYXJhbXMpIShkIGluIHMucGFyYW1zKSYmZi5pbmRleE9mKGQpPi0xJiYocy5wYXJhbXNbZF09bi5wYXJhbXNbZF0pO2lmKGwpcmV0dXJuIHMucGF0aD16KGwucGF0aCxzLnBhcmFtcyksdShsLHMscil9ZWxzZSBpZihzLnBhdGgpe3MucGFyYW1zPXMucGFyYW1zfHx7fTtmb3IodmFyIGg9MDtoPGkubGVuZ3RoO2grKyl7dmFyIHA9aVtoXSx2PWFbcF07aWYoSih2LnJlZ2V4LHMucGF0aCxzLnBhcmFtcykpcmV0dXJuIHUodixzLHIpfX1yZXR1cm4gdShudWxsLHMpfWZ1bmN0aW9uIGModCxuKXt2YXIgcj10LnJlZGlyZWN0LGk9ImZ1bmN0aW9uIj09PXR5cGVvZiByP3IocCh0LG4sbnVsbCxlKSk6cjtpZigic3RyaW5nIj09PXR5cGVvZiBpJiYoaT17cGF0aDppfSksIWl8fCJvYmplY3QiIT09dHlwZW9mIGkpcmV0dXJuIHUobnVsbCxuKTt2YXIgYT1pLGM9YS5uYW1lLGw9YS5wYXRoLGY9bi5xdWVyeSxkPW4uaGFzaCxoPW4ucGFyYW1zO2lmKGY9YS5oYXNPd25Qcm9wZXJ0eSgicXVlcnkiKT9hLnF1ZXJ5OmYsZD1hLmhhc093blByb3BlcnR5KCJoYXNoIik/YS5oYXNoOmQsaD1hLmhhc093blByb3BlcnR5KCJwYXJhbXMiKT9hLnBhcmFtczpoLGMpe29bY107cmV0dXJuIHMoe19ub3JtYWxpemVkOiEwLG5hbWU6YyxxdWVyeTpmLGhhc2g6ZCxwYXJhbXM6aH0sdm9pZCAwLG4pfWlmKGwpe3ZhciB2PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGsodCxlLnBhcmVudD9lLnBhcmVudC5wYXRoOiIvIiwhMCl9KGwsdCksZz16KHYsaCk7cmV0dXJuIHMoe19ub3JtYWxpemVkOiEwLHBhdGg6ZyxxdWVyeTpmLGhhc2g6ZH0sdm9pZCAwLG4pfXJldHVybiB1KG51bGwsbil9ZnVuY3Rpb24gdSh0LG4saSl7cmV0dXJuIHQmJnQucmVkaXJlY3Q/Yyh0LGl8fG4pOnQmJnQubWF0Y2hBcz9mdW5jdGlvbih0LGUsbil7dmFyIHI9eihuLGUucGFyYW1zKSxpPXMoe19ub3JtYWxpemVkOiEwLHBhdGg6cn0pO2lmKGkpe3ZhciBhPWkubWF0Y2hlZCxvPWFbYS5sZW5ndGgtMV07cmV0dXJuIGUucGFyYW1zPWkucGFyYW1zLHUobyxlKX1yZXR1cm4gdShudWxsLGUpfSgwLG4sdC5tYXRjaEFzKToobi5wYXJhbXM9bi5wYXJhbXN8fHt9LHQmJnQubWV0YSYmdC5tZXRhLmlkP24ucGFyYW1zLl9faWRfXz10Lm1ldGEuaWQ6bi5wYXJhbXMuX19pZF9ffHwobi5wYXJhbXMuX19pZF9fPWUuaWQpLHQmJnQubWV0YSYmdC5tZXRhLm5hbWUmJih0Lm1ldGEuaWQ/dC5jb21wb25lbnRzLmRlZmF1bHQubmFtZT10Lm1ldGEubmFtZSsiLSIrbi5wYXJhbXMuX19pZF9fOih0PXIoe30sdCksdC5jb21wb25lbnRzPXtkZWZhdWx0OntuYW1lOnQubWV0YS5uYW1lKyItIituLnBhcmFtcy5fX2lkX18scmVuZGVyOnQuY29tcG9uZW50c1siZGVmYXVsdCJdLnJlbmRlcn19KSkscCh0LG4saSxlKSl9cmV0dXJue21hdGNoOnMsYWRkUm91dGVzOmZ1bmN0aW9uKHQpe1kodCxpLGEsbyl9fX1mdW5jdGlvbiBKKHQsZSxuKXt2YXIgcj1lLm1hdGNoKHQpO2lmKCFyKXJldHVybiExO2lmKCFuKXJldHVybiEwO2Zvcih2YXIgaT0xLGE9ci5sZW5ndGg7aTxhOysraSl7dmFyIG89dC5rZXlzW2ktMV0scz0ic3RyaW5nIj09PXR5cGVvZiByW2ldP2RlY29kZVVSSUNvbXBvbmVudChyW2ldKTpyW2ldO28mJihuW28ubmFtZXx8InBhdGhNYXRjaCJdPXMpfXJldHVybiEwfXZhciBLPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gWih0KXt3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe2tleTpsdCgpLGlkOnQuY3VycmVudFJvdXRlJiZ0LmN1cnJlbnRSb3V0ZS5wYXJhbXMuX19pZF9ffHx0LmlkfSwiIix3aW5kb3cubG9jYXRpb24uaHJlZi5yZXBsYWNlKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4sIiIpKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLChmdW5jdGlvbih0KXtldCgpLHQuc3RhdGUmJnQuc3RhdGUua2V5JiZmdW5jdGlvbih0KXtjdD10fSh0LnN0YXRlLmtleSl9KSl9ZnVuY3Rpb24gdHQodCxlLG4scil7aWYodC5hcHApe3ZhciBpPXQub3B0aW9ucy5zY3JvbGxCZWhhdmlvcjtpJiZ0LmFwcC4kbmV4dFRpY2soKGZ1bmN0aW9uKCl7dmFyIGE9ZnVuY3Rpb24oKXt2YXIgdD1sdCgpO2lmKHQpcmV0dXJuIEtbdF19KCksbz1pLmNhbGwodCxlLG4scj9hOm51bGwpO28mJigiZnVuY3Rpb24iPT09dHlwZW9mIG8udGhlbj9vLnRoZW4oKGZ1bmN0aW9uKHQpe2F0KHQsYSl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpezB9KSk6YXQobyxhKSl9KSl9fWZ1bmN0aW9uIGV0KCl7dmFyIHQ9bHQoKTt0JiYoS1t0XT17eDp3aW5kb3cucGFnZVhPZmZzZXQseTp3aW5kb3cucGFnZVlPZmZzZXR9KX1mdW5jdGlvbiBudCh0KXtyZXR1cm4gaXQodC54KXx8aXQodC55KX1mdW5jdGlvbiBydCh0KXtyZXR1cm57eDppdCh0LngpP3QueDp3aW5kb3cucGFnZVhPZmZzZXQseTppdCh0LnkpP3QueTp3aW5kb3cucGFnZVlPZmZzZXR9fWZ1bmN0aW9uIGl0KHQpe3JldHVybiJudW1iZXIiPT09dHlwZW9mIHR9ZnVuY3Rpb24gYXQodCxlKXt2YXIgbj0ib2JqZWN0Ij09PXR5cGVvZiB0O2lmKG4mJiJzdHJpbmciPT09dHlwZW9mIHQuc2VsZWN0b3Ipe3ZhciByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodC5zZWxlY3Rvcik7aWYocil7dmFyIGk9dC5vZmZzZXQmJiJvYmplY3QiPT09dHlwZW9mIHQub2Zmc2V0P3Qub2Zmc2V0Ont9O2k9ZnVuY3Rpb24odCl7cmV0dXJue3g6aXQodC54KT90Lng6MCx5Oml0KHQueSk/dC55OjB9fShpKSxlPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3g6aS5sZWZ0LXIubGVmdC1lLngseTppLnRvcC1yLnRvcC1lLnl9fShyLGkpfWVsc2UgbnQodCkmJihlPXJ0KHQpKX1lbHNlIG4mJm50KHQpJiYoZT1ydCh0KSk7ZSYmd2luZG93LnNjcm9sbFRvKGUueCxlLnkpfXZhciBvdD1DJiZmdW5jdGlvbigpe3ZhciB0PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50O3JldHVybigtMT09PXQuaW5kZXhPZigiQW5kcm9pZCAyLiIpJiYtMT09PXQuaW5kZXhPZigiQW5kcm9pZCA0LjAiKXx8LTE9PT10LmluZGV4T2YoIk1vYmlsZSBTYWZhcmkiKXx8LTEhPT10LmluZGV4T2YoIkNocm9tZSIpfHwtMSE9PXQuaW5kZXhPZigiV2luZG93cyBQaG9uZSIpKSYmKHdpbmRvdy5oaXN0b3J5JiYicHVzaFN0YXRlImluIHdpbmRvdy5oaXN0b3J5KX0oKSxzdD1DJiZ3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5ub3c/d2luZG93LnBlcmZvcm1hbmNlOkRhdGUsY3Q9dXQoKTtmdW5jdGlvbiB1dCgpe3JldHVybiBzdC5ub3coKS50b0ZpeGVkKDMpfWZ1bmN0aW9uIGx0KCl7cmV0dXJuIGN0fWZ1bmN0aW9uIGZ0KHQsZSxuKXtldCgpO3ZhciByPXdpbmRvdy5oaXN0b3J5O3RyeXtuP3IucmVwbGFjZVN0YXRlKHtpZDplLGtleTpjdH0sIiIsdCk6KGN0PXV0KCksci5wdXNoU3RhdGUoe2lkOmUsa2V5OmN0fSwiIix0KSl9Y2F0Y2goaSl7d2luZG93LmxvY2F0aW9uW24/InJlcGxhY2UiOiJhc3NpZ24iXSh0KX19ZnVuY3Rpb24gZHQodCxlKXtmdCh0LGUsITApfWZ1bmN0aW9uIGh0KHQsZSxuKXt2YXIgcj1mdW5jdGlvbihpKXtpPj10Lmxlbmd0aD9uKCk6dFtpXT9lKHRbaV0sKGZ1bmN0aW9uKCl7cihpKzEpfSkpOnIoaSsxKX07cigwKX1mdW5jdGlvbiBwdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLGkpe3ZhciBhPSExLG89MCxzPW51bGw7dnQodCwoZnVuY3Rpb24odCxlLHIsYyl7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiB0JiZ2b2lkIDA9PT10LmNpZCl7YT0hMCxvKys7dmFyIHUsbD1idCgoZnVuY3Rpb24oZSl7KGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fZXNNb2R1bGV8fG10JiYiTW9kdWxlIj09PXRbU3ltYm9sLnRvU3RyaW5nVGFnXX0pKGUpJiYoZT1lLmRlZmF1bHQpLHQucmVzb2x2ZWQ9ImZ1bmN0aW9uIj09PXR5cGVvZiBlP2U6Xy5leHRlbmQoZSksci5jb21wb25lbnRzW2NdPWUsby0tLG88PTAmJmkoKX0pKSxmPWJ0KChmdW5jdGlvbih0KXt2YXIgZT0iRmFpbGVkIHRvIHJlc29sdmUgYXN5bmMgY29tcG9uZW50ICIrYysiOiAiK3Q7c3x8KHM9bih0KT90Om5ldyBFcnJvcihlKSxpKHMpKX0pKTt0cnl7dT10KGwsZil9Y2F0Y2goaCl7ZihoKX1pZih1KWlmKCJmdW5jdGlvbiI9PT10eXBlb2YgdS50aGVuKXUudGhlbihsLGYpO2Vsc2V7dmFyIGQ9dS5jb21wb25lbnQ7ZCYmImZ1bmN0aW9uIj09PXR5cGVvZiBkLnRoZW4mJmQudGhlbihsLGYpfX19KSksYXx8aSgpfX1mdW5jdGlvbiB2dCh0LGUpe3JldHVybiBndCh0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKHQuY29tcG9uZW50cykubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gZSh0LmNvbXBvbmVudHNbbl0sdC5pbnN0YW5jZXNbbl0sdCxuKX0pKX0pKSl9ZnVuY3Rpb24gZ3QodCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sdCl9dmFyIG10PSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2wudG9TdHJpbmdUYWc7ZnVuY3Rpb24gYnQodCl7dmFyIGU9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49W10scj1hcmd1bWVudHMubGVuZ3RoO3doaWxlKHItLSluW3JdPWFyZ3VtZW50c1tyXTtpZighZSlyZXR1cm4gZT0hMCx0LmFwcGx5KHRoaXMsbil9fXZhciB5dD1mdW5jdGlvbih0LGUpe3RoaXMucm91dGVyPXQsdGhpcy5iYXNlPWZ1bmN0aW9uKHQpe2lmKCF0KWlmKEMpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJhc2UiKTt0PWUmJmUuZ2V0QXR0cmlidXRlKCJocmVmIil8fCIvIix0PXQucmVwbGFjZSgvXmh0dHBzPzpcL1wvW15cL10rLywiIil9ZWxzZSB0PSIvIjsiLyIhPT10LmNoYXJBdCgwKSYmKHQ9Ii8iK3QpO3JldHVybiB0LnJlcGxhY2UoL1wvJC8sIiIpfShlKSx0aGlzLmN1cnJlbnQ9Zyx0aGlzLnBlbmRpbmc9bnVsbCx0aGlzLnJlYWR5PSExLHRoaXMucmVhZHlDYnM9W10sdGhpcy5yZWFkeUVycm9yQ2JzPVtdLHRoaXMuZXJyb3JDYnM9W119O2Z1bmN0aW9uIF90KHQsZSxuLHIpe3ZhciBpPXZ0KHQsKGZ1bmN0aW9uKHQscixpLGEpe3ZhciBvPWZ1bmN0aW9uKHQsZSl7ImZ1bmN0aW9uIiE9PXR5cGVvZiB0JiYodD1fLmV4dGVuZCh0KSk7cmV0dXJuIHQub3B0aW9uc1tlXX0odCxlKTtpZihvKXJldHVybiBBcnJheS5pc0FycmF5KG8pP28ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbih0LHIsaSxhKX0pKTpuKG8scixpLGEpfSkpO3JldHVybiBndChyP2kucmV2ZXJzZSgpOmkpfWZ1bmN0aW9uIHd0KHQsZSl7aWYoZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLGFyZ3VtZW50cyl9fXl0LnByb3RvdHlwZS5saXN0ZW49ZnVuY3Rpb24odCl7dGhpcy5jYj10fSx5dC5wcm90b3R5cGUub25SZWFkeT1mdW5jdGlvbih0LGUpe3RoaXMucmVhZHk/dCgpOih0aGlzLnJlYWR5Q2JzLnB1c2godCksZSYmdGhpcy5yZWFkeUVycm9yQ2JzLnB1c2goZSkpfSx5dC5wcm90b3R5cGUub25FcnJvcj1mdW5jdGlvbih0KXt0aGlzLmVycm9yQ2JzLnB1c2godCl9LHl0LnByb3RvdHlwZS50cmFuc2l0aW9uVG89ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXMsaT10aGlzLnJvdXRlci5tYXRjaCh0LHRoaXMuY3VycmVudCk7dGhpcy5jb25maXJtVHJhbnNpdGlvbihpLChmdW5jdGlvbigpe3IudXBkYXRlUm91dGUoaSksZSYmZShpKSxyLmVuc3VyZVVSTCgpLHIucmVhZHl8fChyLnJlYWR5PSEwLHIucmVhZHlDYnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dChpKX0pKSl9KSwoZnVuY3Rpb24odCl7biYmbih0KSx0JiYhci5yZWFkeSYmKHIucmVhZHk9ITAsci5yZWFkeUVycm9yQ2JzLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UodCl9KSkpfSkpfSx5dC5wcm90b3R5cGUuY29uZmlybVRyYW5zaXRpb249ZnVuY3Rpb24oZSxyLGkpe3ZhciBhPXRoaXMsbz10aGlzLmN1cnJlbnQscz1mdW5jdGlvbihlKXtuKGUpJiYoYS5lcnJvckNicy5sZW5ndGg/YS5lcnJvckNicy5mb3JFYWNoKChmdW5jdGlvbih0KXt0KGUpfSkpOihmdW5jdGlvbih0LGUpezB9KCksdC5lcnJvcihlKSkpLGkmJmkoZSl9LGM9ZnVuY3Rpb24odCxlKXt2YXIgbixyPU1hdGgubWF4KHQubGVuZ3RoLGUubGVuZ3RoKTtmb3Iobj0wO248cjtuKyspaWYodFtuXSE9PWVbbl0pYnJlYWs7cmV0dXJue3VwZGF0ZWQ6ZS5zbGljZSgwLG4pLGFjdGl2YXRlZDplLnNsaWNlKG4pLGRlYWN0aXZhdGVkOnQuc2xpY2Uobil9fSh0aGlzLmN1cnJlbnQubWF0Y2hlZCxlLm1hdGNoZWQpLHU9Yy51cGRhdGVkLGw9Yy5kZWFjdGl2YXRlZCxmPWMuYWN0aXZhdGVkLGQ9W10uY29uY2F0KGZ1bmN0aW9uKHQpe3JldHVybiBfdCh0LCJiZWZvcmVSb3V0ZUxlYXZlIix3dCwhMCl9KGwpLHRoaXMucm91dGVyLmJlZm9yZUhvb2tzLGZ1bmN0aW9uKHQpe3JldHVybiBfdCh0LCJiZWZvcmVSb3V0ZVVwZGF0ZSIsd3QpfSh1KSxmLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYmVmb3JlRW50ZXJ9KSkscHQoZikpO3RoaXMucGVuZGluZz1lO3ZhciBoPWZ1bmN0aW9uKHQscil7aWYoYS5wZW5kaW5nIT09ZSlyZXR1cm4gcygpO3RyeXt0KGUsbywoZnVuY3Rpb24odCl7ITE9PT10fHxuKHQpPyhhLmVuc3VyZVVSTCghMCkscyh0KSk6InN0cmluZyI9PT10eXBlb2YgdHx8Im9iamVjdCI9PT10eXBlb2YgdCYmKCJzdHJpbmciPT09dHlwZW9mIHQucGF0aHx8InN0cmluZyI9PT10eXBlb2YgdC5uYW1lKT8ocygpLCJvYmplY3QiPT09dHlwZW9mIHQmJnQucmVwbGFjZT9hLnJlcGxhY2UodCk6YS5wdXNoKHQpKTpyKHQpfSkpfWNhdGNoKGkpe3MoaSl9fTtodChkLGgsKGZ1bmN0aW9uKCl7dmFyIHQ9W10sbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIF90KHQsImJlZm9yZVJvdXRlRW50ZXIiLChmdW5jdGlvbih0LHIsaSxhKXtyZXR1cm4gZnVuY3Rpb24odCxlLG4scixpKXtyZXR1cm4gZnVuY3Rpb24oYSxvLHMpe3JldHVybiB0KGEsbywoZnVuY3Rpb24odCl7cyh0KSwiZnVuY3Rpb24iPT09dHlwZW9mIHQmJnIucHVzaCgoZnVuY3Rpb24oKXsoZnVuY3Rpb24gdChlLG4scixpKXtuW3JdJiYhbltyXS5faXNCZWluZ0Rlc3Ryb3llZD9lKG5bcl0pOmkoKSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0KGUsbixyLGkpfSksMTYpfSkodCxlLmluc3RhbmNlcyxuLGkpfSkpfSkpfX0odCxpLGEsZSxuKX0pKX0oZix0LChmdW5jdGlvbigpe3JldHVybiBhLmN1cnJlbnQ9PT1lfSkpLGk9bi5jb25jYXQoYS5yb3V0ZXIucmVzb2x2ZUhvb2tzKTtodChpLGgsKGZ1bmN0aW9uKCl7aWYoYS5wZW5kaW5nIT09ZSlyZXR1cm4gcygpO2EucGVuZGluZz1udWxsLHIoZSksYS5yb3V0ZXIuYXBwJiZhLnJvdXRlci5hcHAuJG5leHRUaWNrKChmdW5jdGlvbigpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7dCgpfSkpfSkpfSkpfSkpfSx5dC5wcm90b3R5cGUudXBkYXRlUm91dGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50O3RoaXMuY3VycmVudD10LHRoaXMuY2ImJnRoaXMuY2IodCksdGhpcy5yb3V0ZXIuYWZ0ZXJIb29rcy5mb3JFYWNoKChmdW5jdGlvbihuKXtuJiZuKHQsZSl9KSl9O3ZhciB4dD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnNldHVwTGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMucm91dGVyLG49ZS5vcHRpb25zLnNjcm9sbEJlaGF2aW9yLHI9b3QmJm47ciYmWihlKTt2YXIgaT1TdCh0aGlzLmJhc2UpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsKGZ1bmN0aW9uKG4pe3ZhciBhPXQuY3VycmVudCxvPVN0KHQuYmFzZSk7aWYodC5jdXJyZW50IT09Z3x8byE9PWkpe3ZhciBzPW4uc3RhdGUmJm4uc3RhdGUuaWQ7aWYoIXMpcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTt0LnRyYW5zaXRpb25Ubyh7cGF0aDpvLHBhcmFtczp7X19pZF9fOnN9fSwoZnVuY3Rpb24odCl7ciYmdHQoZSx0LGEsITApfSkpfX0pKX0sZS5wcm90b3R5cGUuZ289ZnVuY3Rpb24odCl7d2luZG93Lmhpc3RvcnkuZ28odCl9LGUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXM7aWYoIm9iamVjdCI9PT10eXBlb2YgdCl7dC5wYXJhbXM9dC5wYXJhbXN8fHt9O3ZhciBpPXQucGFyYW1zLl9faWRfXztzd2l0Y2godC50eXBlKXtjYXNlIm5hdmlnYXRlVG8iOml8fHRoaXMucm91dGVyLmlkKys7YnJlYWs7Y2FzZSJyZWRpcmVjdFRvIjpjYXNlInJlTGF1bmNoIjp0aGlzLnJvdXRlci5pZCsrO2JyZWFrO2Nhc2Uic3dpdGNoVGFiIjpicmVha31pfHwodC5wYXJhbXMuX19pZF9fPXRoaXMucm91dGVyLmlkKX12YXIgYT10aGlzLmN1cnJlbnQ7dGhpcy50cmFuc2l0aW9uVG8odCwoZnVuY3Rpb24obil7ZnQoTyhyLmJhc2Urbi5mdWxsUGF0aCksdC5wYXJhbXMuX19pZF9fKSx0dChyLnJvdXRlcixuLGEsITEpLGUmJmUobil9KSxuKX0sZS5wcm90b3R5cGUucmVwbGFjZT1mdW5jdGlvbih0LGUsbil7dmFyIHI9dGhpcztpZigib2JqZWN0Ij09PXR5cGVvZiB0KXtzd2l0Y2godC50eXBlKXtjYXNlIm5hdmlnYXRlVG8iOmNhc2UicmVkaXJlY3RUbyI6Y2FzZSJyZUxhdW5jaCI6dGhpcy5yb3V0ZXIuaWQrKzticmVhaztjYXNlInN3aXRjaFRhYiI6YnJlYWt9dC5wYXJhbXM9dC5wYXJhbXN8fHt9LHQucGFyYW1zLl9faWRfXz10aGlzLnJvdXRlci5pZH12YXIgaT10aGlzLmN1cnJlbnQ7dGhpcy50cmFuc2l0aW9uVG8odCwoZnVuY3Rpb24obil7ZHQoTyhyLmJhc2Urbi5mdWxsUGF0aCksdC5wYXJhbXMuX19pZF9fKSx0dChyLnJvdXRlcixuLGksITEpLGUmJmUobil9KSxuKX0sZS5wcm90b3R5cGUuZW5zdXJlVVJMPWZ1bmN0aW9uKHQpe2lmKFN0KHRoaXMuYmFzZSkhPT10aGlzLmN1cnJlbnQuZnVsbFBhdGgpe3ZhciBlPU8odGhpcy5iYXNlK3RoaXMuY3VycmVudC5mdWxsUGF0aCksbj10aGlzLmN1cnJlbnQucGFyYW1zLl9faWRfXzt0P2Z0KGUsbik6ZHQoZSxuKX19LGUucHJvdG90eXBlLmdldEN1cnJlbnRMb2NhdGlvbj1mdW5jdGlvbigpe3JldHVybntwYXRoOlN0KHRoaXMuYmFzZSkscGFyYW1zOntfX2lkX186Kyt0aGlzLnJvdXRlci5pZH19fSxlfSh5dCk7ZnVuY3Rpb24gU3QodCl7dmFyIGU9ZGVjb2RlVVJJKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7cmV0dXJuIHQmJjA9PT1lLmluZGV4T2YodCkmJihlPWUuc2xpY2UodC5sZW5ndGgpKSwoZXx8Ii8iKStkKGwod2luZG93LmxvY2F0aW9uLnNlYXJjaCkpK3dpbmRvdy5sb2NhdGlvbi5oYXNofXZhciBUdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbixyKXt0LmNhbGwodGhpcyxlLG4pLHImJmZ1bmN0aW9uKHQpe3ZhciBlPVN0KHQpO2lmKCEvXlwvIy8udGVzdChlKSlyZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlcGxhY2UoTyh0KyIvIyIrZSkpLCEwfSh0aGlzLmJhc2UpfHxDdCgpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5zZXR1cExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLnJvdXRlcixuPWUub3B0aW9ucy5zY3JvbGxCZWhhdmlvcixyPW90JiZuO3ImJlooZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIob3Q/InBvcHN0YXRlIjoiaGFzaGNoYW5nZSIsKGZ1bmN0aW9uKGUpe3ZhciBuPXQuY3VycmVudDtpZihDdCgpKXt2YXIgaT1lLnN0YXRlJiZlLnN0YXRlLmlkO2lmKCFpKXJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7dC50cmFuc2l0aW9uVG8oe3BhdGg6a3QoKSxwYXJhbXM6e19faWRfXzppfX0sKGZ1bmN0aW9uKGUpe3ImJnR0KHQucm91dGVyLGUsbiwhMCksb3R8fEl0KGUuZnVsbFBhdGgsZS5wYXJhbXMuX19pZF9fKX0pKX19KSl9LGUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXM7aWYoIm9iamVjdCI9PT10eXBlb2YgdCl7dC5wYXJhbXM9dC5wYXJhbXN8fHt9O3ZhciBpPXQucGFyYW1zLl9faWRfXztzd2l0Y2godC50eXBlKXtjYXNlIm5hdmlnYXRlVG8iOml8fHRoaXMucm91dGVyLmlkKys7YnJlYWs7Y2FzZSJyZWRpcmVjdFRvIjpjYXNlInJlTGF1bmNoIjp0aGlzLnJvdXRlci5pZCsrO2JyZWFrO2Nhc2Uic3dpdGNoVGFiIjpicmVha31pfHwodC5wYXJhbXMuX19pZF9fPXRoaXMucm91dGVyLmlkKX12YXIgYT10aGlzLmN1cnJlbnQsbz10aGlzLnJvdXRlci5pZDt0aGlzLnRyYW5zaXRpb25Ubyh0LChmdW5jdGlvbih0KXtFdCh0LmZ1bGxQYXRoLG8pLHR0KHIucm91dGVyLHQsYSwhMSksZSYmZSh0KX0pLG4pfSxlLnByb3RvdHlwZS5yZXBsYWNlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO2lmKCJvYmplY3QiPT09dHlwZW9mIHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UibmF2aWdhdGVUbyI6Y2FzZSJyZWRpcmVjdFRvIjpjYXNlInJlTGF1bmNoIjp0aGlzLnJvdXRlci5pZCsrO2JyZWFrO2Nhc2Uic3dpdGNoVGFiIjpicmVha310LnBhcmFtcz10LnBhcmFtc3x8e30sdC5wYXJhbXMuX19pZF9fPXRoaXMucm91dGVyLmlkfXZhciBpPXRoaXMuY3VycmVudCxhPXRoaXMucm91dGVyLmlkO3RoaXMudHJhbnNpdGlvblRvKHQsKGZ1bmN0aW9uKHQpe0l0KHQuZnVsbFBhdGgsYSksdHQoci5yb3V0ZXIsdCxpLCExKSxlJiZlKHQpfSksbil9LGUucHJvdG90eXBlLmdvPWZ1bmN0aW9uKHQpe3dpbmRvdy5oaXN0b3J5LmdvKHQpfSxlLnByb3RvdHlwZS5lbnN1cmVVUkw9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50LmZ1bGxQYXRoO2t0KCkhPT1lJiYodD9FdChlLHRoaXMuY3VycmVudC5wYXJhbXMuX19pZF9fKTpJdChlLHRoaXMuY3VycmVudC5wYXJhbXMuX19pZF9fKSl9LGUucHJvdG90eXBlLmdldEN1cnJlbnRMb2NhdGlvbj1mdW5jdGlvbigpe3JldHVybntwYXRoOmt0KCkscGFyYW1zOntfX2lkX186Kyt0aGlzLnJvdXRlci5pZH19fSxlfSh5dCk7ZnVuY3Rpb24gQ3QoKXt2YXIgdD1rdCgpO3JldHVybiIvIj09PXQuY2hhckF0KDApfHwoSXQoIi8iK3QpLCExKX1mdW5jdGlvbiBrdCgpe3ZhciB0PXdpbmRvdy5sb2NhdGlvbi5ocmVmLGU9dC5pbmRleE9mKCIjIik7cmV0dXJuLTE9PT1lPyIiOmRlY29kZVVSSSh0LnNsaWNlKGUrMSkpfWZ1bmN0aW9uIE90KHQpe3ZhciBlPXdpbmRvdy5sb2NhdGlvbi5ocmVmLG49ZS5pbmRleE9mKCIjIikscj1uPj0wP2Uuc2xpY2UoMCxuKTplO3JldHVybiByKyIjIit0fWZ1bmN0aW9uIEV0KHQsZSl7b3Q/ZnQoT3QodCksZSk6d2luZG93LmxvY2F0aW9uLmhhc2g9dH1mdW5jdGlvbiBJdCh0LGUpe290P2R0KE90KHQpLGUpOndpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKE90KHQpKX12YXIgUHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLG4pe3QuY2FsbCh0aGlzLGUsbiksdGhpcy5zdGFjaz1bXSx0aGlzLmluZGV4PS0xfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO3RoaXMudHJhbnNpdGlvblRvKHQsKGZ1bmN0aW9uKHQpe3Iuc3RhY2s9ci5zdGFjay5zbGljZSgwLHIuaW5kZXgrMSkuY29uY2F0KHQpLHIuaW5kZXgrKyxlJiZlKHQpfSksbil9LGUucHJvdG90eXBlLnJlcGxhY2U9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXM7dGhpcy50cmFuc2l0aW9uVG8odCwoZnVuY3Rpb24odCl7ci5zdGFjaz1yLnN0YWNrLnNsaWNlKDAsci5pbmRleCkuY29uY2F0KHQpLGUmJmUodCl9KSxuKX0sZS5wcm90b3R5cGUuZ289ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuaW5kZXgrdDtpZighKG48MHx8bj49dGhpcy5zdGFjay5sZW5ndGgpKXt2YXIgcj10aGlzLnN0YWNrW25dO3RoaXMuY29uZmlybVRyYW5zaXRpb24ociwoZnVuY3Rpb24oKXtlLmluZGV4PW4sZS51cGRhdGVSb3V0ZShyKX0pKX19LGUucHJvdG90eXBlLmdldEN1cnJlbnRMb2NhdGlvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07cmV0dXJuIHQ/dC5mdWxsUGF0aDoiLyJ9LGUucHJvdG90eXBlLmVuc3VyZVVSTD1mdW5jdGlvbigpe30sZX0oeXQpLE10PWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PXt9KSx0aGlzLmFwcD1udWxsLHRoaXMuYXBwcz1bXSx0aGlzLm9wdGlvbnM9dCx0aGlzLmJlZm9yZUhvb2tzPVtdLHRoaXMucmVzb2x2ZUhvb2tzPVtdLHRoaXMuYWZ0ZXJIb29rcz1bXSx0aGlzLm1hdGNoZXI9USh0LnJvdXRlc3x8W10sdGhpcyksdGhpcy5pZD10LmlkfHwxLHRoaXMubWluSWQ9dC5pZHx8MTt2YXIgZT10Lm1vZGV8fCJoYXNoIjtzd2l0Y2godGhpcy5mYWxsYmFjaz0iaGlzdG9yeSI9PT1lJiYhb3QmJiExIT09dC5mYWxsYmFjayx0aGlzLmZhbGxiYWNrJiYoZT0iaGFzaCIpLEN8fChlPSJhYnN0cmFjdCIpLHRoaXMubW9kZT1lLGUpe2Nhc2UiaGlzdG9yeSI6dGhpcy5oaXN0b3J5PW5ldyB4dCh0aGlzLHQuYmFzZSk7YnJlYWs7Y2FzZSJoYXNoIjp0aGlzLmhpc3Rvcnk9bmV3IFR0KHRoaXMsdC5iYXNlLHRoaXMuZmFsbGJhY2spO2JyZWFrO2Nhc2UiYWJzdHJhY3QiOnRoaXMuaGlzdG9yeT1uZXcgUHQodGhpcyx0LmJhc2UpO2JyZWFrO2RlZmF1bHQ6MH19LEF0PXtjdXJyZW50Um91dGU6e2NvbmZpZ3VyYWJsZTohMH19O2Z1bmN0aW9uICR0KHQsZSl7cmV0dXJuIHQucHVzaChlKSxmdW5jdGlvbigpe3ZhciBuPXQuaW5kZXhPZihlKTtuPi0xJiZ0LnNwbGljZShuLDEpfX1NdC5wcm90b3R5cGUubWF0Y2g9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLm1hdGNoZXIubWF0Y2godCxlLG4pfSxBdC5jdXJyZW50Um91dGUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGlzdG9yeSYmdGhpcy5oaXN0b3J5LmN1cnJlbnR9LE10LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5hcHBzLnB1c2godCksIXRoaXMuYXBwKXt0aGlzLmFwcD10O3ZhciBuPXRoaXMuaGlzdG9yeTtpZihuIGluc3RhbmNlb2YgeHQpe3ZhciByPWZ1bmN0aW9uKCl7bi5zZXR1cExpc3RlbmVycygpfTtuLnRyYW5zaXRpb25UbyhuLmdldEN1cnJlbnRMb2NhdGlvbigpLHIscil9ZWxzZSBpZihuIGluc3RhbmNlb2YgVHQpe3ZhciBpPWZ1bmN0aW9uKCl7bi5zZXR1cExpc3RlbmVycygpfTtuLnRyYW5zaXRpb25UbyhuLmdldEN1cnJlbnRMb2NhdGlvbigpLGksaSl9bi5saXN0ZW4oKGZ1bmN0aW9uKHQpe2UuYXBwcy5mb3JFYWNoKChmdW5jdGlvbihlKXtlLl9yb3V0ZT10fSkpfSkpfX0sTXQucHJvdG90eXBlLmJlZm9yZUVhY2g9ZnVuY3Rpb24odCl7cmV0dXJuICR0KHRoaXMuYmVmb3JlSG9va3MsdCl9LE10LnByb3RvdHlwZS5iZWZvcmVSZXNvbHZlPWZ1bmN0aW9uKHQpe3JldHVybiAkdCh0aGlzLnJlc29sdmVIb29rcyx0KX0sTXQucHJvdG90eXBlLmFmdGVyRWFjaD1mdW5jdGlvbih0KXtyZXR1cm4gJHQodGhpcy5hZnRlckhvb2tzLHQpfSxNdC5wcm90b3R5cGUub25SZWFkeT1mdW5jdGlvbih0LGUpe3RoaXMuaGlzdG9yeS5vblJlYWR5KHQsZSl9LE10LnByb3RvdHlwZS5vbkVycm9yPWZ1bmN0aW9uKHQpe3RoaXMuaGlzdG9yeS5vbkVycm9yKHQpfSxNdC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0LGUsbil7dGhpcy5oaXN0b3J5LnB1c2godCxlLG4pfSxNdC5wcm90b3R5cGUucmVwbGFjZT1mdW5jdGlvbih0LGUsbil7dGhpcy5oaXN0b3J5LnJlcGxhY2UodCxlLG4pfSxNdC5wcm90b3R5cGUuZ289ZnVuY3Rpb24odCl7dGhpcy5oaXN0b3J5LmdvKHQpfSxNdC5wcm90b3R5cGUuYmFjaz1mdW5jdGlvbigpe3RoaXMuZ28oLTEpfSxNdC5wcm90b3R5cGUuZm9yd2FyZD1mdW5jdGlvbigpe3RoaXMuZ28oMSl9LE10LnByb3RvdHlwZS5nZXRNYXRjaGVkQ29tcG9uZW50cz1mdW5jdGlvbih0KXt2YXIgZT10P3QubWF0Y2hlZD90OnRoaXMucmVzb2x2ZSh0KS5yb3V0ZTp0aGlzLmN1cnJlbnRSb3V0ZTtyZXR1cm4gZT9bXS5jb25jYXQuYXBwbHkoW10sZS5tYXRjaGVkLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKHQuY29tcG9uZW50cykubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5jb21wb25lbnRzW2VdfSkpfSkpKTpbXX0sTXQucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24odCxlLG4pe3ZhciByPUcodCxlfHx0aGlzLmhpc3RvcnkuY3VycmVudCxuLHRoaXMpLGk9dGhpcy5tYXRjaChyLGUpLGE9aS5yZWRpcmVjdGVkRnJvbXx8aS5mdWxsUGF0aCxvPXRoaXMuaGlzdG9yeS5iYXNlLHM9ZnVuY3Rpb24odCxlLG4pe3ZhciByPSJoYXNoIj09PW4/IiMiK2U6ZTtyZXR1cm4gdD9PKHQrIi8iK3IpOnJ9KG8sYSx0aGlzLm1vZGUpO3JldHVybntsb2NhdGlvbjpyLHJvdXRlOmksaHJlZjpzLG5vcm1hbGl6ZWRUbzpyLHJlc29sdmVkOml9fSxNdC5wcm90b3R5cGUuYWRkUm91dGVzPWZ1bmN0aW9uKHQpe3RoaXMubWF0Y2hlci5hZGRSb3V0ZXModCksdGhpcy5oaXN0b3J5LmN1cnJlbnQhPT1nJiZ0aGlzLmhpc3RvcnkudHJhbnNpdGlvblRvKHRoaXMuaGlzdG9yeS5nZXRDdXJyZW50TG9jYXRpb24oKSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKE10LnByb3RvdHlwZSxBdCksTXQuaW5zdGFsbD1mdW5jdGlvbiB0KGUpe2lmKCF0Lmluc3RhbGxlZHx8XyE9PWUpe3QuaW5zdGFsbGVkPSEwLF89ZTt2YXIgbj1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dH0scj1mdW5jdGlvbih0LGUpe3ZhciByPXQuJG9wdGlvbnMuX3BhcmVudFZub2RlO24ocikmJm4ocj1yLmRhdGEpJiZuKHI9ci5yZWdpc3RlclJvdXRlSW5zdGFuY2UpJiZyKHQsZSl9O2UubWl4aW4oe2JlZm9yZUNyZWF0ZTpmdW5jdGlvbigpe24odGhpcy4kb3B0aW9ucy5yb3V0ZXIpPyh0aGlzLl9yb3V0ZXJSb290PXRoaXMsdGhpcy5fcm91dGVyPXRoaXMuJG9wdGlvbnMucm91dGVyLHRoaXMuX3JvdXRlci5pbml0KHRoaXMpLGUudXRpbC5kZWZpbmVSZWFjdGl2ZSh0aGlzLCJfcm91dGUiLHRoaXMuX3JvdXRlci5oaXN0b3J5LmN1cnJlbnQpKTp0aGlzLl9yb3V0ZXJSb290PXRoaXMuJHBhcmVudCYmdGhpcy4kcGFyZW50Ll9yb3V0ZXJSb290fHx0aGlzLHIodGhpcyx0aGlzKX0sZGVzdHJveWVkOmZ1bmN0aW9uKCl7cih0aGlzKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIiRyb3V0ZXIiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm91dGVyUm9vdC5fcm91dGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiJHJvdXRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JvdXRlclJvb3QuX3JvdXRlfX0pLGUuY29tcG9uZW50KCJSb3V0ZXJWaWV3IixpKSxlLmNvbXBvbmVudCgiUm91dGVyTGluayIsUyk7dmFyIGE9ZS5jb25maWcub3B0aW9uTWVyZ2VTdHJhdGVnaWVzO2EuYmVmb3JlUm91dGVFbnRlcj1hLmJlZm9yZVJvdXRlTGVhdmU9YS5iZWZvcmVSb3V0ZVVwZGF0ZT1hLmNyZWF0ZWR9fSxNdC52ZXJzaW9uPSIzLjAuMSIsZVsiZGVmYXVsdCJdPU10fS5jYWxsKHRoaXMsbigiNWE1MiIpWyJkZWZhdWx0Il0pfSxhOTI1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpLGZ1bmN0aW9uKHQpewovKiEKICogdnVlLWkxOG4gdjguMjguMiAKICogKGMpIDIwMjIga2F6dXlhIGthd2FndWNoaQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuCiAqLwp2YXIgbj1bImNvbXBhY3REaXNwbGF5IiwiY3VycmVuY3kiLCJjdXJyZW5jeURpc3BsYXkiLCJjdXJyZW5jeVNpZ24iLCJsb2NhbGVNYXRjaGVyIiwibm90YXRpb24iLCJudW1iZXJpbmdTeXN0ZW0iLCJzaWduRGlzcGxheSIsInN0eWxlIiwidW5pdCIsInVuaXREaXNwbGF5IiwidXNlR3JvdXBpbmciLCJtaW5pbXVtSW50ZWdlckRpZ2l0cyIsIm1pbmltdW1GcmFjdGlvbkRpZ2l0cyIsIm1heGltdW1GcmFjdGlvbkRpZ2l0cyIsIm1pbmltdW1TaWduaWZpY2FudERpZ2l0cyIsIm1heGltdW1TaWduaWZpY2FudERpZ2l0cyJdLHI9WyJkYXRlU3R5bGUiLCJ0aW1lU3R5bGUiLCJjYWxlbmRhciIsImxvY2FsZU1hdGNoZXIiLCJob3VyMTIiLCJob3VyQ3ljbGUiLCJ0aW1lWm9uZSIsImZvcm1hdE1hdGNoZXIiLCJ3ZWVrZGF5IiwiZXJhIiwieWVhciIsIm1vbnRoIiwiZGF5IiwiaG91ciIsIm1pbnV0ZSIsInNlY29uZCIsInRpbWVab25lTmFtZSJdO2Z1bmN0aW9uIGkoZSxuKXsidW5kZWZpbmVkIiE9PXR5cGVvZiB0JiYodC53YXJuKCJbdnVlLWkxOG5dICIrZSksbiYmdC53YXJuKG4uc3RhY2spKX12YXIgYT1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIG8odCl7cmV0dXJuIG51bGwhPT10JiYib2JqZWN0Ij09PXR5cGVvZiB0fWZ1bmN0aW9uIHModCl7cmV0dXJuImJvb2xlYW4iPT09dHlwZW9mIHR9ZnVuY3Rpb24gYyh0KXtyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiB0fXZhciB1PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gbCh0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PXUuY2FsbCh0KX1mdW5jdGlvbiBmKHQpe3JldHVybiBudWxsPT09dHx8dm9pZCAwPT09dH1mdW5jdGlvbiBkKHQpe3JldHVybiJmdW5jdGlvbiI9PT10eXBlb2YgdH1mdW5jdGlvbiBoKCl7dmFyIHQ9W10sZT1hcmd1bWVudHMubGVuZ3RoO3doaWxlKGUtLSl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1udWxsLHI9bnVsbDtyZXR1cm4gMT09PXQubGVuZ3RoP28odFswXSl8fGEodFswXSk/cj10WzBdOiJzdHJpbmciPT09dHlwZW9mIHRbMF0mJihuPXRbMF0pOjI9PT10Lmxlbmd0aCYmKCJzdHJpbmciPT09dHlwZW9mIHRbMF0mJihuPXRbMF0pLChvKHRbMV0pfHxhKHRbMV0pKSYmKHI9dFsxXSkpLHtsb2NhbGU6bixwYXJhbXM6cn19ZnVuY3Rpb24gcCh0KXtyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0KSl9ZnVuY3Rpb24gdih0LGUpe3JldHVybiEhfnQuaW5kZXhPZihlKX12YXIgZz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIG0odCxlKXtyZXR1cm4gZy5jYWxsKHQsZSl9ZnVuY3Rpb24gYih0KXtmb3IodmFyIGU9YXJndW1lbnRzLG49T2JqZWN0KHQpLHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXt2YXIgaT1lW3JdO2lmKHZvaWQgMCE9PWkmJm51bGwhPT1pKXt2YXIgYT12b2lkIDA7Zm9yKGEgaW4gaSltKGksYSkmJihvKGlbYV0pP25bYV09YihuW2FdLGlbYV0pOm5bYV09aVthXSl9fXJldHVybiBufWZ1bmN0aW9uIHkodCxlKXtpZih0PT09ZSlyZXR1cm4hMDt2YXIgbj1vKHQpLHI9byhlKTtpZighbnx8IXIpcmV0dXJuIW4mJiFyJiZTdHJpbmcodCk9PT1TdHJpbmcoZSk7dHJ5e3ZhciBpPWEodCkscz1hKGUpO2lmKGkmJnMpcmV0dXJuIHQubGVuZ3RoPT09ZS5sZW5ndGgmJnQuZXZlcnkoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIHkodCxlW25dKX0pKTtpZihpfHxzKXJldHVybiExO3ZhciBjPU9iamVjdC5rZXlzKHQpLHU9T2JqZWN0LmtleXMoZSk7cmV0dXJuIGMubGVuZ3RoPT09dS5sZW5ndGgmJmMuZXZlcnkoKGZ1bmN0aW9uKG4pe3JldHVybiB5KHRbbl0sZVtuXSl9KSl9Y2F0Y2gobCl7cmV0dXJuITF9fWZ1bmN0aW9uIF8odCl7cmV0dXJuIG51bGwhPXQmJk9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGUpeyJzdHJpbmciPT10eXBlb2YgdFtlXSYmKHRbZV09ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csIiZhcG9zOyIpfSh0W2VdKSl9KSksdH12YXIgdz17bmFtZToiaTE4biIsZnVuY3Rpb25hbDohMCxwcm9wczp7dGFnOnt0eXBlOltTdHJpbmcsQm9vbGVhbixPYmplY3RdLGRlZmF1bHQ6InNwYW4ifSxwYXRoOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH0sbG9jYWxlOnt0eXBlOlN0cmluZ30scGxhY2VzOnt0eXBlOltBcnJheSxPYmplY3RdfX0scmVuZGVyOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5kYXRhLHI9ZS5wYXJlbnQsaT1lLnByb3BzLGE9ZS5zbG90cyxvPXIuJGkxOG47aWYobyl7dmFyIHM9aS5wYXRoLGM9aS5sb2NhbGUsdT1pLnBsYWNlcyxsPWEoKSxmPW8uaShzLGMsZnVuY3Rpb24odCl7dmFyIGU7Zm9yKGUgaW4gdClpZigiZGVmYXVsdCIhPT1lKXJldHVybiExO3JldHVybiBCb29sZWFuKGUpfShsKXx8dT9mdW5jdGlvbih0LGUpe3ZhciBuPWU/ZnVuY3Rpb24odCl7MDtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90LnJlZHVjZShTLHt9KTpPYmplY3QuYXNzaWduKHt9LHQpfShlKTp7fTtpZighdClyZXR1cm4gbjt0PXQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC50YWd8fCIiIT09dC50ZXh0LnRyaW0oKX0pKTt2YXIgcj10LmV2ZXJ5KFQpOzA7cmV0dXJuIHQucmVkdWNlKHI/eDpTLG4pfShsLmRlZmF1bHQsdSk6bCksZD1pLnRhZyYmITAhPT1pLnRhZ3x8ITE9PT1pLnRhZz9pLnRhZzoic3BhbiI7cmV0dXJuIGQ/dChkLG4sZik6Zn19fTtmdW5jdGlvbiB4KHQsZSl7cmV0dXJuIGUuZGF0YSYmZS5kYXRhLmF0dHJzJiZlLmRhdGEuYXR0cnMucGxhY2UmJih0W2UuZGF0YS5hdHRycy5wbGFjZV09ZSksdH1mdW5jdGlvbiBTKHQsZSxuKXtyZXR1cm4gdFtuXT1lLHR9ZnVuY3Rpb24gVCh0KXtyZXR1cm4gQm9vbGVhbih0LmRhdGEmJnQuZGF0YS5hdHRycyYmdC5kYXRhLmF0dHJzLnBsYWNlKX12YXIgQyxrPXtuYW1lOiJpMThuLW4iLGZ1bmN0aW9uYWw6ITAscHJvcHM6e3RhZzp7dHlwZTpbU3RyaW5nLEJvb2xlYW4sT2JqZWN0XSxkZWZhdWx0OiJzcGFuIn0sdmFsdWU6e3R5cGU6TnVtYmVyLHJlcXVpcmVkOiEwfSxmb3JtYXQ6e3R5cGU6W1N0cmluZyxPYmplY3RdfSxsb2NhbGU6e3R5cGU6U3RyaW5nfX0scmVuZGVyOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5wcm9wcyxpPWUucGFyZW50LGE9ZS5kYXRhLHM9aS4kaTE4bjtpZighcylyZXR1cm4gbnVsbDt2YXIgdT1udWxsLGw9bnVsbDtjKHIuZm9ybWF0KT91PXIuZm9ybWF0Om8oci5mb3JtYXQpJiYoci5mb3JtYXQua2V5JiYodT1yLmZvcm1hdC5rZXkpLGw9T2JqZWN0LmtleXMoci5mb3JtYXQpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXt2YXIgaTtyZXR1cm4gdihuLGUpP09iamVjdC5hc3NpZ24oe30sdCwoaT17fSxpW2VdPXIuZm9ybWF0W2VdLGkpKTp0fSksbnVsbCkpO3ZhciBmPXIubG9jYWxlfHxzLmxvY2FsZSxkPXMuX250cChyLnZhbHVlLGYsdSxsKSxoPWQubWFwKChmdW5jdGlvbih0LGUpe3ZhciBuLHI9YS5zY29wZWRTbG90cyYmYS5zY29wZWRTbG90c1t0LnR5cGVdO3JldHVybiByP3IoKG49e30sblt0LnR5cGVdPXQudmFsdWUsbi5pbmRleD1lLG4ucGFydHM9ZCxuKSk6dC52YWx1ZX0pKSxwPXIudGFnJiYhMCE9PXIudGFnfHwhMT09PXIudGFnP3IudGFnOiJzcGFuIjtyZXR1cm4gcD90KHAse2F0dHJzOmEuYXR0cnMsY2xhc3M6YVsiY2xhc3MiXSxzdGF0aWNDbGFzczphLnN0YXRpY0NsYXNzfSxoKTpofX07ZnVuY3Rpb24gTyh0LGUsbil7UCh0LG4pJiZNKHQsZSxuKX1mdW5jdGlvbiBFKHQsZSxuLHIpe2lmKFAodCxuKSl7dmFyIGk9bi5jb250ZXh0LiRpMThuOyhmdW5jdGlvbih0LGUpe3ZhciBuPWUuY29udGV4dDtyZXR1cm4gdC5fbG9jYWxlPT09bi4kaTE4bi5sb2NhbGV9KSh0LG4pJiZ5KGUudmFsdWUsZS5vbGRWYWx1ZSkmJnkodC5fbG9jYWxlTWVzc2FnZSxpLmdldExvY2FsZU1lc3NhZ2UoaS5sb2NhbGUpKXx8TSh0LGUsbil9fWZ1bmN0aW9uIEkodCxlLG4scil7dmFyIGE9bi5jb250ZXh0O2lmKGEpe3ZhciBvPW4uY29udGV4dC4kaTE4bnx8e307ZS5tb2RpZmllcnMucHJlc2VydmV8fG8ucHJlc2VydmVEaXJlY3RpdmVDb250ZW50fHwodC50ZXh0Q29udGVudD0iIiksdC5fdnQ9dm9pZCAwLGRlbGV0ZSB0WyJfdnQiXSx0Ll9sb2NhbGU9dm9pZCAwLGRlbGV0ZSB0WyJfbG9jYWxlIl0sdC5fbG9jYWxlTWVzc2FnZT12b2lkIDAsZGVsZXRlIHRbIl9sb2NhbGVNZXNzYWdlIl19ZWxzZSBpKCJWdWUgaW5zdGFuY2UgZG9lcyBub3QgZXhpc3RzIGluIFZOb2RlIGNvbnRleHQiKX1mdW5jdGlvbiBQKHQsZSl7dmFyIG49ZS5jb250ZXh0O3JldHVybiBuPyEhbi4kaTE4bnx8KGkoIlZ1ZUkxOG4gaW5zdGFuY2UgZG9lcyBub3QgZXhpc3RzIGluIFZ1ZSBpbnN0YW5jZSIpLCExKTooaSgiVnVlIGluc3RhbmNlIGRvZXMgbm90IGV4aXN0cyBpbiBWTm9kZSBjb250ZXh0IiksITEpfWZ1bmN0aW9uIE0odCxlLG4pe3ZhciByLGEsbz1lLnZhbHVlLHM9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGk7Yyh0KT9lPXQ6bCh0KSYmKGU9dC5wYXRoLG49dC5sb2NhbGUscj10LmFyZ3MsaT10LmNob2ljZSk7cmV0dXJue3BhdGg6ZSxsb2NhbGU6bixhcmdzOnIsY2hvaWNlOml9fShvKSx1PXMucGF0aCxmPXMubG9jYWxlLGQ9cy5hcmdzLGg9cy5jaG9pY2U7aWYodXx8Znx8ZClpZih1KXt2YXIgcD1uLmNvbnRleHQ7dC5fdnQ9dC50ZXh0Q29udGVudD1udWxsIT1oPyhyPXAuJGkxOG4pLnRjLmFwcGx5KHIsW3UsaF0uY29uY2F0KEEoZixkKSkpOihhPXAuJGkxOG4pLnQuYXBwbHkoYSxbdV0uY29uY2F0KEEoZixkKSkpLHQuX2xvY2FsZT1wLiRpMThuLmxvY2FsZSx0Ll9sb2NhbGVNZXNzYWdlPXAuJGkxOG4uZ2V0TG9jYWxlTWVzc2FnZShwLiRpMThuLmxvY2FsZSl9ZWxzZSBpKCJgcGF0aGAgaXMgcmVxdWlyZWQgaW4gdi10IGRpcmVjdGl2ZSIpO2Vsc2UgaSgidmFsdWUgdHlwZSBub3Qgc3VwcG9ydGVkIil9ZnVuY3Rpb24gQSh0LGUpe3ZhciBuPVtdO3JldHVybiB0JiZuLnB1c2godCksZSYmKEFycmF5LmlzQXJyYXkoZSl8fGwoZSkpJiZuLnB1c2goZSksbn1mdW5jdGlvbiAkKHQsZSl7dm9pZCAwPT09ZSYmKGU9e2JyaWRnZTohMX0pLCQuaW5zdGFsbGVkPSEwLEM9dDtDLnZlcnNpb24mJk51bWJlcihDLnZlcnNpb24uc3BsaXQoIi4iKVswXSk7KGZ1bmN0aW9uKHQpe3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KCIkaTE4biIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIiRpMThuIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2kxOG59fSksdC5wcm90b3R5cGUuJHQ9ZnVuY3Rpb24odCl7dmFyIGU9W10sbj1hcmd1bWVudHMubGVuZ3RoLTE7d2hpbGUobi0tID4wKWVbbl09YXJndW1lbnRzW24rMV07dmFyIHI9dGhpcy4kaTE4bjtyZXR1cm4gci5fdC5hcHBseShyLFt0LHIubG9jYWxlLHIuX2dldE1lc3NhZ2VzKCksdGhpc10uY29uY2F0KGUpKX0sdC5wcm90b3R5cGUuJHRjPWZ1bmN0aW9uKHQsZSl7dmFyIG49W10scj1hcmd1bWVudHMubGVuZ3RoLTI7d2hpbGUoci0tID4wKW5bcl09YXJndW1lbnRzW3IrMl07dmFyIGk9dGhpcy4kaTE4bjtyZXR1cm4gaS5fdGMuYXBwbHkoaSxbdCxpLmxvY2FsZSxpLl9nZXRNZXNzYWdlcygpLHRoaXMsZV0uY29uY2F0KG4pKX0sdC5wcm90b3R5cGUuJHRlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy4kaTE4bjtyZXR1cm4gbi5fdGUodCxuLmxvY2FsZSxuLl9nZXRNZXNzYWdlcygpLGUpfSx0LnByb3RvdHlwZS4kZD1mdW5jdGlvbih0KXt2YXIgZSxuPVtdLHI9YXJndW1lbnRzLmxlbmd0aC0xO3doaWxlKHItLSA+MCluW3JdPWFyZ3VtZW50c1tyKzFdO3JldHVybihlPXRoaXMuJGkxOG4pLmQuYXBwbHkoZSxbdF0uY29uY2F0KG4pKX0sdC5wcm90b3R5cGUuJG49ZnVuY3Rpb24odCl7dmFyIGUsbj1bXSxyPWFyZ3VtZW50cy5sZW5ndGgtMTt3aGlsZShyLS0gPjApbltyXT1hcmd1bWVudHNbcisxXTtyZXR1cm4oZT10aGlzLiRpMThuKS5uLmFwcGx5KGUsW3RdLmNvbmNhdChuKSl9fSkoQyksQy5taXhpbihmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dGhpcyE9PXRoaXMuJHJvb3QmJnRoaXMuJG9wdGlvbnMuX19JTlRMSUZZX01FVEFfXyYmdGhpcy4kZWwmJnRoaXMuJGVsLnNldEF0dHJpYnV0ZSgiZGF0YS1pbnRsaWZ5Iix0aGlzLiRvcHRpb25zLl9fSU5UTElGWV9NRVRBX18pfXJldHVybiB2b2lkIDA9PT10JiYodD0hMSksdD97bW91bnRlZDplfTp7YmVmb3JlQ3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kb3B0aW9ucztpZih0LmkxOG49dC5pMThufHwodC5fX2kxOG5CcmlkZ2V8fHQuX19pMThuP3t9Om51bGwpLHQuaTE4bilpZih0LmkxOG4gaW5zdGFuY2VvZiBHKXtpZih0Ll9faTE4bkJyaWRnZXx8dC5fX2kxOG4pdHJ5e3ZhciBlPXQuaTE4biYmdC5pMThuLm1lc3NhZ2VzP3QuaTE4bi5tZXNzYWdlczp7fSxuPXQuX19pMThuQnJpZGdlfHx0Ll9faTE4bjtuLmZvckVhY2goKGZ1bmN0aW9uKHQpe2U9YihlLEpTT04ucGFyc2UodCkpfSkpLE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3QuaTE4bi5tZXJnZUxvY2FsZU1lc3NhZ2UobixlW25dKX0pKX1jYXRjaChjKXswfXRoaXMuX2kxOG49dC5pMThuLHRoaXMuX2kxOG5XYXRjaGVyPXRoaXMuX2kxOG4ud2F0Y2hJMThuRGF0YSgpfWVsc2UgaWYobCh0LmkxOG4pKXt2YXIgcj10aGlzLiRyb290JiZ0aGlzLiRyb290LiRpMThuJiZ0aGlzLiRyb290LiRpMThuIGluc3RhbmNlb2YgRz90aGlzLiRyb290LiRpMThuOm51bGw7aWYociYmKHQuaTE4bi5yb290PXRoaXMuJHJvb3QsdC5pMThuLmZvcm1hdHRlcj1yLmZvcm1hdHRlcix0LmkxOG4uZmFsbGJhY2tMb2NhbGU9ci5mYWxsYmFja0xvY2FsZSx0LmkxOG4uZm9ybWF0RmFsbGJhY2tNZXNzYWdlcz1yLmZvcm1hdEZhbGxiYWNrTWVzc2FnZXMsdC5pMThuLnNpbGVudFRyYW5zbGF0aW9uV2Fybj1yLnNpbGVudFRyYW5zbGF0aW9uV2Fybix0LmkxOG4uc2lsZW50RmFsbGJhY2tXYXJuPXIuc2lsZW50RmFsbGJhY2tXYXJuLHQuaTE4bi5wbHVyYWxpemF0aW9uUnVsZXM9ci5wbHVyYWxpemF0aW9uUnVsZXMsdC5pMThuLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudD1yLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudCksdC5fX2kxOG5CcmlkZ2V8fHQuX19pMThuKXRyeXt2YXIgaT10LmkxOG4mJnQuaTE4bi5tZXNzYWdlcz90LmkxOG4ubWVzc2FnZXM6e30sYT10Ll9faTE4bkJyaWRnZXx8dC5fX2kxOG47YS5mb3JFYWNoKChmdW5jdGlvbih0KXtpPWIoaSxKU09OLnBhcnNlKHQpKX0pKSx0LmkxOG4ubWVzc2FnZXM9aX1jYXRjaChjKXswfXZhciBvPXQuaTE4bixzPW8uc2hhcmVkTWVzc2FnZXM7cyYmbChzKSYmKHQuaTE4bi5tZXNzYWdlcz1iKHQuaTE4bi5tZXNzYWdlcyxzKSksdGhpcy5faTE4bj1uZXcgRyh0LmkxOG4pLHRoaXMuX2kxOG5XYXRjaGVyPXRoaXMuX2kxOG4ud2F0Y2hJMThuRGF0YSgpLCh2b2lkIDA9PT10LmkxOG4uc3luY3x8dC5pMThuLnN5bmMpJiYodGhpcy5fbG9jYWxlV2F0Y2hlcj10aGlzLiRpMThuLndhdGNoTG9jYWxlKCkpLHImJnIub25Db21wb25lbnRJbnN0YW5jZUNyZWF0ZWQodGhpcy5faTE4bil9ZWxzZSAwO2Vsc2UgdGhpcy4kcm9vdCYmdGhpcy4kcm9vdC4kaTE4biYmdGhpcy4kcm9vdC4kaTE4biBpbnN0YW5jZW9mIEc/dGhpcy5faTE4bj10aGlzLiRyb290LiRpMThuOnQucGFyZW50JiZ0LnBhcmVudC4kaTE4biYmdC5wYXJlbnQuJGkxOG4gaW5zdGFuY2VvZiBHJiYodGhpcy5faTE4bj10LnBhcmVudC4kaTE4bil9LGJlZm9yZU1vdW50OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kb3B0aW9uczt0LmkxOG49dC5pMThufHwodC5fX2kxOG5CcmlkZ2V8fHQuX19pMThuP3t9Om51bGwpLHQuaTE4bj8odC5pMThuIGluc3RhbmNlb2YgR3x8bCh0LmkxOG4pKSYmKHRoaXMuX2kxOG4uc3Vic2NyaWJlRGF0YUNoYW5naW5nKHRoaXMpLHRoaXMuX3N1YnNjcmliaW5nPSEwKToodGhpcy4kcm9vdCYmdGhpcy4kcm9vdC4kaTE4biYmdGhpcy4kcm9vdC4kaTE4biBpbnN0YW5jZW9mIEd8fHQucGFyZW50JiZ0LnBhcmVudC4kaTE4biYmdC5wYXJlbnQuJGkxOG4gaW5zdGFuY2VvZiBHKSYmKHRoaXMuX2kxOG4uc3Vic2NyaWJlRGF0YUNoYW5naW5nKHRoaXMpLHRoaXMuX3N1YnNjcmliaW5nPSEwKX0sbW91bnRlZDplLGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXtpZih0aGlzLl9pMThuKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKChmdW5jdGlvbigpe3QuX3N1YnNjcmliaW5nJiYodC5faTE4bi51bnN1YnNjcmliZURhdGFDaGFuZ2luZyh0KSxkZWxldGUgdC5fc3Vic2NyaWJpbmcpLHQuX2kxOG5XYXRjaGVyJiYodC5faTE4bldhdGNoZXIoKSx0Ll9pMThuLmRlc3Ryb3lWTSgpLGRlbGV0ZSB0Ll9pMThuV2F0Y2hlciksdC5fbG9jYWxlV2F0Y2hlciYmKHQuX2xvY2FsZVdhdGNoZXIoKSxkZWxldGUgdC5fbG9jYWxlV2F0Y2hlcil9KSl9fX19KGUuYnJpZGdlKSksQy5kaXJlY3RpdmUoInQiLHtiaW5kOk8sdXBkYXRlOkUsdW5iaW5kOkl9KSxDLmNvbXBvbmVudCh3Lm5hbWUsdyksQy5jb21wb25lbnQoay5uYW1lLGspO3ZhciBuPUMuY29uZmlnLm9wdGlvbk1lcmdlU3RyYXRlZ2llcztuLmkxOG49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZT90OmV9fXZhciBMPWZ1bmN0aW9uKCl7dGhpcy5fY2FjaGVzPU9iamVjdC5jcmVhdGUobnVsbCl9O0wucHJvdG90eXBlLmludGVycG9sYXRlPWZ1bmN0aW9uKHQsZSl7aWYoIWUpcmV0dXJuW3RdO3ZhciBuPXRoaXMuX2NhY2hlc1t0XTtyZXR1cm4gbnx8KG49ZnVuY3Rpb24odCl7dmFyIGU9W10sbj0wLHI9IiI7d2hpbGUobjx0Lmxlbmd0aCl7dmFyIGk9dFtuKytdO2lmKCJ7Ij09PWkpe3ImJmUucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6cn0pLHI9IiI7dmFyIGE9IiI7aT10W24rK107d2hpbGUodm9pZCAwIT09aSYmIn0iIT09aSlhKz1pLGk9dFtuKytdO3ZhciBvPSJ9Ij09PWkscz1qLnRlc3QoYSk/Imxpc3QiOm8mJlIudGVzdChhKT8ibmFtZWQiOiJ1bmtub3duIjtlLnB1c2goe3ZhbHVlOmEsdHlwZTpzfSl9ZWxzZSIlIj09PWk/InsiIT09dFtuXSYmKHIrPWkpOnIrPWl9cmV0dXJuIHImJmUucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6cn0pLGV9KHQpLHRoaXMuX2NhY2hlc1t0XT1uKSxmdW5jdGlvbih0LGUpe3ZhciBuPVtdLHI9MCxpPUFycmF5LmlzQXJyYXkoZSk/Imxpc3QiOm8oZSk/Im5hbWVkIjoidW5rbm93biI7aWYoInVua25vd24iPT09aSlyZXR1cm4gbjt3aGlsZShyPHQubGVuZ3RoKXt2YXIgYT10W3JdO3N3aXRjaChhLnR5cGUpe2Nhc2UidGV4dCI6bi5wdXNoKGEudmFsdWUpO2JyZWFrO2Nhc2UibGlzdCI6bi5wdXNoKGVbcGFyc2VJbnQoYS52YWx1ZSwxMCldKTticmVhaztjYXNlIm5hbWVkIjoibmFtZWQiPT09aSYmbi5wdXNoKGVbYS52YWx1ZV0pO2JyZWFrO2Nhc2UidW5rbm93biI6MDticmVha31yKyt9cmV0dXJuIG59KG4sZSl9O3ZhciBqPS9eKD86XGQpKy8sUj0vXig/Olx3KSsvO3ZhciBOPVtdO05bMF09e3dzOlswXSxpZGVudDpbMywwXSwiWyI6WzRdLGVvZjpbN119LE5bMV09e3dzOlsxXSwiLiI6WzJdLCJbIjpbNF0sZW9mOls3XX0sTlsyXT17d3M6WzJdLGlkZW50OlszLDBdLDA6WzMsMF0sbnVtYmVyOlszLDBdfSxOWzNdPXtpZGVudDpbMywwXSwwOlszLDBdLG51bWJlcjpbMywwXSx3czpbMSwxXSwiLiI6WzIsMV0sIlsiOls0LDFdLGVvZjpbNywxXX0sTls0XT17IiciOls1LDBdLCciJzpbNiwwXSwiWyI6WzQsMl0sIl0iOlsxLDNdLGVvZjo4LGVsc2U6WzQsMF19LE5bNV09eyInIjpbNCwwXSxlb2Y6OCxlbHNlOls1LDBdfSxOWzZdPXsnIic6WzQsMF0sZW9mOjgsZWxzZTpbNiwwXX07dmFyIEI9L15ccz8oPzp0cnVlfGZhbHNlfC0/W1xkLl0rfCdbXiddKid8IlteIl0qIilccz8kLztmdW5jdGlvbiBEKHQpe2lmKHZvaWQgMD09PXR8fG51bGw9PT10KXJldHVybiJlb2YiO3ZhciBlPXQuY2hhckNvZGVBdCgwKTtzd2l0Y2goZSl7Y2FzZSA5MTpjYXNlIDkzOmNhc2UgNDY6Y2FzZSAzNDpjYXNlIDM5OnJldHVybiB0O2Nhc2UgOTU6Y2FzZSAzNjpjYXNlIDQ1OnJldHVybiJpZGVudCI7Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMzpjYXNlIDE2MDpjYXNlIDY1Mjc5OmNhc2UgODIzMjpjYXNlIDgyMzM6cmV0dXJuIndzIn1yZXR1cm4iaWRlbnQifWZ1bmN0aW9uIEYodCl7dmFyIGU9dC50cmltKCk7cmV0dXJuKCIwIiE9PXQuY2hhckF0KDApfHwhaXNOYU4odCkpJiYoZnVuY3Rpb24odCl7cmV0dXJuIEIudGVzdCh0KX0oZSk/ZnVuY3Rpb24odCl7dmFyIGU9dC5jaGFyQ29kZUF0KDApLG49dC5jaGFyQ29kZUF0KHQubGVuZ3RoLTEpO3JldHVybiBlIT09bnx8MzQhPT1lJiYzOSE9PWU/dDp0LnNsaWNlKDEsLTEpfShlKToiKiIrZSl9dmFyIFc9ZnVuY3Rpb24oKXt0aGlzLl9jYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpfTtXLnByb3RvdHlwZS5wYXJzZVBhdGg9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fY2FjaGVbdF07cmV0dXJuIGV8fChlPWZ1bmN0aW9uKHQpe3ZhciBlLG4scixpLGEsbyxzLGM9W10sdT0tMSxsPTAsZj0wLGQ9W107ZnVuY3Rpb24gaCgpe3ZhciBlPXRbdSsxXTtpZig1PT09bCYmIiciPT09ZXx8Nj09PWwmJiciJz09PWUpcmV0dXJuIHUrKyxyPSJcXCIrZSxkWzBdKCksITB9ZFsxXT1mdW5jdGlvbigpe3ZvaWQgMCE9PW4mJihjLnB1c2gobiksbj12b2lkIDApfSxkWzBdPWZ1bmN0aW9uKCl7dm9pZCAwPT09bj9uPXI6bis9cn0sZFsyXT1mdW5jdGlvbigpe2RbMF0oKSxmKyt9LGRbM109ZnVuY3Rpb24oKXtpZihmPjApZi0tLGw9NCxkWzBdKCk7ZWxzZXtpZihmPTAsdm9pZCAwPT09bilyZXR1cm4hMTtpZihuPUYobiksITE9PT1uKXJldHVybiExO2RbMV0oKX19O3doaWxlKG51bGwhPT1sKWlmKHUrKyxlPXRbdV0sIlxcIiE9PWV8fCFoKCkpe2lmKGk9RChlKSxzPU5bbF0sYT1zW2ldfHxzWyJlbHNlIl18fDgsOD09PWEpcmV0dXJuO2lmKGw9YVswXSxvPWRbYVsxXV0sbyYmKHI9YVsyXSxyPXZvaWQgMD09PXI/ZTpyLCExPT09bygpKSlyZXR1cm47aWYoNz09PWwpcmV0dXJuIGN9fSh0KSxlJiYodGhpcy5fY2FjaGVbdF09ZSkpLGV8fFtdfSxXLnByb3RvdHlwZS5nZXRQYXRoVmFsdWU9ZnVuY3Rpb24odCxlKXtpZighbyh0KSlyZXR1cm4gbnVsbDt2YXIgbj10aGlzLnBhcnNlUGF0aChlKTtpZigwPT09bi5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIHI9bi5sZW5ndGgsaT10LGE9MDt3aGlsZShhPHIpe3ZhciBzPWlbblthXV07aWYodm9pZCAwPT09c3x8bnVsbD09PXMpcmV0dXJuIG51bGw7aT1zLGErK31yZXR1cm4gaX07dmFyIEgsVj0vPFwvP1tcd1xzPSIvLic6OyMtXC9dKz4vLFU9Lyg/OkAoPzpcLlthLXpBLVpdKyk/Oig/Oltcd1wtX3wuL10rfFwoW1x3XC1fOnwuL10rXCkpKS9nLHE9L15AKD86XC4oW2EtekEtWl0rKSk/Oi8sej0vWygpXS9nLFk9e3VwcGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRvTG9jYWxlVXBwZXJDYXNlKCl9LGxvd2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRvTG9jYWxlTG93ZXJDYXNlKCl9LGNhcGl0YWxpemU6ZnVuY3Rpb24odCl7cmV0dXJuIiIrdC5jaGFyQXQoMCkudG9Mb2NhbGVVcHBlckNhc2UoKSt0LnN1YnN0cigxKX19LFg9bmV3IEwsRz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3ZvaWQgMD09PXQmJih0PXt9KSwhQyYmInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuVnVlJiYkKHdpbmRvdy5WdWUpO3ZhciBuPXQubG9jYWxlfHwiZW4tVVMiLHI9ITEhPT10LmZhbGxiYWNrTG9jYWxlJiYodC5mYWxsYmFja0xvY2FsZXx8ImVuLVVTIiksaT10Lm1lc3NhZ2VzfHx7fSxhPXQuZGF0ZVRpbWVGb3JtYXRzfHx0LmRhdGV0aW1lRm9ybWF0c3x8e30sbz10Lm51bWJlckZvcm1hdHN8fHt9O3RoaXMuX3ZtPW51bGwsdGhpcy5fZm9ybWF0dGVyPXQuZm9ybWF0dGVyfHxYLHRoaXMuX21vZGlmaWVycz10Lm1vZGlmaWVyc3x8e30sdGhpcy5fbWlzc2luZz10Lm1pc3Npbmd8fG51bGwsdGhpcy5fcm9vdD10LnJvb3R8fG51bGwsdGhpcy5fc3luYz12b2lkIDA9PT10LnN5bmN8fCEhdC5zeW5jLHRoaXMuX2ZhbGxiYWNrUm9vdD12b2lkIDA9PT10LmZhbGxiYWNrUm9vdHx8ISF0LmZhbGxiYWNrUm9vdCx0aGlzLl9mYWxsYmFja1Jvb3RXaXRoRW1wdHlTdHJpbmc9dm9pZCAwPT09dC5mYWxsYmFja1Jvb3RXaXRoRW1wdHlTdHJpbmd8fCEhdC5mYWxsYmFja1Jvb3RXaXRoRW1wdHlTdHJpbmcsdGhpcy5fZm9ybWF0RmFsbGJhY2tNZXNzYWdlcz12b2lkIDAhPT10LmZvcm1hdEZhbGxiYWNrTWVzc2FnZXMmJiEhdC5mb3JtYXRGYWxsYmFja01lc3NhZ2VzLHRoaXMuX3NpbGVudFRyYW5zbGF0aW9uV2Fybj12b2lkIDAhPT10LnNpbGVudFRyYW5zbGF0aW9uV2FybiYmdC5zaWxlbnRUcmFuc2xhdGlvbldhcm4sdGhpcy5fc2lsZW50RmFsbGJhY2tXYXJuPXZvaWQgMCE9PXQuc2lsZW50RmFsbGJhY2tXYXJuJiYhIXQuc2lsZW50RmFsbGJhY2tXYXJuLHRoaXMuX2RhdGVUaW1lRm9ybWF0dGVycz17fSx0aGlzLl9udW1iZXJGb3JtYXR0ZXJzPXt9LHRoaXMuX3BhdGg9bmV3IFcsdGhpcy5fZGF0YUxpc3RlbmVycz1uZXcgU2V0LHRoaXMuX2NvbXBvbmVudEluc3RhbmNlQ3JlYXRlZExpc3RlbmVyPXQuY29tcG9uZW50SW5zdGFuY2VDcmVhdGVkTGlzdGVuZXJ8fG51bGwsdGhpcy5fcHJlc2VydmVEaXJlY3RpdmVDb250ZW50PXZvaWQgMCE9PXQucHJlc2VydmVEaXJlY3RpdmVDb250ZW50JiYhIXQucHJlc2VydmVEaXJlY3RpdmVDb250ZW50LHRoaXMucGx1cmFsaXphdGlvblJ1bGVzPXQucGx1cmFsaXphdGlvblJ1bGVzfHx7fSx0aGlzLl93YXJuSHRtbEluTWVzc2FnZT10Lndhcm5IdG1sSW5NZXNzYWdlfHwib2ZmIix0aGlzLl9wb3N0VHJhbnNsYXRpb249dC5wb3N0VHJhbnNsYXRpb258fG51bGwsdGhpcy5fZXNjYXBlUGFyYW1ldGVySHRtbD10LmVzY2FwZVBhcmFtZXRlckh0bWx8fCExLCJfX1ZVRV9JMThOX0JSSURHRV9fImluIHQmJih0aGlzLl9fVlVFX0kxOE5fQlJJREdFX189dC5fX1ZVRV9JMThOX0JSSURHRV9fKSx0aGlzLmdldENob2ljZUluZGV4PWZ1bmN0aW9uKHQsbil7dmFyIHI9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO2lmKHImJnIuZ2V0Q2hvaWNlSW5kZXgpe3ZhciBpPXIuZ2V0Q2hvaWNlSW5kZXg7cmV0dXJuIGkuY2FsbChlLHQsbil9cmV0dXJuIGUubG9jYWxlIGluIGUucGx1cmFsaXphdGlvblJ1bGVzP2UucGx1cmFsaXphdGlvblJ1bGVzW2UubG9jYWxlXS5hcHBseShlLFt0LG5dKTpmdW5jdGlvbih0LGUpe3JldHVybiB0PU1hdGguYWJzKHQpLDI9PT1lP3Q/dD4xPzE6MDoxOnQ/TWF0aC5taW4odCwyKTowfSh0LG4pfSx0aGlzLl9leGlzdD1mdW5jdGlvbih0LG4pe3JldHVybiEoIXR8fCFuKSYmKCFmKGUuX3BhdGguZ2V0UGF0aFZhbHVlKHQsbikpfHwhIXRbbl0pfSwid2FybiIhPT10aGlzLl93YXJuSHRtbEluTWVzc2FnZSYmImVycm9yIiE9PXRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlfHxPYmplY3Qua2V5cyhpKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlLl9jaGVja0xvY2FsZU1lc3NhZ2UodCxlLl93YXJuSHRtbEluTWVzc2FnZSxpW3RdKX0pKSx0aGlzLl9pbml0Vk0oe2xvY2FsZTpuLGZhbGxiYWNrTG9jYWxlOnIsbWVzc2FnZXM6aSxkYXRlVGltZUZvcm1hdHM6YSxudW1iZXJGb3JtYXRzOm99KX0sUT17dm06e2NvbmZpZ3VyYWJsZTohMH0sbWVzc2FnZXM6e2NvbmZpZ3VyYWJsZTohMH0sZGF0ZVRpbWVGb3JtYXRzOntjb25maWd1cmFibGU6ITB9LG51bWJlckZvcm1hdHM6e2NvbmZpZ3VyYWJsZTohMH0sYXZhaWxhYmxlTG9jYWxlczp7Y29uZmlndXJhYmxlOiEwfSxsb2NhbGU6e2NvbmZpZ3VyYWJsZTohMH0sZmFsbGJhY2tMb2NhbGU6e2NvbmZpZ3VyYWJsZTohMH0sZm9ybWF0RmFsbGJhY2tNZXNzYWdlczp7Y29uZmlndXJhYmxlOiEwfSxtaXNzaW5nOntjb25maWd1cmFibGU6ITB9LGZvcm1hdHRlcjp7Y29uZmlndXJhYmxlOiEwfSxzaWxlbnRUcmFuc2xhdGlvbldhcm46e2NvbmZpZ3VyYWJsZTohMH0sc2lsZW50RmFsbGJhY2tXYXJuOntjb25maWd1cmFibGU6ITB9LHByZXNlcnZlRGlyZWN0aXZlQ29udGVudDp7Y29uZmlndXJhYmxlOiEwfSx3YXJuSHRtbEluTWVzc2FnZTp7Y29uZmlndXJhYmxlOiEwfSxwb3N0VHJhbnNsYXRpb246e2NvbmZpZ3VyYWJsZTohMH0sc3luYzp7Y29uZmlndXJhYmxlOiEwfX07Ry5wcm90b3R5cGUuX2NoZWNrTG9jYWxlTWVzc2FnZT1mdW5jdGlvbihlLG4scil7dmFyIG89ZnVuY3Rpb24oZSxuLHIscyl7aWYobChyKSlPYmplY3Qua2V5cyhyKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgaT1yW3RdO2woaSk/KHMucHVzaCh0KSxzLnB1c2goIi4iKSxvKGUsbixpLHMpLHMucG9wKCkscy5wb3AoKSk6KHMucHVzaCh0KSxvKGUsbixpLHMpLHMucG9wKCkpfSkpO2Vsc2UgaWYoYShyKSlyLmZvckVhY2goKGZ1bmN0aW9uKHQscil7bCh0KT8ocy5wdXNoKCJbIityKyJdIikscy5wdXNoKCIuIiksbyhlLG4sdCxzKSxzLnBvcCgpLHMucG9wKCkpOihzLnB1c2goIlsiK3IrIl0iKSxvKGUsbix0LHMpLHMucG9wKCkpfSkpO2Vsc2UgaWYoYyhyKSl7dmFyIHU9Vi50ZXN0KHIpO2lmKHUpe3ZhciBmPSJEZXRlY3RlZCBIVE1MIGluIG1lc3NhZ2UgJyIrcisiJyBvZiBrZXlwYXRoICciK3Muam9pbigiIikrIicgYXQgJyIrbisiJy4gQ29uc2lkZXIgY29tcG9uZW50IGludGVycG9sYXRpb24gd2l0aCAnPGkxOG4+JyB0byBhdm9pZCBYU1MuIFNlZSBodHRwczovL2JpdC5seS8yWnFKemtwIjsid2FybiI9PT1lP2koZik6ImVycm9yIj09PWUmJmZ1bmN0aW9uKGUsbil7InVuZGVmaW5lZCIhPT10eXBlb2YgdCYmKHQuZXJyb3IoIlt2dWUtaTE4bl0gIitlKSxuJiZ0LmVycm9yKG4uc3RhY2spKX0oZil9fX07byhuLGUscixbXSl9LEcucHJvdG90eXBlLl9pbml0Vk09ZnVuY3Rpb24odCl7dmFyIGU9Qy5jb25maWcuc2lsZW50O0MuY29uZmlnLnNpbGVudD0hMCx0aGlzLl92bT1uZXcgQyh7ZGF0YTp0LF9fVlVFMThOX19JTlNUQU5DRV9fOiEwfSksQy5jb25maWcuc2lsZW50PWV9LEcucHJvdG90eXBlLmRlc3Ryb3lWTT1mdW5jdGlvbigpe3RoaXMuX3ZtLiRkZXN0cm95KCl9LEcucHJvdG90eXBlLnN1YnNjcmliZURhdGFDaGFuZ2luZz1mdW5jdGlvbih0KXt0aGlzLl9kYXRhTGlzdGVuZXJzLmFkZCh0KX0sRy5wcm90b3R5cGUudW5zdWJzY3JpYmVEYXRhQ2hhbmdpbmc9ZnVuY3Rpb24odCl7KGZ1bmN0aW9uKHQsZSl7aWYodC5kZWxldGUoZSkpO30pKHRoaXMuX2RhdGFMaXN0ZW5lcnMsdCl9LEcucHJvdG90eXBlLndhdGNoSTE4bkRhdGE9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl92bS4kd2F0Y2goIiRkYXRhIiwoZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5wdXNoKHQpfSkpLGV9KHQuX2RhdGFMaXN0ZW5lcnMpLG49ZS5sZW5ndGg7d2hpbGUobi0tKUMubmV4dFRpY2soKGZ1bmN0aW9uKCl7ZVtuXSYmZVtuXS4kZm9yY2VVcGRhdGUoKX0pKX0pLHtkZWVwOiEwfSl9LEcucHJvdG90eXBlLndhdGNoTG9jYWxlPWZ1bmN0aW9uKHQpe2lmKHQpe2lmKCF0aGlzLl9fVlVFX0kxOE5fQlJJREdFX18pcmV0dXJuIG51bGw7dmFyIGU9dGhpcyxuPXRoaXMuX3ZtO3JldHVybiB0aGlzLnZtLiR3YXRjaCgibG9jYWxlIiwoZnVuY3Rpb24ocil7bi4kc2V0KG4sImxvY2FsZSIsciksZS5fX1ZVRV9JMThOX0JSSURHRV9fJiZ0JiYodC5sb2NhbGUudmFsdWU9ciksbi4kZm9yY2VVcGRhdGUoKX0pLHtpbW1lZGlhdGU6ITB9KX1pZighdGhpcy5fc3luY3x8IXRoaXMuX3Jvb3QpcmV0dXJuIG51bGw7dmFyIHI9dGhpcy5fdm07cmV0dXJuIHRoaXMuX3Jvb3QuJGkxOG4udm0uJHdhdGNoKCJsb2NhbGUiLChmdW5jdGlvbih0KXtyLiRzZXQociwibG9jYWxlIix0KSxyLiRmb3JjZVVwZGF0ZSgpfSkse2ltbWVkaWF0ZTohMH0pfSxHLnByb3RvdHlwZS5vbkNvbXBvbmVudEluc3RhbmNlQ3JlYXRlZD1mdW5jdGlvbih0KXt0aGlzLl9jb21wb25lbnRJbnN0YW5jZUNyZWF0ZWRMaXN0ZW5lciYmdGhpcy5fY29tcG9uZW50SW5zdGFuY2VDcmVhdGVkTGlzdGVuZXIodCx0aGlzKX0sUS52bS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdm19LFEubWVzc2FnZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5fZ2V0TWVzc2FnZXMoKSl9LFEuZGF0ZVRpbWVGb3JtYXRzLmdldD1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMuX2dldERhdGVUaW1lRm9ybWF0cygpKX0sUS5udW1iZXJGb3JtYXRzLmdldD1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMuX2dldE51bWJlckZvcm1hdHMoKSl9LFEuYXZhaWxhYmxlTG9jYWxlcy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5tZXNzYWdlcykuc29ydCgpfSxRLmxvY2FsZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdm0ubG9jYWxlfSxRLmxvY2FsZS5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fdm0uJHNldCh0aGlzLl92bSwibG9jYWxlIix0KX0sUS5mYWxsYmFja0xvY2FsZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdm0uZmFsbGJhY2tMb2NhbGV9LFEuZmFsbGJhY2tMb2NhbGUuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX2xvY2FsZUNoYWluQ2FjaGU9e30sdGhpcy5fdm0uJHNldCh0aGlzLl92bSwiZmFsbGJhY2tMb2NhbGUiLHQpfSxRLmZvcm1hdEZhbGxiYWNrTWVzc2FnZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Zvcm1hdEZhbGxiYWNrTWVzc2FnZXN9LFEuZm9ybWF0RmFsbGJhY2tNZXNzYWdlcy5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fZm9ybWF0RmFsbGJhY2tNZXNzYWdlcz10fSxRLm1pc3NpbmcuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21pc3Npbmd9LFEubWlzc2luZy5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fbWlzc2luZz10fSxRLmZvcm1hdHRlci5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZm9ybWF0dGVyfSxRLmZvcm1hdHRlci5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fZm9ybWF0dGVyPXR9LFEuc2lsZW50VHJhbnNsYXRpb25XYXJuLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zaWxlbnRUcmFuc2xhdGlvbldhcm59LFEuc2lsZW50VHJhbnNsYXRpb25XYXJuLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zaWxlbnRUcmFuc2xhdGlvbldhcm49dH0sUS5zaWxlbnRGYWxsYmFja1dhcm4uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NpbGVudEZhbGxiYWNrV2Fybn0sUS5zaWxlbnRGYWxsYmFja1dhcm4uc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3NpbGVudEZhbGxiYWNrV2Fybj10fSxRLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJlc2VydmVEaXJlY3RpdmVDb250ZW50fSxRLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fcHJlc2VydmVEaXJlY3RpdmVDb250ZW50PXR9LFEud2Fybkh0bWxJbk1lc3NhZ2UuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlfSxRLndhcm5IdG1sSW5NZXNzYWdlLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2U7aWYodGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2U9dCxuIT09dCYmKCJ3YXJuIj09PXR8fCJlcnJvciI9PT10KSl7dmFyIHI9dGhpcy5fZ2V0TWVzc2FnZXMoKTtPYmplY3Qua2V5cyhyKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlLl9jaGVja0xvY2FsZU1lc3NhZ2UodCxlLl93YXJuSHRtbEluTWVzc2FnZSxyW3RdKX0pKX19LFEucG9zdFRyYW5zbGF0aW9uLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9wb3N0VHJhbnNsYXRpb259LFEucG9zdFRyYW5zbGF0aW9uLnNldD1mdW5jdGlvbih0KXt0aGlzLl9wb3N0VHJhbnNsYXRpb249dH0sUS5zeW5jLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zeW5jfSxRLnN5bmMuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N5bmM9dH0sRy5wcm90b3R5cGUuX2dldE1lc3NhZ2VzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZtLm1lc3NhZ2VzfSxHLnByb3RvdHlwZS5fZ2V0RGF0ZVRpbWVGb3JtYXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZtLmRhdGVUaW1lRm9ybWF0c30sRy5wcm90b3R5cGUuX2dldE51bWJlckZvcm1hdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdm0ubnVtYmVyRm9ybWF0c30sRy5wcm90b3R5cGUuX3dhcm5EZWZhdWx0PWZ1bmN0aW9uKHQsZSxuLHIsaSxhKXtpZighZihuKSlyZXR1cm4gbjtpZih0aGlzLl9taXNzaW5nKXt2YXIgbz10aGlzLl9taXNzaW5nLmFwcGx5KG51bGwsW3QsZSxyLGldKTtpZihjKG8pKXJldHVybiBvfWVsc2UgMDtpZih0aGlzLl9mb3JtYXRGYWxsYmFja01lc3NhZ2VzKXt2YXIgcz1oLmFwcGx5KHZvaWQgMCxpKTtyZXR1cm4gdGhpcy5fcmVuZGVyKGUsYSxzLnBhcmFtcyxlKX1yZXR1cm4gZX0sRy5wcm90b3R5cGUuX2lzRmFsbGJhY2tSb290PWZ1bmN0aW9uKHQpe3JldHVybih0aGlzLl9mYWxsYmFja1Jvb3RXaXRoRW1wdHlTdHJpbmc/IXQ6Zih0KSkmJiFmKHRoaXMuX3Jvb3QpJiZ0aGlzLl9mYWxsYmFja1Jvb3R9LEcucHJvdG90eXBlLl9pc1NpbGVudEZhbGxiYWNrV2Fybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fc2lsZW50RmFsbGJhY2tXYXJuIGluc3RhbmNlb2YgUmVnRXhwP3RoaXMuX3NpbGVudEZhbGxiYWNrV2Fybi50ZXN0KHQpOnRoaXMuX3NpbGVudEZhbGxiYWNrV2Fybn0sRy5wcm90b3R5cGUuX2lzU2lsZW50RmFsbGJhY2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5faXNTaWxlbnRGYWxsYmFja1dhcm4oZSkmJih0aGlzLl9pc0ZhbGxiYWNrUm9vdCgpfHx0IT09dGhpcy5mYWxsYmFja0xvY2FsZSl9LEcucHJvdG90eXBlLl9pc1NpbGVudFRyYW5zbGF0aW9uV2Fybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fc2lsZW50VHJhbnNsYXRpb25XYXJuIGluc3RhbmNlb2YgUmVnRXhwP3RoaXMuX3NpbGVudFRyYW5zbGF0aW9uV2Fybi50ZXN0KHQpOnRoaXMuX3NpbGVudFRyYW5zbGF0aW9uV2Fybn0sRy5wcm90b3R5cGUuX2ludGVycG9sYXRlPWZ1bmN0aW9uKHQsZSxuLHIsaSxvLHMpe2lmKCFlKXJldHVybiBudWxsO3ZhciB1LGg9dGhpcy5fcGF0aC5nZXRQYXRoVmFsdWUoZSxuKTtpZihhKGgpfHxsKGgpKXJldHVybiBoO2lmKGYoaCkpe2lmKCFsKGUpKXJldHVybiBudWxsO2lmKHU9ZVtuXSwhYyh1KSYmIWQodSkpcmV0dXJuIG51bGx9ZWxzZXtpZighYyhoKSYmIWQoaCkpcmV0dXJuIG51bGw7dT1ofXJldHVybiBjKHUpJiYodS5pbmRleE9mKCJAOiIpPj0wfHx1LmluZGV4T2YoIkAuIik+PTApJiYodT10aGlzLl9saW5rKHQsZSx1LHIsInJhdyIsbyxzKSksdGhpcy5fcmVuZGVyKHUsaSxvLG4pfSxHLnByb3RvdHlwZS5fbGluaz1mdW5jdGlvbih0LGUsbixyLGksbyxzKXt2YXIgYz1uLHU9Yy5tYXRjaChVKTtmb3IodmFyIGwgaW4gdSlpZih1Lmhhc093blByb3BlcnR5KGwpKXt2YXIgZj11W2xdLGQ9Zi5tYXRjaChxKSxoPWRbMF0scD1kWzFdLGc9Zi5yZXBsYWNlKGgsIiIpLnJlcGxhY2UoeiwiIik7aWYodihzLGcpKXJldHVybiBjO3MucHVzaChnKTt2YXIgbT10aGlzLl9pbnRlcnBvbGF0ZSh0LGUsZyxyLCJyYXciPT09aT8ic3RyaW5nIjppLCJyYXciPT09aT92b2lkIDA6byxzKTtpZih0aGlzLl9pc0ZhbGxiYWNrUm9vdChtKSl7aWYoIXRoaXMuX3Jvb3QpdGhyb3cgRXJyb3IoInVuZXhwZWN0ZWQgZXJyb3IiKTt2YXIgYj10aGlzLl9yb290LiRpMThuO209Yi5fdHJhbnNsYXRlKGIuX2dldE1lc3NhZ2VzKCksYi5sb2NhbGUsYi5mYWxsYmFja0xvY2FsZSxnLHIsaSxvKX1tPXRoaXMuX3dhcm5EZWZhdWx0KHQsZyxtLHIsYShvKT9vOltvXSxpKSx0aGlzLl9tb2RpZmllcnMuaGFzT3duUHJvcGVydHkocCk/bT10aGlzLl9tb2RpZmllcnNbcF0obSk6WS5oYXNPd25Qcm9wZXJ0eShwKSYmKG09WVtwXShtKSkscy5wb3AoKSxjPW0/Yy5yZXBsYWNlKGYsbSk6Y31yZXR1cm4gY30sRy5wcm90b3R5cGUuX2NyZWF0ZU1lc3NhZ2VDb250ZXh0PWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMscz1hKHQpP3Q6W10sYz1vKHQpP3Q6e30sdT10aGlzLl9nZXRNZXNzYWdlcygpLGw9dGhpcy5sb2NhbGU7cmV0dXJue2xpc3Q6ZnVuY3Rpb24odCl7cmV0dXJuIHNbdF19LG5hbWVkOmZ1bmN0aW9uKHQpe3JldHVybiBjW3RdfSx2YWx1ZXM6dCxmb3JtYXR0ZXI6ZSxwYXRoOm4sbWVzc2FnZXM6dSxsb2NhbGU6bCxsaW5rZWQ6ZnVuY3Rpb24odCl7cmV0dXJuIGkuX2ludGVycG9sYXRlKGwsdVtsXXx8e30sdCxudWxsLHIsdm9pZCAwLFt0XSl9fX0sRy5wcm90b3R5cGUuX3JlbmRlcj1mdW5jdGlvbih0LGUsbixyKXtpZihkKHQpKXJldHVybiB0KHRoaXMuX2NyZWF0ZU1lc3NhZ2VDb250ZXh0KG4sdGhpcy5fZm9ybWF0dGVyfHxYLHIsZSkpO3ZhciBpPXRoaXMuX2Zvcm1hdHRlci5pbnRlcnBvbGF0ZSh0LG4scik7cmV0dXJuIGl8fChpPVguaW50ZXJwb2xhdGUodCxuLHIpKSwic3RyaW5nIiE9PWV8fGMoaSk/aTppLmpvaW4oIiIpfSxHLnByb3RvdHlwZS5fYXBwZW5kSXRlbVRvQ2hhaW49ZnVuY3Rpb24odCxlLG4pe3ZhciByPSExO3JldHVybiB2KHQsZSl8fChyPSEwLGUmJihyPSIhIiE9PWVbZS5sZW5ndGgtMV0sZT1lLnJlcGxhY2UoLyEvZywiIiksdC5wdXNoKGUpLG4mJm5bZV0mJihyPW5bZV0pKSkscn0sRy5wcm90b3R5cGUuX2FwcGVuZExvY2FsZVRvQ2hhaW49ZnVuY3Rpb24odCxlLG4pe3ZhciByLGk9ZS5zcGxpdCgiLSIpO2Rve3ZhciBhPWkuam9pbigiLSIpO3I9dGhpcy5fYXBwZW5kSXRlbVRvQ2hhaW4odCxhLG4pLGkuc3BsaWNlKC0xLDEpfXdoaWxlKGkubGVuZ3RoJiYhMD09PXIpO3JldHVybiByfSxHLnByb3RvdHlwZS5fYXBwZW5kQmxvY2tUb0NoYWluPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHI9ITAsaT0wO2k8ZS5sZW5ndGgmJnMocik7aSsrKXt2YXIgYT1lW2ldO2MoYSkmJihyPXRoaXMuX2FwcGVuZExvY2FsZVRvQ2hhaW4odCxhLG4pKX1yZXR1cm4gcn0sRy5wcm90b3R5cGUuX2dldExvY2FsZUNoYWluPWZ1bmN0aW9uKHQsZSl7aWYoIiI9PT10KXJldHVybltdO3RoaXMuX2xvY2FsZUNoYWluQ2FjaGV8fCh0aGlzLl9sb2NhbGVDaGFpbkNhY2hlPXt9KTt2YXIgbj10aGlzLl9sb2NhbGVDaGFpbkNhY2hlW3RdO2lmKCFuKXtlfHwoZT10aGlzLmZhbGxiYWNrTG9jYWxlKSxuPVtdO3ZhciByLGk9W3RdO3doaWxlKGEoaSkpaT10aGlzLl9hcHBlbmRCbG9ja1RvQ2hhaW4obixpLGUpO3I9YShlKT9lOm8oZSk/ZVsiZGVmYXVsdCJdP2VbImRlZmF1bHQiXTpudWxsOmUsaT1jKHIpP1tyXTpyLGkmJnRoaXMuX2FwcGVuZEJsb2NrVG9DaGFpbihuLGksbnVsbCksdGhpcy5fbG9jYWxlQ2hhaW5DYWNoZVt0XT1ufXJldHVybiBufSxHLnByb3RvdHlwZS5fdHJhbnNsYXRlPWZ1bmN0aW9uKHQsZSxuLHIsaSxhLG8pe2Zvcih2YXIgcyxjPXRoaXMuX2dldExvY2FsZUNoYWluKGUsbiksdT0wO3U8Yy5sZW5ndGg7dSsrKXt2YXIgbD1jW3VdO2lmKHM9dGhpcy5faW50ZXJwb2xhdGUobCx0W2xdLHIsaSxhLG8sW3JdKSwhZihzKSlyZXR1cm4gc31yZXR1cm4gbnVsbH0sRy5wcm90b3R5cGUuX3Q9ZnVuY3Rpb24odCxlLG4scil7dmFyIGksYT1bXSxvPWFyZ3VtZW50cy5sZW5ndGgtNDt3aGlsZShvLS0gPjApYVtvXT1hcmd1bWVudHNbbys0XTtpZighdClyZXR1cm4iIjt2YXIgcz1oLmFwcGx5KHZvaWQgMCxhKTt0aGlzLl9lc2NhcGVQYXJhbWV0ZXJIdG1sJiYocy5wYXJhbXM9XyhzLnBhcmFtcykpO3ZhciBjPXMubG9jYWxlfHxlLHU9dGhpcy5fdHJhbnNsYXRlKG4sYyx0aGlzLmZhbGxiYWNrTG9jYWxlLHQsciwic3RyaW5nIixzLnBhcmFtcyk7aWYodGhpcy5faXNGYWxsYmFja1Jvb3QodSkpe2lmKCF0aGlzLl9yb290KXRocm93IEVycm9yKCJ1bmV4cGVjdGVkIGVycm9yIik7cmV0dXJuKGk9dGhpcy5fcm9vdCkuJHQuYXBwbHkoaSxbdF0uY29uY2F0KGEpKX1yZXR1cm4gdT10aGlzLl93YXJuRGVmYXVsdChjLHQsdSxyLGEsInN0cmluZyIpLHRoaXMuX3Bvc3RUcmFuc2xhdGlvbiYmbnVsbCE9PXUmJnZvaWQgMCE9PXUmJih1PXRoaXMuX3Bvc3RUcmFuc2xhdGlvbih1LHQpKSx1fSxHLnByb3RvdHlwZS50PWZ1bmN0aW9uKHQpe3ZhciBlLG49W10scj1hcmd1bWVudHMubGVuZ3RoLTE7d2hpbGUoci0tID4wKW5bcl09YXJndW1lbnRzW3IrMV07cmV0dXJuKGU9dGhpcykuX3QuYXBwbHkoZSxbdCx0aGlzLmxvY2FsZSx0aGlzLl9nZXRNZXNzYWdlcygpLG51bGxdLmNvbmNhdChuKSl9LEcucHJvdG90eXBlLl9pPWZ1bmN0aW9uKHQsZSxuLHIsaSl7dmFyIGE9dGhpcy5fdHJhbnNsYXRlKG4sZSx0aGlzLmZhbGxiYWNrTG9jYWxlLHQsciwicmF3IixpKTtpZih0aGlzLl9pc0ZhbGxiYWNrUm9vdChhKSl7aWYoIXRoaXMuX3Jvb3QpdGhyb3cgRXJyb3IoInVuZXhwZWN0ZWQgZXJyb3IiKTtyZXR1cm4gdGhpcy5fcm9vdC4kaTE4bi5pKHQsZSxpKX1yZXR1cm4gdGhpcy5fd2FybkRlZmF1bHQoZSx0LGEscixbaV0sInJhdyIpfSxHLnByb3RvdHlwZS5pPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD8oYyhlKXx8KGU9dGhpcy5sb2NhbGUpLHRoaXMuX2kodCxlLHRoaXMuX2dldE1lc3NhZ2VzKCksbnVsbCxuKSk6IiJ9LEcucHJvdG90eXBlLl90Yz1mdW5jdGlvbih0LGUsbixyLGkpe3ZhciBhLG89W10scz1hcmd1bWVudHMubGVuZ3RoLTU7d2hpbGUocy0tID4wKW9bc109YXJndW1lbnRzW3MrNV07aWYoIXQpcmV0dXJuIiI7dm9pZCAwPT09aSYmKGk9MSk7dmFyIGM9e2NvdW50OmksbjppfSx1PWguYXBwbHkodm9pZCAwLG8pO3JldHVybiB1LnBhcmFtcz1PYmplY3QuYXNzaWduKGMsdS5wYXJhbXMpLG89bnVsbD09PXUubG9jYWxlP1t1LnBhcmFtc106W3UubG9jYWxlLHUucGFyYW1zXSx0aGlzLmZldGNoQ2hvaWNlKChhPXRoaXMpLl90LmFwcGx5KGEsW3QsZSxuLHJdLmNvbmNhdChvKSksaSl9LEcucHJvdG90eXBlLmZldGNoQ2hvaWNlPWZ1bmN0aW9uKHQsZSl7aWYoIXR8fCFjKHQpKXJldHVybiBudWxsO3ZhciBuPXQuc3BsaXQoInwiKTtyZXR1cm4gZT10aGlzLmdldENob2ljZUluZGV4KGUsbi5sZW5ndGgpLG5bZV0/bltlXS50cmltKCk6dH0sRy5wcm90b3R5cGUudGM9ZnVuY3Rpb24odCxlKXt2YXIgbixyPVtdLGk9YXJndW1lbnRzLmxlbmd0aC0yO3doaWxlKGktLSA+MClyW2ldPWFyZ3VtZW50c1tpKzJdO3JldHVybihuPXRoaXMpLl90Yy5hcHBseShuLFt0LHRoaXMubG9jYWxlLHRoaXMuX2dldE1lc3NhZ2VzKCksbnVsbCxlXS5jb25jYXQocikpfSxHLnByb3RvdHlwZS5fdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciByPVtdLGk9YXJndW1lbnRzLmxlbmd0aC0zO3doaWxlKGktLSA+MClyW2ldPWFyZ3VtZW50c1tpKzNdO3ZhciBhPWguYXBwbHkodm9pZCAwLHIpLmxvY2FsZXx8ZTtyZXR1cm4gdGhpcy5fZXhpc3QoblthXSx0KX0sRy5wcm90b3R5cGUudGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdGUodCx0aGlzLmxvY2FsZSx0aGlzLl9nZXRNZXNzYWdlcygpLGUpfSxHLnByb3RvdHlwZS5nZXRMb2NhbGVNZXNzYWdlPWZ1bmN0aW9uKHQpe3JldHVybiBwKHRoaXMuX3ZtLm1lc3NhZ2VzW3RdfHx7fSl9LEcucHJvdG90eXBlLnNldExvY2FsZU1lc3NhZ2U9ZnVuY3Rpb24odCxlKXsid2FybiIhPT10aGlzLl93YXJuSHRtbEluTWVzc2FnZSYmImVycm9yIiE9PXRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlfHx0aGlzLl9jaGVja0xvY2FsZU1lc3NhZ2UodCx0aGlzLl93YXJuSHRtbEluTWVzc2FnZSxlKSx0aGlzLl92bS4kc2V0KHRoaXMuX3ZtLm1lc3NhZ2VzLHQsZSl9LEcucHJvdG90eXBlLm1lcmdlTG9jYWxlTWVzc2FnZT1mdW5jdGlvbih0LGUpeyJ3YXJuIiE9PXRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlJiYiZXJyb3IiIT09dGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2V8fHRoaXMuX2NoZWNrTG9jYWxlTWVzc2FnZSh0LHRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlLGUpLHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0ubWVzc2FnZXMsdCxiKCJ1bmRlZmluZWQiIT09dHlwZW9mIHRoaXMuX3ZtLm1lc3NhZ2VzW3RdJiZPYmplY3Qua2V5cyh0aGlzLl92bS5tZXNzYWdlc1t0XSkubGVuZ3RoP09iamVjdC5hc3NpZ24oe30sdGhpcy5fdm0ubWVzc2FnZXNbdF0pOnt9LGUpKX0sRy5wcm90b3R5cGUuZ2V0RGF0ZVRpbWVGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHAodGhpcy5fdm0uZGF0ZVRpbWVGb3JtYXRzW3RdfHx7fSl9LEcucHJvdG90eXBlLnNldERhdGVUaW1lRm9ybWF0PWZ1bmN0aW9uKHQsZSl7dGhpcy5fdm0uJHNldCh0aGlzLl92bS5kYXRlVGltZUZvcm1hdHMsdCxlKSx0aGlzLl9jbGVhckRhdGVUaW1lRm9ybWF0KHQsZSl9LEcucHJvdG90eXBlLm1lcmdlRGF0ZVRpbWVGb3JtYXQ9ZnVuY3Rpb24odCxlKXt0aGlzLl92bS4kc2V0KHRoaXMuX3ZtLmRhdGVUaW1lRm9ybWF0cyx0LGIodGhpcy5fdm0uZGF0ZVRpbWVGb3JtYXRzW3RdfHx7fSxlKSksdGhpcy5fY2xlYXJEYXRlVGltZUZvcm1hdCh0LGUpfSxHLnByb3RvdHlwZS5fY2xlYXJEYXRlVGltZUZvcm1hdD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKXt2YXIgcj10KyJfXyIrbjt0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnMuaGFzT3duUHJvcGVydHkocikmJmRlbGV0ZSB0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnNbcl19fSxHLnByb3RvdHlwZS5fbG9jYWxpemVEYXRlVGltZT1mdW5jdGlvbih0LGUsbixyLGksYSl7Zm9yKHZhciBvPWUscz1yW29dLGM9dGhpcy5fZ2V0TG9jYWxlQ2hhaW4oZSxuKSx1PTA7dTxjLmxlbmd0aDt1Kyspe3ZhciBsPWNbdV07aWYocz1yW2xdLG89bCwhZihzKSYmIWYoc1tpXSkpYnJlYWt9aWYoZihzKXx8ZihzW2ldKSlyZXR1cm4gbnVsbDt2YXIgZCxoPXNbaV07aWYoYSlkPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KG8sT2JqZWN0LmFzc2lnbih7fSxoLGEpKTtlbHNle3ZhciBwPW8rIl9fIitpO2Q9dGhpcy5fZGF0ZVRpbWVGb3JtYXR0ZXJzW3BdLGR8fChkPXRoaXMuX2RhdGVUaW1lRm9ybWF0dGVyc1twXT1uZXcgSW50bC5EYXRlVGltZUZvcm1hdChvLGgpKX1yZXR1cm4gZC5mb3JtYXQodCl9LEcucHJvdG90eXBlLl9kPWZ1bmN0aW9uKHQsZSxuLHIpe2lmKCFuKXt2YXIgaT1yP25ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGUscik6bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoZSk7cmV0dXJuIGkuZm9ybWF0KHQpfXZhciBhPXRoaXMuX2xvY2FsaXplRGF0ZVRpbWUodCxlLHRoaXMuZmFsbGJhY2tMb2NhbGUsdGhpcy5fZ2V0RGF0ZVRpbWVGb3JtYXRzKCksbixyKTtpZih0aGlzLl9pc0ZhbGxiYWNrUm9vdChhKSl7aWYoIXRoaXMuX3Jvb3QpdGhyb3cgRXJyb3IoInVuZXhwZWN0ZWQgZXJyb3IiKTtyZXR1cm4gdGhpcy5fcm9vdC4kaTE4bi5kKHQsbixlKX1yZXR1cm4gYXx8IiJ9LEcucHJvdG90eXBlLmQ9ZnVuY3Rpb24odCl7dmFyIGU9W10sbj1hcmd1bWVudHMubGVuZ3RoLTE7d2hpbGUobi0tID4wKWVbbl09YXJndW1lbnRzW24rMV07dmFyIGk9dGhpcy5sb2NhbGUsYT1udWxsLHM9bnVsbDtyZXR1cm4gMT09PWUubGVuZ3RoPyhjKGVbMF0pP2E9ZVswXTpvKGVbMF0pJiYoZVswXS5sb2NhbGUmJihpPWVbMF0ubG9jYWxlKSxlWzBdLmtleSYmKGE9ZVswXS5rZXkpKSxzPU9iamVjdC5rZXlzKGVbMF0pLnJlZHVjZSgoZnVuY3Rpb24odCxuKXt2YXIgaTtyZXR1cm4gdihyLG4pP09iamVjdC5hc3NpZ24oe30sdCwoaT17fSxpW25dPWVbMF1bbl0saSkpOnR9KSxudWxsKSk6Mj09PWUubGVuZ3RoJiYoYyhlWzBdKSYmKGE9ZVswXSksYyhlWzFdKSYmKGk9ZVsxXSkpLHRoaXMuX2QodCxpLGEscyl9LEcucHJvdG90eXBlLmdldE51bWJlckZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gcCh0aGlzLl92bS5udW1iZXJGb3JtYXRzW3RdfHx7fSl9LEcucHJvdG90eXBlLnNldE51bWJlckZvcm1hdD1mdW5jdGlvbih0LGUpe3RoaXMuX3ZtLiRzZXQodGhpcy5fdm0ubnVtYmVyRm9ybWF0cyx0LGUpLHRoaXMuX2NsZWFyTnVtYmVyRm9ybWF0KHQsZSl9LEcucHJvdG90eXBlLm1lcmdlTnVtYmVyRm9ybWF0PWZ1bmN0aW9uKHQsZSl7dGhpcy5fdm0uJHNldCh0aGlzLl92bS5udW1iZXJGb3JtYXRzLHQsYih0aGlzLl92bS5udW1iZXJGb3JtYXRzW3RdfHx7fSxlKSksdGhpcy5fY2xlYXJOdW1iZXJGb3JtYXQodCxlKX0sRy5wcm90b3R5cGUuX2NsZWFyTnVtYmVyRm9ybWF0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpe3ZhciByPXQrIl9fIituO3RoaXMuX251bWJlckZvcm1hdHRlcnMuaGFzT3duUHJvcGVydHkocikmJmRlbGV0ZSB0aGlzLl9udW1iZXJGb3JtYXR0ZXJzW3JdfX0sRy5wcm90b3R5cGUuX2dldE51bWJlckZvcm1hdHRlcj1mdW5jdGlvbih0LGUsbixyLGksYSl7Zm9yKHZhciBvPWUscz1yW29dLGM9dGhpcy5fZ2V0TG9jYWxlQ2hhaW4oZSxuKSx1PTA7dTxjLmxlbmd0aDt1Kyspe3ZhciBsPWNbdV07aWYocz1yW2xdLG89bCwhZihzKSYmIWYoc1tpXSkpYnJlYWt9aWYoZihzKXx8ZihzW2ldKSlyZXR1cm4gbnVsbDt2YXIgZCxoPXNbaV07aWYoYSlkPW5ldyBJbnRsLk51bWJlckZvcm1hdChvLE9iamVjdC5hc3NpZ24oe30saCxhKSk7ZWxzZXt2YXIgcD1vKyJfXyIraTtkPXRoaXMuX251bWJlckZvcm1hdHRlcnNbcF0sZHx8KGQ9dGhpcy5fbnVtYmVyRm9ybWF0dGVyc1twXT1uZXcgSW50bC5OdW1iZXJGb3JtYXQobyxoKSl9cmV0dXJuIGR9LEcucHJvdG90eXBlLl9uPWZ1bmN0aW9uKHQsZSxuLHIpe2lmKCFHLmF2YWlsYWJpbGl0aWVzLm51bWJlckZvcm1hdClyZXR1cm4iIjtpZighbil7dmFyIGk9cj9uZXcgSW50bC5OdW1iZXJGb3JtYXQoZSxyKTpuZXcgSW50bC5OdW1iZXJGb3JtYXQoZSk7cmV0dXJuIGkuZm9ybWF0KHQpfXZhciBhPXRoaXMuX2dldE51bWJlckZvcm1hdHRlcih0LGUsdGhpcy5mYWxsYmFja0xvY2FsZSx0aGlzLl9nZXROdW1iZXJGb3JtYXRzKCksbixyKSxvPWEmJmEuZm9ybWF0KHQpO2lmKHRoaXMuX2lzRmFsbGJhY2tSb290KG8pKXtpZighdGhpcy5fcm9vdCl0aHJvdyBFcnJvcigidW5leHBlY3RlZCBlcnJvciIpO3JldHVybiB0aGlzLl9yb290LiRpMThuLm4odCxPYmplY3QuYXNzaWduKHt9LHtrZXk6bixsb2NhbGU6ZX0scikpfXJldHVybiBvfHwiIn0sRy5wcm90b3R5cGUubj1mdW5jdGlvbih0KXt2YXIgZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGgtMTt3aGlsZShyLS0gPjApZVtyXT1hcmd1bWVudHNbcisxXTt2YXIgaT10aGlzLmxvY2FsZSxhPW51bGwscz1udWxsO3JldHVybiAxPT09ZS5sZW5ndGg/YyhlWzBdKT9hPWVbMF06byhlWzBdKSYmKGVbMF0ubG9jYWxlJiYoaT1lWzBdLmxvY2FsZSksZVswXS5rZXkmJihhPWVbMF0ua2V5KSxzPU9iamVjdC5rZXlzKGVbMF0pLnJlZHVjZSgoZnVuY3Rpb24odCxyKXt2YXIgaTtyZXR1cm4gdihuLHIpP09iamVjdC5hc3NpZ24oe30sdCwoaT17fSxpW3JdPWVbMF1bcl0saSkpOnR9KSxudWxsKSk6Mj09PWUubGVuZ3RoJiYoYyhlWzBdKSYmKGE9ZVswXSksYyhlWzFdKSYmKGk9ZVsxXSkpLHRoaXMuX24odCxpLGEscyl9LEcucHJvdG90eXBlLl9udHA9ZnVuY3Rpb24odCxlLG4scil7aWYoIUcuYXZhaWxhYmlsaXRpZXMubnVtYmVyRm9ybWF0KXJldHVybltdO2lmKCFuKXt2YXIgaT1yP25ldyBJbnRsLk51bWJlckZvcm1hdChlLHIpOm5ldyBJbnRsLk51bWJlckZvcm1hdChlKTtyZXR1cm4gaS5mb3JtYXRUb1BhcnRzKHQpfXZhciBhPXRoaXMuX2dldE51bWJlckZvcm1hdHRlcih0LGUsdGhpcy5mYWxsYmFja0xvY2FsZSx0aGlzLl9nZXROdW1iZXJGb3JtYXRzKCksbixyKSxvPWEmJmEuZm9ybWF0VG9QYXJ0cyh0KTtpZih0aGlzLl9pc0ZhbGxiYWNrUm9vdChvKSl7aWYoIXRoaXMuX3Jvb3QpdGhyb3cgRXJyb3IoInVuZXhwZWN0ZWQgZXJyb3IiKTtyZXR1cm4gdGhpcy5fcm9vdC4kaTE4bi5fbnRwKHQsZSxuLHIpfXJldHVybiBvfHxbXX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoRy5wcm90b3R5cGUsUSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEcsImF2YWlsYWJpbGl0aWVzIix7Z2V0OmZ1bmN0aW9uKCl7aWYoIUgpe3ZhciB0PSJ1bmRlZmluZWQiIT09dHlwZW9mIEludGw7SD17ZGF0ZVRpbWVGb3JtYXQ6dCYmInVuZGVmaW5lZCIhPT10eXBlb2YgSW50bC5EYXRlVGltZUZvcm1hdCxudW1iZXJGb3JtYXQ6dCYmInVuZGVmaW5lZCIhPT10eXBlb2YgSW50bC5OdW1iZXJGb3JtYXR9fXJldHVybiBIfX0pLEcuaW5zdGFsbD0kLEcudmVyc2lvbj0iOC4yOC4yIixlWyJkZWZhdWx0Il09R30uY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sYTk3NTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImViYjUiKSxpPW4oImI3MjciKS5ldmVyeSxhPXIuYVR5cGVkQXJyYXksbz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7bygiZXZlcnkiLChmdW5jdGlvbih0KXtyZXR1cm4gaShhKHRoaXMpLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSxhOWFhOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmVtaXQ9dm9pZCAwLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJpbnZva2VDYWxsYmFja0hhbmRsZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhLmludm9rZUNhbGxiYWNrSGFuZGxlcn19KSxlLm9uY2U9ZS5vbj1lLm9mZj12b2lkIDAsT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInB1Ymxpc2hIYW5kbGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5wdWJsaXNoSGFuZGxlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicmVtb3ZlQ2FsbGJhY2tIYW5kbGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS5yZW1vdmVDYWxsYmFja0hhbmRsZXJ9fSksZS5zdWJzY3JpYmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYygidmlldy4iK3QsZSl9LGUuc3Vic2NyaWJlSGFuZGxlcj1mdW5jdGlvbih0LGUsbil7MDtyZXR1cm4gZigidmlldy4iK3QsZSxuKX0sZS51bnN1YnNjcmliZT1mdW5jdGlvbih0LGUpe3JldHVybiB1KCJ2aWV3LiIrdCxlKX0sbigiOTlhZiIpLG4oImU5YzQiKTt2YXIgaT1yKG4oImUxNDMiKSksYT1uKCI0ZjFmIiksbz1uKCI5YTg5Iikscz1uZXcgaS5kZWZhdWx0LGM9cy4kb24uYmluZChzKTtlLm9uPWM7dmFyIHU9cy4kb2ZmLmJpbmQocyk7ZS5vZmY9dTt2YXIgbD1zLiRvbmNlLmJpbmQocyk7ZS5vbmNlPWw7dmFyIGY9cy4kZW1pdC5iaW5kKHMpO2UuZW1pdD1mfSxhOWUzOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiODNhYiIpLGk9bigiZGE4NCIpLGE9bigiZTMzMCIpLG89bigiOTRjYSIpLHM9bigiY2IyZCIpLGM9bigiMWEyZCIpLHU9bigiNzE1NiIpLGw9bigiM2E5YiIpLGY9bigiZDliNSIpLGQ9bigiYzA0ZSIpLGg9bigiZDAzOSIpLHA9bigiMjQxYyIpLmYsdj1uKCIwNmNmIikuZixnPW4oIjliZjIiKS5mLG09bigiNDA4YSIpLGI9bigiNThhOCIpLnRyaW0seT1pWyJOdW1iZXIiXSxfPXkucHJvdG90eXBlLHc9aS5UeXBlRXJyb3IseD1hKCIiLnNsaWNlKSxTPWEoIiIuY2hhckNvZGVBdCksVD1mdW5jdGlvbih0KXt2YXIgZT1kKHQsIm51bWJlciIpO3JldHVybiJiaWdpbnQiPT10eXBlb2YgZT9lOkMoZSl9LEM9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksYSxvLHMsYyx1PWQodCwibnVtYmVyIik7aWYoZih1KSl0aHJvdyB3KCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIG51bWJlciIpO2lmKCJzdHJpbmciPT10eXBlb2YgdSYmdS5sZW5ndGg+MilpZih1PWIodSksZT1TKHUsMCksNDM9PT1lfHw0NT09PWUpe2lmKG49Uyh1LDIpLDg4PT09bnx8MTIwPT09bilyZXR1cm4gTmFOfWVsc2UgaWYoNDg9PT1lKXtzd2l0Y2goUyh1LDEpKXtjYXNlIDY2OmNhc2UgOTg6cj0yLGk9NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpyPTgsaT01NTticmVhaztkZWZhdWx0OnJldHVybit1fWZvcihhPXgodSwyKSxvPWEubGVuZ3RoLHM9MDtzPG87cysrKWlmKGM9UyhhLHMpLGM8NDh8fGM+aSlyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludChhLHIpfXJldHVybit1fTtpZihvKCJOdW1iZXIiLCF5KCIgMG8xIil8fCF5KCIwYjEiKXx8eSgiKzB4MSIpKSl7Zm9yKHZhciBrLE89ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aDwxPzA6eShUKHQpKSxuPXRoaXM7cmV0dXJuIGwoXyxuKSYmaCgoZnVuY3Rpb24oKXttKG4pfSkpP3UoT2JqZWN0KGUpLG4sTyk6ZX0sRT1yP3AoeSk6Ik1BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLEVQU0lMT04sTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLGlzRmluaXRlLGlzSW50ZWdlcixpc05hTixpc1NhZmVJbnRlZ2VyLHBhcnNlRmxvYXQscGFyc2VJbnQsZnJvbVN0cmluZyxyYW5nZSIuc3BsaXQoIiwiKSxJPTA7RS5sZW5ndGg+STtJKyspYyh5LGs9RVtJXSkmJiFjKE8saykmJmcoTyxrLHYoeSxrKSk7Ty5wcm90b3R5cGU9XyxfLmNvbnN0cnVjdG9yPU8scyhpLCJOdW1iZXIiLE8se2NvbnN0cnVjdG9yOiEwfSl9fSxhYTFmOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiODNhYiIpLGk9bigiZDAzOSIpLGE9bigiODI1YSIpLG89bigiN2M3MyIpLHM9bigiZTM5MSIpLGM9RXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLHU9aSgoZnVuY3Rpb24oKXtpZihyKXt2YXIgdD1vKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwibmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzPT09dH19KSk7aWYoInRydWUiIT09Yy5jYWxsKHQpKXJldHVybiEwfXJldHVybiIyOiAxIiE9PWMuY2FsbCh7bWVzc2FnZToxLG5hbWU6Mn0pfHwiRXJyb3IiIT09Yy5jYWxsKHt9KX0pKTt0LmV4cG9ydHM9dT9mdW5jdGlvbigpe3ZhciB0PWEodGhpcyksZT1zKHQubmFtZSwiRXJyb3IiKSxuPXModC5tZXNzYWdlKTtyZXR1cm4gZT9uP2UrIjogIituOmU6bn06Y30sYWFjNzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsZSl7dmFyIG49dC4kcm91dGU7dC5yb3V0ZT1uLm1ldGEucGFnZVBhdGgsdC5vcHRpb25zfHwodC5vcHRpb25zPWUpO3ZhciByPSgwLGkuaGFzT3duKShuLnBhcmFtcywiX19pZF9fIik/bi5wYXJhbXMuX19pZF9fOm4ubWV0YS5pZCxvPW4uZnVsbFBhdGg7bi5tZXRhLmlzRW50cnkmJi0xPT09by5pbmRleE9mKG4ubWV0YS5wYWdlUGF0aCkmJihvPSIvIituLm1ldGEucGFnZVBhdGgrby5yZXBsYWNlKCIvIiwiIikpO3QuX19wYWdlX189e2lkOnIscGF0aDpuLnBhdGgscm91dGU6bi5tZXRhLnBhZ2VQYXRoLGZ1bGxQYXRoOm8sb3B0aW9uczplLG1ldGE6T2JqZWN0LmFzc2lnbih7fSxuLm1ldGEpfTt2YXIgcz10LiRyb3V0ZXIuJGV2ZW50Q2hhbm5lbHx8bmV3IGEuZGVmYXVsdDt0LmdldE9wZW5lckV2ZW50Q2hhbm5lbD1mdW5jdGlvbigpe3JldHVybiBzfSx0LiR2bT10LHQuJHJvb3Q9dCx0LiRob2xkZXI9dC4kcGFyZW50LiRwYXJlbnQsdC4kbXA9e21wVHlwZToicGFnZSIscGFnZTp0LHF1ZXJ5Ont9LHN0YXR1czoiIn19LG4oImM5NzUiKSxuKCJhYzFmIiksbigiNTMxOSIpO3ZhciBpPW4oImRiNmEiKSxhPXIobigiNWUxMyIpKX0sYWIxMzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYjYyMiIpLGk9cigibWF0Y2giKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9Ly4vO3RyeXsiLy4vIlt0XShlKX1jYXRjaChuKXt0cnl7cmV0dXJuIGVbaV09ITEsIi8uLyJbdF0oZSl9Y2F0Y2gocil7fX1yZXR1cm4hMX19LGFiMzY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjg2MWQiKSxpPW4oIjkxMTIiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyKGUpJiYiY2F1c2UiaW4gZSYmaSh0LCJjYXVzZSIsZS5jYXVzZSl9fSxhYmY0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciByPTFlNSxpPXtuYW1lOiJSZXNpemVTZW5zb3IiLHByb3BzOntpbml0aWFsOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57c2l6ZTp7d2lkdGg6LTEsaGVpZ2h0Oi0xfX19LHdhdGNoOntzaXplOntkZWVwOiEwLGhhbmRsZXI6ZnVuY3Rpb24odCl7dGhpcy4kZW1pdCgicmVzaXplIixPYmplY3QuYXNzaWduKHt9LHQpKX19fSxtb3VudGVkOmZ1bmN0aW9uKCl7ITA9PT10aGlzLmluaXRpYWwmJnRoaXMuJG5leHRUaWNrKHRoaXMudXBkYXRlKSx0aGlzLiRlbC5vZmZzZXRQYXJlbnQhPT10aGlzLiRlbC5wYXJlbnROb2RlJiYodGhpcy4kZWwucGFyZW50Tm9kZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSwiQW5pbWF0aW9uRXZlbnQiaW4gd2luZG93fHx0aGlzLnJlc2V0KCl9LGFjdGl2YXRlZDpmdW5jdGlvbigpe3RoaXMucmVzZXQoKX0sbWV0aG9kczp7cmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRlbC5maXJzdENoaWxkO3Quc2Nyb2xsTGVmdD1yLHQuc2Nyb2xsVG9wPXI7dmFyIGU9dGhpcy4kZWwubGFzdENoaWxkO2Uuc2Nyb2xsTGVmdD1yLGUuc2Nyb2xsVG9wPXJ9LHVwZGF0ZTpmdW5jdGlvbigpe3RoaXMuc2l6ZS53aWR0aD10aGlzLiRlbC5vZmZzZXRXaWR0aCx0aGlzLnNpemUuaGVpZ2h0PXRoaXMuJGVsLm9mZnNldEhlaWdodCx0aGlzLnJlc2V0KCl9fX07ZS5kZWZhdWx0PWl9LGFjMWY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCI5MjYzIik7cih7dGFyZ2V0OiJSZWdFeHAiLHByb3RvOiEwLGZvcmNlZDovLi8uZXhlYyE9PWl9LHtleGVjOml9KX0sYWNhNzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIwYTg3Iik7Zm9yKHZhciBpIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihpKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShpKTt2YXIgYT1uKCJmMGM1Iiksbz1PYmplY3QoYVsiYSJdKShyWyJkZWZhdWx0Il0sdm9pZCAwLHZvaWQgMCwhMSxudWxsLG51bGwsbnVsbCwhMSx2b2lkIDAsdm9pZCAwKTtlWyJkZWZhdWx0Il09by5leHBvcnRzfSxhY2FjOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZTMzMCIpLGk9bigiNjk2NCIpLGE9bigiZjE4MyIpLmdldFdlYWtEYXRhLG89bigiMTlhYSIpLHM9bigiODI1YSIpLGM9bigiNzIzNCIpLHU9bigiODYxZCIpLGw9bigiMjI2NiIpLGY9bigiYjcyNyIpLGQ9bigiMWEyZCIpLGg9bigiNjlmMyIpLHA9aC5zZXQsdj1oLmdldHRlckZvcixnPWYuZmluZCxtPWYuZmluZEluZGV4LGI9cihbXS5zcGxpY2UpLHk9MCxfPWZ1bmN0aW9uKHQpe3JldHVybiB0LmZyb3plbnx8KHQuZnJvemVuPW5ldyB3KX0sdz1mdW5jdGlvbigpe3RoaXMuZW50cmllcz1bXX0seD1mdW5jdGlvbih0LGUpe3JldHVybiBnKHQuZW50cmllcywoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF09PT1lfSkpfTt3LnByb3RvdHlwZT17Z2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXgodGhpcyx0KTtpZihlKXJldHVybiBlWzFdfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuISF4KHRoaXMsdCl9LHNldDpmdW5jdGlvbih0LGUpe3ZhciBuPXgodGhpcyx0KTtuP25bMV09ZTp0aGlzLmVudHJpZXMucHVzaChbdCxlXSl9LGRlbGV0ZTpmdW5jdGlvbih0KXt2YXIgZT1tKHRoaXMuZW50cmllcywoZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF09PT10fSkpO3JldHVybn5lJiZiKHRoaXMuZW50cmllcyxlLDEpLCEhfmV9fSx0LmV4cG9ydHM9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBmPXQoKGZ1bmN0aW9uKHQsaSl7byh0LGgpLHAodCx7dHlwZTplLGlkOnkrKyxmcm96ZW46dm9pZCAwfSksYyhpKXx8bChpLHRbcl0se3RoYXQ6dCxBU19FTlRSSUVTOm59KX0pKSxoPWYucHJvdG90eXBlLGc9dihlKSxtPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1nKHQpLGk9YShzKGUpLCEwKTtyZXR1cm4hMD09PWk/XyhyKS5zZXQoZSxuKTppW3IuaWRdPW4sdH07cmV0dXJuIGkoaCx7ZGVsZXRlOmZ1bmN0aW9uKHQpe3ZhciBlPWcodGhpcyk7aWYoIXUodCkpcmV0dXJuITE7dmFyIG49YSh0KTtyZXR1cm4hMD09PW4/XyhlKVsiZGVsZXRlIl0odCk6biYmZChuLGUuaWQpJiZkZWxldGUgbltlLmlkXX0saGFzOmZ1bmN0aW9uKHQpe3ZhciBlPWcodGhpcyk7aWYoIXUodCkpcmV0dXJuITE7dmFyIG49YSh0KTtyZXR1cm4hMD09PW4/XyhlKS5oYXModCk6biYmZChuLGUuaWQpfX0pLGkoaCxuP3tnZXQ6ZnVuY3Rpb24odCl7dmFyIGU9Zyh0aGlzKTtpZih1KHQpKXt2YXIgbj1hKHQpO3JldHVybiEwPT09bj9fKGUpLmdldCh0KTpuP25bZS5pZF06dm9pZCAwfX0sc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG0odGhpcyx0LGUpfX06e2FkZDpmdW5jdGlvbih0KXtyZXR1cm4gbSh0aGlzLHQsITApfX0pLGZ9fX0sYWNkODpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiN2UxMiIpO3Ioe2dsb2JhbDohMCxmb3JjZWQ6cGFyc2VGbG9hdCE9aX0se3BhcnNlRmxvYXQ6aX0pfSxhY2U0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiNDYyNSIpLGE9bigiZDAzOSIpLG89bigiNjIxYSIpLHM9bigiODI1YSIpLGM9bigiMjNjYiIpLHU9bigiNTBjNCIpLGw9bigiNDg0MCIpLGY9by5BcnJheUJ1ZmZlcixkPW8uRGF0YVZpZXcsaD1kLnByb3RvdHlwZSxwPWkoZi5wcm90b3R5cGUuc2xpY2UpLHY9aShoLmdldFVpbnQ4KSxnPWkoaC5zZXRVaW50OCksbT1hKChmdW5jdGlvbigpe3JldHVybiFuZXcgZigyKS5zbGljZSgxLHZvaWQgMCkuYnl0ZUxlbmd0aH0pKTtyKHt0YXJnZXQ6IkFycmF5QnVmZmVyIixwcm90bzohMCx1bnNhZmU6ITAsZm9yY2VkOm19LHtzbGljZTpmdW5jdGlvbih0LGUpe2lmKHAmJnZvaWQgMD09PWUpcmV0dXJuIHAocyh0aGlzKSx0KTt2YXIgbj1zKHRoaXMpLmJ5dGVMZW5ndGgscj1jKHQsbiksaT1jKHZvaWQgMD09PWU/bjplLG4pLGE9bmV3KGwodGhpcyxmKSkodShpLXIpKSxvPW5ldyBkKHRoaXMpLGg9bmV3IGQoYSksbT0wO3doaWxlKHI8aSlnKGgsbSsrLHYobyxyKyspKTtyZXR1cm4gYX19KX0sYWQ2ZDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjgyNWEiKTt0LmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdD1yKHRoaXMpLGU9IiI7cmV0dXJuIHQuaGFzSW5kaWNlcyYmKGUrPSJkIiksdC5nbG9iYWwmJihlKz0iZyIpLHQuaWdub3JlQ2FzZSYmKGUrPSJpIiksdC5tdWx0aWxpbmUmJihlKz0ibSIpLHQuZG90QWxsJiYoZSs9InMiKSx0LnVuaWNvZGUmJihlKz0idSIpLHQudW5pY29kZVNldHMmJihlKz0idiIpLHQuc3RpY2t5JiYoZSs9InkiKSxlfX0sYWRkYjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNGRhZSIpLGk9TWF0aC5mbG9vcixhPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5sZW5ndGgsYz1pKG4vMik7cmV0dXJuIG48OD9vKHQsZSk6cyh0LGEocih0LDAsYyksZSksYShyKHQsYyksZSksZSl9LG89ZnVuY3Rpb24odCxlKXt2YXIgbixyLGk9dC5sZW5ndGgsYT0xO3doaWxlKGE8aSl7cj1hLG49dFthXTt3aGlsZShyJiZlKHRbci0xXSxuKT4wKXRbcl09dFstLXJdO3IhPT1hKysmJih0W3JdPW4pfXJldHVybiB0fSxzPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPWUubGVuZ3RoLGE9bi5sZW5ndGgsbz0wLHM9MDt3aGlsZShvPGl8fHM8YSl0W28rc109bzxpJiZzPGE/cihlW29dLG5bc10pPD0wP2VbbysrXTpuW3MrK106bzxpP2VbbysrXTpuW3MrK107cmV0dXJuIHR9O3QuZXhwb3J0cz1hfSxhZGUzOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0LGUsbil7ZT0oMCxyLmRlZmF1bHQpKGUpLGUgaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1uO3JldHVybiB0fSxuKCI3YTgyIik7dmFyIHI9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fShuKCJhMzhlIikpfSxhZTkzOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsaSxhLG89bigiZDAzOSIpLHM9bigiMTYyNiIpLGM9bigiODYxZCIpLHU9bigiN2M3MyIpLGw9bigiZTE2MyIpLGY9bigiY2IyZCIpLGQ9bigiYjYyMiIpLGg9bigiYzQzMCIpLHA9ZCgiaXRlcmF0b3IiKSx2PSExO1tdLmtleXMmJihhPVtdLmtleXMoKSwibmV4dCJpbiBhPyhpPWwobChhKSksaSE9PU9iamVjdC5wcm90b3R5cGUmJihyPWkpKTp2PSEwKTt2YXIgZz0hYyhyKXx8bygoZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gcltwXS5jYWxsKHQpIT09dH0pKTtnP3I9e306aCYmKHI9dShyKSkscyhyW3BdKXx8ZihyLHAsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksdC5leHBvcnRzPXtJdGVyYXRvclByb3RvdHlwZTpyLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6dn19LGFlYjA6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjliZjIiKS5mO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbil7biBpbiB0fHxyKHQsbix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlW25dfSxzZXQ6ZnVuY3Rpb24odCl7ZVtuXT10fX0pfX0sYWVkOTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiZDAzOSIpO3QuZXhwb3J0cz1yJiZpKChmdW5jdGlvbigpe3JldHVybiA0MiE9T2JqZWN0LmRlZmluZVByb3BlcnR5KChmdW5jdGlvbigpe30pLCJwcm90b3R5cGUiLHt2YWx1ZTo0Mix3cml0YWJsZTohMX0pLnByb3RvdHlwZX0pKX0sYWYyMDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCJjNzdiIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxhZjUwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9PSgwLHIuZGVmYXVsdCkodCl8fG51bGw9PT10KXJldHVybiB0O3ZhciBuPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgaT1uLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT09KDAsci5kZWZhdWx0KShpKSlyZXR1cm4gaTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWU/U3RyaW5nOk51bWJlcikodCl9LG4oIjgxNzIiKSxuKCJlZmVjIiksbigiYTRkMyIpLG4oImUwMWEiKSxuKCJkM2I3IiksbigiZDllMiIpLG4oImQ0MDEiKSxuKCJhOWUzIik7dmFyIHI9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fShuKCI1M2NhIikpfSxhZjU1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiBuKCJ0cmFuc2l0aW9uIix7YXR0cnM6e25hbWU6InVuaS1mYWRlIn19LFtuKCJ1bmktbW9kYWwiLHtkaXJlY3RpdmVzOlt7bmFtZToic2hvdyIscmF3TmFtZToidi1zaG93Iix2YWx1ZTp0LnZpc2libGUsZXhwcmVzc2lvbjoidmlzaWJsZSJ9XSxvbjp7dG91Y2htb3ZlOmZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKX19fSxbbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1tYXNrIn0pLG4oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktbW9kYWwifSxbdC50aXRsZT9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLW1vZGFsX19oZCJ9LFtuKCJzdHJvbmciLHtzdGF0aWNDbGFzczoidW5pLW1vZGFsX190aXRsZSIsZG9tUHJvcHM6e3RleHRDb250ZW50OnQuX3ModC50aXRsZSl9fSldKTp0Ll9lKCksdC5lZGl0YWJsZT9uKCJ0ZXh0YXJlYSIse3JlZjoiZWRpdENvbnRlbnQiLHN0YXRpY0NsYXNzOiJ1bmktbW9kYWxfX3RleHRhcmVhIixhdHRyczp7cm93czoiMSIscGxhY2Vob2xkZXI6dC5wbGFjZWhvbGRlclRleHR9LGRvbVByb3BzOnt2YWx1ZTp0LmNvbnRlbnR9fSk6bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1tb2RhbF9fYmQiLGRvbVByb3BzOnt0ZXh0Q29udGVudDp0Ll9zKHQuY29udGVudCl9LG9uOnt0b3VjaG1vdmU6ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX19fSksbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1tb2RhbF9fZnQifSxbdC5zaG93Q2FuY2VsP24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktbW9kYWxfX2J0biB1bmktbW9kYWxfX2J0bl9kZWZhdWx0IixzdHlsZTp7Y29sb3I6dC5jYW5jZWxDb2xvcl99LG9uOntjbGljazpmdW5jdGlvbihlKXtyZXR1cm4gdC5fY2xvc2UoImNhbmNlbCIpfX19LFt0Ll92KCJcbiAgICAgICAgICAiK3QuX3ModC5jYW5jZWxUZXh0KSsiXG4gICAgICAgICIpXSk6dC5fZSgpLG4oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktbW9kYWxfX2J0biB1bmktbW9kYWxfX2J0bl9wcmltYXJ5IixzdHlsZTp7Y29sb3I6dC5jb25maXJtQ29sb3J9LG9uOntjbGljazpmdW5jdGlvbihlKXtyZXR1cm4gdC5fY2xvc2UoImNvbmZpcm0iKX19fSxbdC5fdigiXG4gICAgICAgICAgIit0Ll9zKHQuY29uZmlybVRleHQpKyJcbiAgICAgICAgIildKV0pXSksbigia2V5cHJlc3MiLHthdHRyczp7ZGlzYWJsZTohdC52aXNpYmxlfSxvbjp7ZXNjOmZ1bmN0aW9uKGUpe3JldHVybiB0Ll9jbG9zZSgiY2FuY2VsIil9LGVudGVyOmZ1bmN0aW9uKGUpeyF0LmVkaXRhYmxlJiZ0Ll9jbG9zZSgiY29uZmlybSIpfX19KV0sMSldLDEpfSxpPVtdfSxhZjkwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXt0LmJlaGF2aW9ycy5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgcj1vW25dO3ImJnIuaW5pdCh0LGUpfSkpfSxuKCJkM2I3IiksbigiMTU5YiIpO3ZhciBpPXIobigiYWRlMyIpKSxhPXIobigiMWI3MSIpKSxvPSgwLGkuZGVmYXVsdCkoe30sYS5kZWZhdWx0Lm5hbWUsYS5kZWZhdWx0KX0sYjAxYjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgcj1uKCI4YTUwIiksaT17cmVxdWVzdENvbXBvbmVudEluZm86ci5yZXF1ZXN0Q29tcG9uZW50SW5mb307ZS5kZWZhdWx0PWl9LGIwNDE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIwMGVlIiksaT1uKCJmNWRmIik7dC5leHBvcnRzPXI/e30udG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCAiK2kodGhpcykrIl0ifX0sYjI4NjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5iYXNlNjRUb0ZpbGU9byxlLmJsb2JUb0ZpbGU9cyxlLmZpbGVUb1VybD1jLGUuZ2V0RmlsZU5hbWU9ZnVuY3Rpb24odCl7dD10LnNwbGl0KCIjIilbMF0uc3BsaXQoIj8iKVswXTt2YXIgZT10LnNwbGl0KCIvIik7cmV0dXJuIGVbZS5sZW5ndGgtMV19LGUuZ2V0U2FtZU9yaWdpblVybD1mdW5jdGlvbih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7aWYoZS5ocmVmPXQsZS5vcmlnaW49PT1sb2NhdGlvbi5vcmlnaW4pcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0KTtyZXR1cm4gYSh0KS50aGVuKGMpfSxlLnJldm9rZU9iamVjdFVSTD1mdW5jdGlvbih0KXsod2luZG93LlVSTHx8d2luZG93LndlYmtpdFVSTCkucmV2b2tlT2JqZWN0VVJMKHQpLGRlbGV0ZSBpW3RdfSxlLnVybFRvRmlsZT1hLG4oImQzYjciKSxuKCJhYzFmIiksbigiMDBiNCIpLG4oImQ5ZTIiKSxuKCJkNDAxIiksbigiNDY2ZCIpLG4oIjgxYjIiKSxuKCIwZWI2IiksbigiYjdlZiIpLG4oIjhiZDQiKSxuKCJhY2U0IiksbigiNWNjNiIpLG4oIjkwN2EiKSxuKCI5YThjIiksbigiYTk3NSIpLG4oIjczNWUiKSxuKCJjMWFjIiksbigiZDEzOSIpLG4oIjNhN2IiKSxuKCI5ODZhIiksbigiMWQwMiIpLG4oImQ1ZDYiKSxuKCI4MmY4IiksbigiZTkxZiIpLG4oIjYwYmQiKSxuKCI1Zjk2IiksbigiMzI4MCIpLG4oIjNmY2MiKSxuKCJjYTkxIiksbigiMjVhMSIpLG4oImNkMjYiKSxuKCIzYzVkIiksbigiMjk1NCIpLG4oIjY0OWUiKSxuKCIyMTljIiksbigiYjM5YSIpLG4oIjcyZjciKSxuKCI5OWFmIiksbigiM2NhMyIpLG4oImRkYjAiKSxuKCIyYjNkIiksbigiOTg2MSIpO3ZhciByPW4oImRiNmEiKSxpPXt9O2Z1bmN0aW9uIGEodCxlKXt2YXIgbj1pW3RdO3JldHVybiBuP1Byb21pc2UucmVzb2x2ZShuKTovXmRhdGE6W2Etei1dK1wvW2Etei1dKztiYXNlNjQsLy50ZXN0KHQpP1Byb21pc2UucmVzb2x2ZShvKHQpKTplP1Byb21pc2UucmVqZWN0KG5ldyBFcnJvcigibm90IGZpbmQiKSk6bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUsbil7dmFyIHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3Iub3BlbigiR0VUIix0LCEwKSxyLnJlc3BvbnNlVHlwZT0iYmxvYiIsci5vbmxvYWQ9ZnVuY3Rpb24oKXtlKHRoaXMucmVzcG9uc2UpfSxyLm9uZXJyb3I9bixyLnNlbmQoKX0pKX1mdW5jdGlvbiBvKHQpe3Q9dC5zcGxpdCgiLCIpO3ZhciBlPXRbMF0ubWF0Y2goLzooLio/KTsvKVsxXSxuPWF0b2IodFsxXSkscj1uLmxlbmd0aCxpPW5ldyBVaW50OEFycmF5KHIpO3doaWxlKHItLSlpW3JdPW4uY2hhckNvZGVBdChyKTtyZXR1cm4gcyhpLGUpfWZ1bmN0aW9uIHModCxlKXtpZighKHQgaW5zdGFuY2VvZiBGaWxlKSl7ZT1lfHx0LnR5cGV8fCIiO3ZhciBuPSIiLmNvbmNhdChEYXRlLm5vdygpKS5jb25jYXQoZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCgiLyIpWzFdO3JldHVybiBlPyIuIi5jb25jYXQoZSk6IiJ9KGUpKTt0cnl7dD1uZXcgRmlsZShbdF0sbix7dHlwZTplfSl9Y2F0Y2gocil7dD10IGluc3RhbmNlb2YgQmxvYj90Om5ldyBCbG9iKFt0XSx7dHlwZTplfSksdC5uYW1lPXQubmFtZXx8bn19cmV0dXJuIHR9ZnVuY3Rpb24gYyh0KXtmb3IodmFyIGUgaW4gaSlpZigoMCxyLmhhc093bikoaSxlKSl7dmFyIG49aVtlXTtpZihuPT09dClyZXR1cm4gZX12YXIgYT0od2luZG93LlVSTHx8d2luZG93LndlYmtpdFVSTCkuY3JlYXRlT2JqZWN0VVJMKHQpO3JldHVybiBpW2FdPXQsYX19LGIzMzQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnBhZ2VTY3JvbGxUbz1mdW5jdGlvbihlKXt2YXIgbj1nZXRDdXJyZW50UGFnZXMoKTtuLmxlbmd0aCYmdC5wdWJsaXNoSGFuZGxlcigicGFnZVNjcm9sbFRvIixlLG5bbi5sZW5ndGgtMV0uJHBhZ2UuaWQpO3JldHVybnt9fX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSxiMzlhOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZGE4NCIpLGk9bigiMmJhNCIpLGE9bigiZWJiNSIpLG89bigiZDAzOSIpLHM9bigiZjM2YSIpLGM9ci5JbnQ4QXJyYXksdT1hLmFUeXBlZEFycmF5LGw9YS5leHBvcnRUeXBlZEFycmF5TWV0aG9kLGY9W10udG9Mb2NhbGVTdHJpbmcsZD0hIWMmJm8oKGZ1bmN0aW9uKCl7Zi5jYWxsKG5ldyBjKDEpKX0pKSxoPW8oKGZ1bmN0aW9uKCl7cmV0dXJuWzEsMl0udG9Mb2NhbGVTdHJpbmcoKSE9bmV3IGMoWzEsMl0pLnRvTG9jYWxlU3RyaW5nKCl9KSl8fCFvKChmdW5jdGlvbigpe2MucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmNhbGwoWzEsMl0pfSkpO2woInRvTG9jYWxlU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4gaShmLGQ/cyh1KHRoaXMpKTp1KHRoaXMpLHMoYXJndW1lbnRzKSl9KSxoKX0sYjQyZTpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguY2VpbCxyPU1hdGguZmxvb3I7dC5leHBvcnRzPU1hdGgudHJ1bmN8fGZ1bmN0aW9uKHQpe3ZhciBlPSt0O3JldHVybihlPjA/cjpuKShlKX19LGI0NmY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0LGUpe2UuZ2V0QXBwO3ZhciBuPWUuZ2V0Q3VycmVudFBhZ2VzO2Z1bmN0aW9uIHIodCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cj1wYXJzZUludChyKTt2YXIgaT1uKCksbz1pLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LiRwYWdlLmlkPT09cn0pKTtvJiYoMCxhLmNhbGxQYWdlSG9vaykobyx0LGUpfX12YXIgbz0oMCxpLmRlZmF1bHQpKCJyZXF1ZXN0Q29tcG9uZW50SW5mbyIpO3ZhciBzPSgwLGkuZGVmYXVsdCkoInJlcXVlc3RDb21wb25lbnRPYnNlcnZlciIpO3ZhciBjPSgwLGkuZGVmYXVsdCkoInJlcXVlc3RNZWRpYVF1ZXJ5T2JzZXJ2ZXIiKTt0KCJvblBhZ2VSZWFkeSIscigib25SZWFkeSIpKTt0KCJvblBhZ2VTY3JvbGwiLHIoIm9uUGFnZVNjcm9sbCIpKSx0KCJvblJlYWNoQm90dG9tIixyKCJvblJlYWNoQm90dG9tIikpLHQoIm9uUmVxdWVzdENvbXBvbmVudEluZm8iLChmdW5jdGlvbih0KXt2YXIgZT10LnJlcUlkLG49dC5yZXMscj1vLnBvcChlKTtyJiZyKG4pfSkpLHQoIm9uUmVxdWVzdENvbXBvbmVudE9ic2VydmVyIiwoZnVuY3Rpb24odCl7dmFyIGU9dC5yZXFJZCxuPXQucmVxRW5kLHI9dC5yZXMsaT1zLmdldChlKTtpZihpKXtpZihuKXJldHVybiB2b2lkIHMucG9wKGUpO2kocil9fSkpLHQoIm9uUmVxdWVzdE1lZGlhUXVlcnlPYnNlcnZlciIsKGZ1bmN0aW9uKHQpe3ZhciBlPXQucmVxSWQsbj10LnJlcUVuZCxyPXQucmVzLGk9Yy5nZXQoZSk7aWYoaSl7aWYobilyZXR1cm4gdm9pZCBjLnBvcChlKTtpKHIpfX0pKX0sbigiZTI1ZSIpLG4oIjdkYjAiKSxuKCJkM2I3Iik7dmFyIGk9cihuKCJmZjIyIikpLGE9bigiNTU5YSIpfSxiNDc5OmZ1bmN0aW9uKHQpe3QuZXhwb3J0cz1KU09OLnBhcnNlKCd7InVuaS5hcHAucXVpdCI6IuWGjeaMieS4gOasoemAgOWHuuW6lOeUqCIsInVuaS5hc3luYy5lcnJvciI6Iui/nuaOpeacjeWKoeWZqOi2heaXtu+8jOeCueWHu+Wxj+W5lemHjeivlSIsInVuaS5zaG93QWN0aW9uU2hlZXQuY2FuY2VsIjoi5Y+W5raIIiwidW5pLnNob3dUb2FzdC51bnBhaXJlZCI6Iuivt+azqOaEjyBzaG93VG9hc3Qg5LiOIGhpZGVUb2FzdCDlv4XpobvphY3lr7nkvb/nlKgiLCJ1bmkuc2hvd0xvYWRpbmcudW5wYWlyZWQiOiLor7fms6jmhI8gc2hvd0xvYWRpbmcg5LiOIGhpZGVMb2FkaW5nIOW/hemhu+mFjeWvueS9v+eUqCIsInVuaS5zaG93TW9kYWwuY2FuY2VsIjoi5Y+W5raIIiwidW5pLnNob3dNb2RhbC5jb25maXJtIjoi56Gu5a6aIiwidW5pLmNob29zZUltYWdlLmNhbmNlbCI6IuWPlua2iCIsInVuaS5jaG9vc2VJbWFnZS5zb3VyY2VUeXBlLmFsYnVtIjoi5LuO55u45YaM6YCJ5oupIiwidW5pLmNob29zZUltYWdlLnNvdXJjZVR5cGUuY2FtZXJhIjoi5ouN5pGEIiwidW5pLmNob29zZVZpZGVvLmNhbmNlbCI6IuWPlua2iCIsInVuaS5jaG9vc2VWaWRlby5zb3VyY2VUeXBlLmFsYnVtIjoi5LuO55u45YaM6YCJ5oupIiwidW5pLmNob29zZVZpZGVvLnNvdXJjZVR5cGUuY2FtZXJhIjoi5ouN5pGEIiwidW5pLmNob29zZUZpbGUubm90VXNlckFjdGl2YXRpb24iOiLmlofku7bpgInmi6nlmajlr7nor53moYblj6rog73lnKjnlLHnlKjmiLfmv4DmtLvml7bmmL7npLoiLCJ1bmkucHJldmlld0ltYWdlLmNhbmNlbCI6IuWPlua2iCIsInVuaS5wcmV2aWV3SW1hZ2UuYnV0dG9uLnNhdmUiOiLkv53lrZjlm77lg48iLCJ1bmkucHJldmlld0ltYWdlLnNhdmUuc3VjY2VzcyI6IuS/neWtmOWbvuWDj+WIsOebuOWGjOaIkOWKnyIsInVuaS5wcmV2aWV3SW1hZ2Uuc2F2ZS5mYWlsIjoi5L+d5a2Y5Zu+5YOP5Yiw55u45YaM5aSx6LSlIiwidW5pLnNldENsaXBib2FyZERhdGEuc3VjY2VzcyI6IuWGheWuueW3suWkjeWItiIsInVuaS5zY2FuQ29kZS50aXRsZSI6IuaJq+eggSIsInVuaS5zY2FuQ29kZS5hbGJ1bSI6IuebuOWGjCIsInVuaS5zY2FuQ29kZS5mYWlsIjoi6K+G5Yir5aSx6LSlIiwidW5pLnNjYW5Db2RlLmZsYXNoLm9uIjoi6L276Kem54Wn5LquIiwidW5pLnNjYW5Db2RlLmZsYXNoLm9mZiI6Iui9u+inpuWFs+mXrSIsInVuaS5zdGFydFNvdGVyQXV0aGVudGljYXRpb24uYXV0aENvbnRlbnQiOiLmjIfnurnor4bliKvkuK0uLi4iLCJ1bmkuc3RhcnRTb3RlckF1dGhlbnRpY2F0aW9uLndhaXRpbmdDb250ZW50Ijoi5peg5rOV6K+G5YirIiwidW5pLnBpY2tlci5kb25lIjoi5a6M5oiQIiwidW5pLnBpY2tlci5jYW5jZWwiOiLlj5bmtogiLCJ1bmkudmlkZW8uZGFubXUiOiLlvLnluZUiLCJ1bmkudmlkZW8udm9sdW1lIjoi6Z+z6YePIiwidW5pLmJ1dHRvbi5mZWVkYmFjay50aXRsZSI6IumXrumimOWPjemmiCIsInVuaS5idXR0b24uZmVlZGJhY2suc2VuZCI6IuWPkemAgSIsInVuaS5jaG9vc2VMb2NhdGlvbi5zZWFyY2giOiLmkJzntKLlnLDngrkiLCJ1bmkuY2hvb3NlTG9jYXRpb24uY2FuY2VsIjoi5Y+W5raIIn0nKX0sYjRmODpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiZDA2NiIpLGE9bigiMWEyZCIpLG89bigiNTc3ZSIpLHM9bigiNTY5MiIpLGM9bigiMGI0MyIpLHU9cygic3RyaW5nLXRvLXN5bWJvbC1yZWdpc3RyeSIpLGw9cygic3ltYm9sLXRvLXN0cmluZy1yZWdpc3RyeSIpO3Ioe3RhcmdldDoiU3ltYm9sIixzdGF0OiEwLGZvcmNlZDohY30se2ZvcjpmdW5jdGlvbih0KXt2YXIgZT1vKHQpO2lmKGEodSxlKSlyZXR1cm4gdVtlXTt2YXIgbj1pKCJTeW1ib2wiKShlKTtyZXR1cm4gdVtlXT1uLGxbbl09ZSxufX0pfSxiNTc1OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpLGEsbyxzLGMsdSxsLGY9bigiZGE4NCIpLGQ9bigiMDM2NiIpLGg9bigiMDZjZiIpLmYscD1uKCIyY2Y0Iikuc2V0LHY9bigiMWNkYyIpLGc9bigiZDRjMyIpLG09bigiYTRiNCIpLGI9bigiNjA1ZCIpLHk9Zi5NdXRhdGlvbk9ic2VydmVyfHxmLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIsXz1mLmRvY3VtZW50LHc9Zi5wcm9jZXNzLHg9Zi5Qcm9taXNlLFM9aChmLCJxdWV1ZU1pY3JvdGFzayIpLFQ9UyYmUy52YWx1ZTtUfHwocj1mdW5jdGlvbigpe3ZhciB0LGU7YiYmKHQ9dy5kb21haW4pJiZ0LmV4aXQoKTt3aGlsZShpKXtlPWkuZm4saT1pLm5leHQ7dHJ5e2UoKX1jYXRjaChuKXt0aHJvdyBpP28oKTphPXZvaWQgMCxufX1hPXZvaWQgMCx0JiZ0LmVudGVyKCl9LHZ8fGJ8fG18fCF5fHwhXz8hZyYmeCYmeC5yZXNvbHZlPyh1PXgucmVzb2x2ZSh2b2lkIDApLHUuY29uc3RydWN0b3I9eCxsPWQodS50aGVuLHUpLG89ZnVuY3Rpb24oKXtsKHIpfSk6Yj9vPWZ1bmN0aW9uKCl7dy5uZXh0VGljayhyKX06KHA9ZChwLGYpLG89ZnVuY3Rpb24oKXtwKHIpfSk6KHM9ITAsYz1fLmNyZWF0ZVRleHROb2RlKCIiKSxuZXcgeShyKS5vYnNlcnZlKGMse2NoYXJhY3RlckRhdGE6ITB9KSxvPWZ1bmN0aW9uKCl7Yy5kYXRhPXM9IXN9KSksdC5leHBvcnRzPVR8fGZ1bmN0aW9uKHQpe3ZhciBlPXtmbjp0LG5leHQ6dm9pZCAwfTthJiYoYS5uZXh0PWUpLGl8fChpPWUsbygpKSxhPWV9fSxiNjIyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkYTg0IiksaT1uKCI1NjkyIiksYT1uKCIxYTJkIiksbz1uKCI5MGUzIikscz1uKCIwNGY4IiksYz1uKCJmZGJmIiksdT1pKCJ3a3MiKSxsPXIuU3ltYm9sLGY9bCYmbFsiZm9yIl0sZD1jP2w6bCYmbC53aXRob3V0U2V0dGVyfHxvO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighYSh1LHQpfHwhcyYmInN0cmluZyIhPXR5cGVvZiB1W3RdKXt2YXIgZT0iU3ltYm9sLiIrdDtzJiZhKGwsdCk/dVt0XT1sW3RdOnVbdF09YyYmZj9mKGUpOmQoZSl9cmV0dXJuIHVbdF19fSxiNjM2OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMDY1Iik7cigiYXN5bmNJdGVyYXRvciIpfSxiNjRiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyM2U3IiksaT1uKCI3YjBiIiksYT1uKCJkZjc1Iiksbz1uKCJkMDM5Iikscz1vKChmdW5jdGlvbigpe2EoMSl9KSk7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOnN9LHtrZXlzOmZ1bmN0aW9uKHQpe3JldHVybiBhKGkodCkpfX0pfSxiNjVlOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5wdWJsaXNoSGFuZGxlcj1mdW5jdGlvbihlLG4scil7dC5VbmlTZXJ2aWNlSlNCcmlkZ2Uuc3Vic2NyaWJlSGFuZGxlcihlLG4scil9fSkuY2FsbCh0aGlzLG4oImM4YmEiKSl9LGI2Yjc6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImViYjUiKSxpPW4oIjQ4NDAiKSxhPXIuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcixvPXIuZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gYShpKHQsbyh0KSkpfX0sYjcyNzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMDM2NiIpLGk9bigiZTMzMCIpLGE9bigiNDRhZCIpLG89bigiN2IwYiIpLHM9bigiMDdmYSIpLGM9bigiNjVmMCIpLHU9aShbXS5wdXNoKSxsPWZ1bmN0aW9uKHQpe3ZhciBlPTE9PXQsbj0yPT10LGk9Mz09dCxsPTQ9PXQsZj02PT10LGQ9Nz09dCxoPTU9PXR8fGY7cmV0dXJuIGZ1bmN0aW9uKHAsdixnLG0pe2Zvcih2YXIgYix5LF89byhwKSx3PWEoXykseD1yKHYsZyksUz1zKHcpLFQ9MCxDPW18fGMsaz1lP0MocCxTKTpufHxkP0MocCwwKTp2b2lkIDA7Uz5UO1QrKylpZigoaHx8VCBpbiB3KSYmKGI9d1tUXSx5PXgoYixULF8pLHQpKWlmKGUpa1tUXT15O2Vsc2UgaWYoeSlzd2l0Y2godCl7Y2FzZSAzOnJldHVybiEwO2Nhc2UgNTpyZXR1cm4gYjtjYXNlIDY6cmV0dXJuIFQ7Y2FzZSAyOnUoayxiKX1lbHNlIHN3aXRjaCh0KXtjYXNlIDQ6cmV0dXJuITE7Y2FzZSA3OnUoayxiKX1yZXR1cm4gZj8tMTppfHxsP2w6a319O3QuZXhwb3J0cz17Zm9yRWFjaDpsKDApLG1hcDpsKDEpLGZpbHRlcjpsKDIpLHNvbWU6bCgzKSxldmVyeTpsKDQpLGZpbmQ6bCg1KSxmaW5kSW5kZXg6bCg2KSxmaWx0ZXJSZWplY3Q6bCg3KX19LGI3ZWY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJkYTg0IiksYT1uKCJkMDY2Iiksbz1uKCI1YzZjIikscz1uKCI5YmYyIikuZixjPW4oIjFhMmQiKSx1PW4oIjE5YWEiKSxsPW4oIjcxNTYiKSxmPW4oImUzOTEiKSxkPW4oImNmOTgiKSxoPW4oIjBkMjYiKSxwPW4oIjgzYWIiKSx2PW4oImM0MzAiKSxnPWEoIkVycm9yIiksbT1hKCJET01FeGNlcHRpb24iKSxiPWZ1bmN0aW9uKCl7dSh0aGlzLHkpO3ZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1mKHQ8MT92b2lkIDA6YXJndW1lbnRzWzBdKSxuPWYodDwyP3ZvaWQgMDphcmd1bWVudHNbMV0sIkVycm9yIikscj1uZXcgbShlLG4pLGk9ZyhlKTtyZXR1cm4gaS5uYW1lPSJET01FeGNlcHRpb24iLHMociwic3RhY2siLG8oMSxoKGkuc3RhY2ssMSkpKSxsKHIsdGhpcyxiKSxyfSx5PWIucHJvdG90eXBlPW0ucHJvdG90eXBlLF89InN0YWNrImluIGcoIkRPTUV4Y2VwdGlvbiIpLHc9InN0YWNrImluIG5ldyBtKDEsMikseD1tJiZwJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksIkRPTUV4Y2VwdGlvbiIpLFM9ISF4JiYhKHgud3JpdGFibGUmJnguY29uZmlndXJhYmxlKSxUPV8mJiFTJiYhdztyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOnZ8fFR9LHtET01FeGNlcHRpb246VD9iOm19KTt2YXIgQz1hKCJET01FeGNlcHRpb24iKSxrPUMucHJvdG90eXBlO2lmKGsuY29uc3RydWN0b3IhPT1DKWZvcih2YXIgTyBpbiB2fHxzKGssImNvbnN0cnVjdG9yIixvKDEsQykpLGQpaWYoYyhkLE8pKXt2YXIgRT1kW09dLEk9RS5zO2MoQyxJKXx8cyhDLEksbyg2LEUuYykpfX0sYjg5ZDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIxZWYxIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxiOTE3OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIscj17fSxpPTA7aTw2NjtpKyspcltuLmNoYXJBdChpKV09aTt0LmV4cG9ydHM9e2l0b2M6bixjdG9pOnJ9fSxiOTgwOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDM5IiksaT1uKCI1YzZjIik7dC5leHBvcnRzPSFyKChmdW5jdGlvbigpe3ZhciB0PUVycm9yKCJhIik7cmV0dXJuISgic3RhY2siaW4gdCl8fChPYmplY3QuZGVmaW5lUHJvcGVydHkodCwic3RhY2siLGkoMSw3KSksNyE9PXQuc3RhY2spfSkpfSxiOTlmOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnBpeGVsUmF0aW89dm9pZCAwLGUud3JhcHBlcj1mdW5jdGlvbih0KXt2YXIgZT0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO3Qud2lkdGg9dC5vZmZzZXRXaWR0aCooZT9pOjEpLHQuaGVpZ2h0PXQub2Zmc2V0SGVpZ2h0KihlP2k6MSksdC5fX2hpZHBpX189ZSx0Ll9fY29udGV4dDJkX189dC5nZXRDb250ZXh0KCIyZCIpLHQuX19jb250ZXh0MmRfXy5fX2hpZHBpX189ZX0sbigiZmI2YSIpLG4oImQ4MWQiKSxuKCJhYzFmIiksbigiNTMxOSIpO3ZhciByPW4oImRiNmEiKSxpPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dC5oZWlnaHQ9dC53aWR0aD0wO3ZhciBlPXQuZ2V0Q29udGV4dCgiMmQiKSxuPWUuYmFja2luZ1N0b3JlUGl4ZWxSYXRpb3x8ZS53ZWJraXRCYWNraW5nU3RvcmVQaXhlbFJhdGlvfHxlLm1vekJhY2tpbmdTdG9yZVBpeGVsUmF0aW98fGUubXNCYWNraW5nU3RvcmVQaXhlbFJhdGlvfHxlLm9CYWNraW5nU3RvcmVQaXhlbFJhdGlvfHxlLmJhY2tpbmdTdG9yZVBpeGVsUmF0aW98fDE7cmV0dXJuKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxKS9ufSgpO2UucGl4ZWxSYXRpbz1pO3ZhciBhPUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5wcm90b3R5cGU7YS5kcmF3SW1hZ2VCeUNhbnZhcz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLHIsYSxvLHMsYyx1LGwsZil7aWYoIXRoaXMuX19oaWRwaV9fKXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtuKj1pLHIqPWksYSo9aSxvKj1pLHMqPWksYyo9aSx1PWY/dSppOnUsbD1mP2wqaTpsLHQuY2FsbCh0aGlzLGUsbixyLGEsbyxzLGMsdSxsKX19KGEuZHJhd0ltYWdlKSwxIT09aSYmKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIHQpKDAsci5oYXNPd24pKHQsbikmJmUodFtuXSxuKX0oe2ZpbGxSZWN0OiJhbGwiLGNsZWFyUmVjdDoiYWxsIixzdHJva2VSZWN0OiJhbGwiLG1vdmVUbzoiYWxsIixsaW5lVG86ImFsbCIsYXJjOlswLDEsMl0sYXJjVG86ImFsbCIsYmV6aWVyQ3VydmVUbzoiYWxsIixpc1BvaW50aW5QYXRoOiJhbGwiLGlzUG9pbnRpblN0cm9rZToiYWxsIixxdWFkcmF0aWNDdXJ2ZVRvOiJhbGwiLHJlY3Q6ImFsbCIsdHJhbnNsYXRlOiJhbGwiLGNyZWF0ZVJhZGlhbEdyYWRpZW50OiJhbGwiLGNyZWF0ZUxpbmVhckdyYWRpZW50OiJhbGwiLHRyYW5zZm9ybTpbNCw1XSxzZXRUcmFuc2Zvcm06WzQsNV19LChmdW5jdGlvbih0LGUpe2FbZV09ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIXRoaXMuX19oaWRwaV9fKXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2lmKCJhbGwiPT09dCluPW4ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdCppfSkpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyluW3Rbcl1dKj1pO3JldHVybiBlLmFwcGx5KHRoaXMsbil9fShhW2VdKX0pKSxhLnN0cm9rZT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtpZighdGhpcy5fX2hpZHBpX18pcmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMubGluZVdpZHRoKj1pLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMubGluZVdpZHRoLz1pfX0oYS5zdHJva2UpLGEuZmlsbFRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIXRoaXMuX19oaWRwaV9fKXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2VbMV0qPWksZVsyXSo9aSxlWzNdKj1pLGlzTmFOKGVbM10pJiYoZS5sZW5ndGg9Myk7dmFyIG49dGhpcy5fX2ZvbnRfX3x8dGhpcy5mb250O3RoaXMuZm9udD1uLnJlcGxhY2UoLyhcZCtcLj9cZCopKHB4fGVtfHJlbXxwdCkvZywoZnVuY3Rpb24odCxlLG4pe3JldHVybiBlKmkrbn0pKSx0LmFwcGx5KHRoaXMsZSksdGhpcy5mb250PW59fShhLmZpbGxUZXh0KSxhLnN0cm9rZVRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIXRoaXMuX19oaWRwaV9fKXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2VbMV0qPWksZVsyXSo9aSxlWzNdKj1pLGlzTmFOKGVbM10pJiYoZS5sZW5ndGg9Myk7dmFyIG49dGhpcy5fX2ZvbnRfX3x8dGhpcy5mb250O3RoaXMuZm9udD1uLnJlcGxhY2UoLyhcZCtcLj9cZCopKHB4fGVtfHJlbXxwdCkvZywoZnVuY3Rpb24odCxlLG4pe3JldHVybiBlKmkrbn0pKSx0LmFwcGx5KHRoaXMsZSksdGhpcy5mb250PW59fShhLnN0cm9rZVRleHQpLGEuZHJhd0ltYWdlPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe2lmKCF0aGlzLl9faGlkcGlfXylyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5zY2FsZShpLGkpLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2NhbGUoMS9pLDEvaSl9fShhLmRyYXdJbWFnZSkpfSxiOWE5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oImJiMWUiKTtmb3IodmFyIGkgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGkpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGkpO3ZhciBhPW4oImYwYzUiKSxvPU9iamVjdChhWyJhIl0pKHJbImRlZmF1bHQiXSx2b2lkIDAsdm9pZCAwLCExLG51bGwsbnVsbCxudWxsLCExLHZvaWQgMCx2b2lkIDApO2VbImRlZmF1bHQiXT1vLmV4cG9ydHN9LGI5YjE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe2lmKDA9PT10LmluZGV4T2YoIiMiKSl7dmFyIGU9dC5zdWJzdHIoMSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiEoIXQuY29tcG9uZW50SW5zdGFuY2V8fHQuY29tcG9uZW50SW5zdGFuY2UuaWQhPT1lKXx8ISghdC5kYXRhfHwhdC5kYXRhLmF0dHJzfHx0LmRhdGEuYXR0cnMuaWQhPT1lKX19aWYoMD09PXQuaW5kZXhPZigiLiIpKXt2YXIgbj10LnN1YnN0cigxKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQuZGF0YSYmZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiIiLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiIiO2lmKGUpcmV0dXJuLTEhPT1lLnNwbGl0KGkpLmluZGV4T2YodCk7aWYobiYmInN0cmluZyI9PT10eXBlb2YgbilyZXR1cm4tMSE9PW4uc3BsaXQoaSkuaW5kZXhPZih0KX0obix0LmRhdGEuc3RhdGljQ2xhc3MsdC5kYXRhLmNsYXNzKX19fW4oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5pbml0UG9seWZpbGw9ZnVuY3Rpb24odCl7dC5wcm90b3R5cGUuY3JlYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHVuaS5jcmVhdGVJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLHQpfSx0LnByb3RvdHlwZS5jcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHVuaS5jcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXIodGhpcyx0KX0sdC5wcm90b3R5cGUuc2VsZWN0Q29tcG9uZW50PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbiB0KGUsbil7aWYobihlLiR2bm9kZXx8ZS5fdm5vZGUpKXJldHVybiBlO2Zvcih2YXIgcj1lLiRjaGlsZHJlbixpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXQocltpXSxuKTtpZihhKXJldHVybiBhfX0odGhpcyxyKHQpKX0sdC5wcm90b3R5cGUuc2VsZWN0QWxsQ29tcG9uZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24gdChlLG4scil7bihlLiR2bm9kZXx8ZS5fdm5vZGUpJiZyLnB1c2goZSk7Zm9yKHZhciBpPWUuJGNoaWxkcmVuLGE9MDthPGkubGVuZ3RoO2ErKyl0KGlbYV0sbixyKTtyZXR1cm4gcn0odGhpcyxyKHQpLFtdKX19LG4oImM5NzUiKSxuKCJhYzFmIiksbigiMTI3NiIpLG4oIjE0ZDkiKTt2YXIgaT0vXHMrL30sYjliMWM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiOWZkMSIpLGk9bigiZDVmYSIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sYmIxZTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIyNjZlIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxiYjJmOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDM5Iik7dC5leHBvcnRzPSFyKChmdW5jdGlvbigpe3JldHVybiBPYmplY3QuaXNFeHRlbnNpYmxlKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpfSkpfSxiYzk0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNyZWF0ZVBhZ2VNaXhpbj1mdW5jdGlvbigpe3JldHVybntjcmVhdGVkOmZ1bmN0aW9uKCl7dmFyIHQ9KDAsaS5kZWNvZGVkUXVlcnkpKHRoaXMuJHJvdXRlLnF1ZXJ5KTsoMCxvLmRlZmF1bHQpKHRoaXMsdCksKDAsYS5jYWxsUGFnZUhvb2spKHRoaXMsIm9uTG9hZCIsdCksKDAsYS5jYWxsUGFnZUhvb2spKHRoaXMsIm9uU2hvdyIpfX19O3ZhciBpPW4oImRiNmEiKSxhPW4oIjU1OWEiKSxvPXIobigiYWFjNyIpKX0sYmNiZjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZjVkZiIpLGk9bigiZTMzMCIpLGE9aSgiIi5zbGljZSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJCaWciPT09YShyKHQpLDAsMyl9fSxiZTljOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe3ZhciByO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zZXRQdWxsRG93blJlZnJlc2hQYWdlSWQ9ZnVuY3Rpb24odCl7cj10fSxlLnN0YXJ0UHVsbERvd25SZWZyZXNoPWZ1bmN0aW9uKCl7ciYmdC5lbWl0KHIrIi5zdG9wUHVsbERvd25SZWZyZXNoIix7fSxyKTt2YXIgZT1nZXRDdXJyZW50UGFnZXMoKTtlLmxlbmd0aCYmKHI9ZVtlLmxlbmd0aC0xXS4kcGFnZS5pZCx0LmVtaXQocisiLnN0YXJ0UHVsbERvd25SZWZyZXNoIix7fSxyKSk7cmV0dXJue319LGUuc3RvcFB1bGxEb3duUmVmcmVzaD1mdW5jdGlvbigpe2lmKHIpdC5lbWl0KHIrIi5zdG9wUHVsbERvd25SZWZyZXNoIix7fSxyKSxyPW51bGw7ZWxzZXt2YXIgZT1nZXRDdXJyZW50UGFnZXMoKTtlLmxlbmd0aCYmKHI9ZVtlLmxlbmd0aC0xXS4kcGFnZS5pZCx0LmVtaXQocisiLnN0b3BQdWxsRG93blJlZnJlc2giLHt9LHIpKX1yZXR1cm57fX19KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sYmVlMjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlLG4pe2UmJmkodC5wcm90b3R5cGUsZSk7biYmaSh0LG4pO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0fSxuKCI3YTgyIik7dmFyIHI9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fShuKCJhMzhlIikpO2Z1bmN0aW9uIGkodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCgwLHIuZGVmYXVsdCkoaS5rZXkpLGkpfX19LGJmZTY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIG4oInVuaS1wYWdlIix7YXR0cnM6eyJkYXRhLXBhZ2UiOnQuJHJvdXRlLm1ldGEucGFnZVBhdGh9fSxbIm5vbmUiIT09dC5uYXZpZ2F0aW9uQmFyLnR5cGU/bigicGFnZS1oZWFkIix0Ll9iKHt9LCJwYWdlLWhlYWQiLHQubmF2aWdhdGlvbkJhciwhMSkpOnQuX2UoKSx0LmVuYWJsZVB1bGxEb3duUmVmcmVzaD9uKCJwYWdlLXJlZnJlc2giLHtyZWY6InJlZnJlc2giLGF0dHJzOntjb2xvcjp0LnJlZnJlc2hPcHRpb25zLmNvbG9yLG9mZnNldDp0LnJlZnJlc2hPcHRpb25zLm9mZnNldH19KTp0Ll9lKCksdC5lbmFibGVQdWxsRG93blJlZnJlc2g/bigicGFnZS1ib2R5Iix7bmF0aXZlT246e3RvdWNoc3RhcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHQuX3RvdWNoc3RhcnQoZSl9LHRvdWNobW92ZTpmdW5jdGlvbihlKXtyZXR1cm4gdC5fdG91Y2htb3ZlKGUpfSx0b3VjaGVuZDpmdW5jdGlvbihlKXtyZXR1cm4gdC5fdG91Y2hlbmQoZSl9LHRvdWNoY2FuY2VsOmZ1bmN0aW9uKGUpe3JldHVybiB0Ll90b3VjaGVuZChlKX19fSxbdC5fdCgicGFnZSIpXSwyKTpuKCJwYWdlLWJvZHkiLFt0Ll90KCJwYWdlIildLDIpXSwxKX0saT1bXX0sYzA0ZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYzY1YiIpLGk9bigiODYxZCIpLGE9bigiZDliNSIpLG89bigiZGM0YSIpLHM9bigiNDg1YSIpLGM9bigiYjYyMiIpLHU9VHlwZUVycm9yLGw9YygidG9QcmltaXRpdmUiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZighaSh0KXx8YSh0KSlyZXR1cm4gdDt2YXIgbixjPW8odCxsKTtpZihjKXtpZih2b2lkIDA9PT1lJiYoZT0iZGVmYXVsdCIpLG49cihjLHQsZSksIWkobil8fGEobikpcmV0dXJuIG47dGhyb3cgdSgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9cmV0dXJuIHZvaWQgMD09PWUmJihlPSJudW1iZXIiKSxzKHQsZSl9fSxjMTVmOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldFBhZ2VIb2xkZXI9ZnVuY3Rpb24odCl7aWYodClyZXR1cm4gdC4kaG9sZGVyO3ZhciBlPWdldEN1cnJlbnRQYWdlcygpLG49ZS5sZW5ndGg7aWYobilyZXR1cm4gZVtuLTFdLiRob2xkZXJ9LGUuaXNDdXJyZW50UGFnZT1mdW5jdGlvbih0KXt2YXIgZT1nZXRDdXJyZW50UGFnZXMoKSxuPWUubGVuZ3RoO2lmKG4pcmV0dXJuIGVbbi0xXS4kaG9sZGVyPT09dDtyZXR1cm4hMX19LGMxOWU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlLG4pe289ZSxvLiR2bT1lLG8uZ2xvYmFsRGF0YT1vLiRvcHRpb25zLmdsb2JhbERhdGF8fHt9LCgwLGkuaW5pdEFwcExvY2FsZSkodCxvKSwoMCxhLmRlZmF1bHQpKG8sbil9LGUuZ2V0QXBwPXMsZS5nZXRDdXJyZW50UGFnZXM9ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxyPVtdLGk9cygpO2lmKCFpKXJldHVybiBuJiZ0LmVycm9yKCJhcHAgaXMgbm90IHJlYWR5IiksW107dmFyIGE9aS4kY2hpbGRyZW5bMF07aWYoYSYmYS4kY2hpbGRyZW4ubGVuZ3RoKXt2YXIgbz1hLiRjaGlsZHJlbi5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4iVGFiQmFyIj09PXQuJG9wdGlvbnMubmFtZX0pKSxjPWEuJGNoaWxkcmVuLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiJMYXlvdXQiPT09dC4kb3B0aW9ucy5uYW1lfSkpO2MmJihhPWMpLGEuJGNoaWxkcmVuLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKG8hPT10JiZ0LiRjaGlsZHJlbi5sZW5ndGgmJiJQYWdlIj09PXQuJGNoaWxkcmVuWzBdLiRvcHRpb25zLm5hbWUmJnQuJGNoaWxkcmVuWzBdLiRzbG90cy5wYWdlKXt2YXIgbj10LiRjaGlsZHJlblswXS4kY2hpbGRyZW4uZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIlBhZ2VCb2R5Ij09PXQuJG9wdGlvbnMubmFtZX0pKSxhPW4mJm4uJGNoaWxkcmVuLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiEhdC4kcGFnZX0pKTtpZihhKXt2YXIgcz0hMDshZSYmbyYmYS4kcGFnZSYmYS4kcGFnZS5tZXRhLmlzVGFiQmFyJiYoaS4kcm91dGUubWV0YSYmaS4kcm91dGUubWV0YS5pc1RhYkJhcj9pLiRyb3V0ZS5wYXRoIT09YS4kcGFnZS5wYXRoJiYocz0hMSk6by5fX3BhdGhfXyE9PWEuJHBhZ2UucGF0aCYmKHM9ITEpKSxzJiZyLnB1c2goYSl9fX0pKX12YXIgdT1yLmxlbmd0aDtpZih1PjEpe3ZhciBsPXJbdS0xXTtsLiRwYWdlLnBhdGghPT1pLiRyb3V0ZS5wYXRoJiZyLnNwbGljZSh1LTEsMSl9cmV0dXJuIHJ9LG4oIjdkYjAiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oIjE0ZDkiKSxuKCJhNDM0Iik7dmFyIGk9bigiODFlOCIpLGE9cihuKCI3NTUxIikpLG89ITE7ZnVuY3Rpb24gcygpe3JldHVybiBvfX0pLmNhbGwodGhpcyxuKCI1YTUyIilbImRlZmF1bHQiXSl9LGMxOWY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJkYTg0IiksYT1uKCI2MjFhIiksbz1uKCIyNjI2Iikscz1hWyJBcnJheUJ1ZmZlciJdLGM9aVsiQXJyYXlCdWZmZXIiXTtyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOmMhPT1zfSx7QXJyYXlCdWZmZXI6c30pLG8oIkFycmF5QnVmZmVyIil9LGMxYWM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IiksaT1uKCJiNzI3IikuZmlsdGVyLGE9bigiMTQ0OCIpLG89ci5hVHlwZWRBcnJheSxzPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtzKCJmaWx0ZXIiLChmdW5jdGlvbih0KXt2YXIgZT1pKG8odGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuIGEodGhpcyxlKX0pKX0sYzFkZDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O24oIjk5YWYiKSxuKCIxNGQ5Iik7dmFyIGk9cihuKCJlMTQzIikpLGE9cihuKCJjMmIxNSIpKSxvPXIobigiMTcwZiIpKSxzPXIobigiYjlhOSIpKSxjPXIobigiZWEyNyIpKSx1PXIobigiNTI4YSIpKSxsPXIobigiOWFhOCIpKSxmPXIobigiMWI5YyIpKSxkPXIobigiNzdhMCIpKSxoPXIobigiODI5NCIpKSxwPXIobigiMzM3NyIpKSx2PXIobigiMTRjMiIpKSxnPXIobigiMzAxYiIpKSxtPXIobigiYWNhNyIpKSxiPXIobigiYjliMWMiKSkseT1yKG4oIjU1MDkiKSksXz1yKG4oIjhjZDAiKSksdz1yKG4oImMyYTUiKSkseD1yKG4oIjE4NzYiKSk7cy5kZWZhdWx0Lm5hbWU9IlZVbmlCdXR0b24iLHMuZGVmYXVsdC5taXhpbnM9cy5kZWZhdWx0Lm1peGlucz9bXS5jb25jYXQoYS5kZWZhdWx0LHMuZGVmYXVsdC5taXhpbnMpOlthLmRlZmF1bHRdLHMuZGVmYXVsdC5taXhpbnMucHVzaChvLmRlZmF1bHQpLGkuZGVmYXVsdC5jb21wb25lbnQocy5kZWZhdWx0Lm5hbWUscy5kZWZhdWx0KSxjLmRlZmF1bHQubmFtZT0iVlVuaUNhbnZhcyIsYy5kZWZhdWx0Lm1peGlucz1jLmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQsYy5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0sYy5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudChjLmRlZmF1bHQubmFtZSxjLmRlZmF1bHQpLHUuZGVmYXVsdC5uYW1lPSJWVW5pSW1hZ2UiLHUuZGVmYXVsdC5taXhpbnM9dS5kZWZhdWx0Lm1peGlucz9bXS5jb25jYXQoYS5kZWZhdWx0LHUuZGVmYXVsdC5taXhpbnMpOlthLmRlZmF1bHRdLHUuZGVmYXVsdC5taXhpbnMucHVzaChvLmRlZmF1bHQpLGkuZGVmYXVsdC5jb21wb25lbnQodS5kZWZhdWx0Lm5hbWUsdS5kZWZhdWx0KSxsLmRlZmF1bHQubmFtZT0iVlVuaUlucHV0IixsLmRlZmF1bHQubWl4aW5zPWwuZGVmYXVsdC5taXhpbnM/W10uY29uY2F0KGEuZGVmYXVsdCxsLmRlZmF1bHQubWl4aW5zKTpbYS5kZWZhdWx0XSxsLmRlZmF1bHQubWl4aW5zLnB1c2goby5kZWZhdWx0KSxpLmRlZmF1bHQuY29tcG9uZW50KGwuZGVmYXVsdC5uYW1lLGwuZGVmYXVsdCksZi5kZWZhdWx0Lm5hbWU9IlZVbmlNb3ZhYmxlQXJlYSIsZi5kZWZhdWx0Lm1peGlucz1mLmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQsZi5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0sZi5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudChmLmRlZmF1bHQubmFtZSxmLmRlZmF1bHQpLGQuZGVmYXVsdC5uYW1lPSJWVW5pTW92YWJsZVZpZXciLGQuZGVmYXVsdC5taXhpbnM9ZC5kZWZhdWx0Lm1peGlucz9bXS5jb25jYXQoYS5kZWZhdWx0LGQuZGVmYXVsdC5taXhpbnMpOlthLmRlZmF1bHRdLGQuZGVmYXVsdC5taXhpbnMucHVzaChvLmRlZmF1bHQpLGkuZGVmYXVsdC5jb21wb25lbnQoZC5kZWZhdWx0Lm5hbWUsZC5kZWZhdWx0KSxoLmRlZmF1bHQubmFtZT0iVlVuaVBpY2tlclZpZXciLGguZGVmYXVsdC5taXhpbnM9aC5kZWZhdWx0Lm1peGlucz9bXS5jb25jYXQoYS5kZWZhdWx0LGguZGVmYXVsdC5taXhpbnMpOlthLmRlZmF1bHRdLGguZGVmYXVsdC5taXhpbnMucHVzaChvLmRlZmF1bHQpLGkuZGVmYXVsdC5jb21wb25lbnQoaC5kZWZhdWx0Lm5hbWUsaC5kZWZhdWx0KSxwLmRlZmF1bHQubmFtZT0iVlVuaVBpY2tlclZpZXdDb2x1bW4iLHAuZGVmYXVsdC5taXhpbnM9cC5kZWZhdWx0Lm1peGlucz9bXS5jb25jYXQoYS5kZWZhdWx0LHAuZGVmYXVsdC5taXhpbnMpOlthLmRlZmF1bHRdLHAuZGVmYXVsdC5taXhpbnMucHVzaChvLmRlZmF1bHQpLGkuZGVmYXVsdC5jb21wb25lbnQocC5kZWZhdWx0Lm5hbWUscC5kZWZhdWx0KSx2LmRlZmF1bHQubmFtZT0iVlVuaVJlc2l6ZVNlbnNvciIsdi5kZWZhdWx0Lm1peGlucz12LmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQsdi5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0sdi5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudCh2LmRlZmF1bHQubmFtZSx2LmRlZmF1bHQpLGcuZGVmYXVsdC5uYW1lPSJWVW5pU2Nyb2xsVmlldyIsZy5kZWZhdWx0Lm1peGlucz1nLmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQsZy5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0sZy5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudChnLmRlZmF1bHQubmFtZSxnLmRlZmF1bHQpLG0uZGVmYXVsdC5uYW1lPSJWVW5pU3dpcGVyIixtLmRlZmF1bHQubWl4aW5zPW0uZGVmYXVsdC5taXhpbnM/W10uY29uY2F0KGEuZGVmYXVsdCxtLmRlZmF1bHQubWl4aW5zKTpbYS5kZWZhdWx0XSxtLmRlZmF1bHQubWl4aW5zLnB1c2goby5kZWZhdWx0KSxpLmRlZmF1bHQuY29tcG9uZW50KG0uZGVmYXVsdC5uYW1lLG0uZGVmYXVsdCksYi5kZWZhdWx0Lm5hbWU9IlZVbmlTd2lwZXJJdGVtIixiLmRlZmF1bHQubWl4aW5zPWIuZGVmYXVsdC5taXhpbnM/W10uY29uY2F0KGEuZGVmYXVsdCxiLmRlZmF1bHQubWl4aW5zKTpbYS5kZWZhdWx0XSxiLmRlZmF1bHQubWl4aW5zLnB1c2goby5kZWZhdWx0KSxpLmRlZmF1bHQuY29tcG9uZW50KGIuZGVmYXVsdC5uYW1lLGIuZGVmYXVsdCkseS5kZWZhdWx0Lm5hbWU9IlZVbmlUZXh0Iix5LmRlZmF1bHQubWl4aW5zPXkuZGVmYXVsdC5taXhpbnM/W10uY29uY2F0KGEuZGVmYXVsdCx5LmRlZmF1bHQubWl4aW5zKTpbYS5kZWZhdWx0XSx5LmRlZmF1bHQubWl4aW5zLnB1c2goby5kZWZhdWx0KSxpLmRlZmF1bHQuY29tcG9uZW50KHkuZGVmYXVsdC5uYW1lLHkuZGVmYXVsdCksXy5kZWZhdWx0Lm5hbWU9IlZVbmlUZXh0YXJlYSIsXy5kZWZhdWx0Lm1peGlucz1fLmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQsXy5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0sXy5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudChfLmRlZmF1bHQubmFtZSxfLmRlZmF1bHQpLHcuZGVmYXVsdC5uYW1lPSJWVW5pVmlldyIsdy5kZWZhdWx0Lm1peGlucz13LmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQsdy5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0sdy5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudCh3LmRlZmF1bHQubmFtZSx3LmRlZmF1bHQpLHguZGVmYXVsdC5uYW1lPSJWVW5pV2ViVmlldyIseC5kZWZhdWx0Lm1peGlucz14LmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQseC5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0seC5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudCh4LmRlZmF1bHQubmFtZSx4LmRlZmF1bHQpfSxjMjBkOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkYTg0IiksaT1uKCJkMDM5IiksYT1uKCJlMzMwIiksbz1uKCI1NzdlIikscz1uKCI1OGE4IikudHJpbSxjPW4oIjU4OTkiKSx1PXIucGFyc2VJbnQsbD1yLlN5bWJvbCxmPWwmJmwuaXRlcmF0b3IsZD0vXlsrLV0/MHgvaSxoPWEoZC5leGVjKSxwPTghPT11KGMrIjA4Iil8fDIyIT09dShjKyIweDE2Iil8fGYmJiFpKChmdW5jdGlvbigpe3UoT2JqZWN0KGYpKX0pKTt0LmV4cG9ydHM9cD9mdW5jdGlvbih0LGUpe3ZhciBuPXMobyh0KSk7cmV0dXJuIHUobixlPj4+MHx8KGgoZCxuKT8xNjoxMCkpfTp1fSxjMmE1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oImNmMTUiKSxpPW4oIjlmNDgiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LGMyYjE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiMzE1MiIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sYzJiMTU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIGk9cihuKCJmMWNhIikpLGE9bigiMmNhMyIpLG89e21ldGhvZHM6eyRnZXRSZWFsUGF0aDpmdW5jdGlvbih0KXtyZXR1cm4gdD8oMCxpLmRlZmF1bHQpKHQpOnR9LCR0cmlnZ2VyOmZ1bmN0aW9uKHQsZSxuKXt0aGlzLiRlbWl0KHQsYS5wcm9jZXNzRXZlbnQuY2FsbCh0aGlzLHQsZSxuLHRoaXMuJGVsLHRoaXMuJGVsKSl9fX07ZS5kZWZhdWx0PW99LGMyZTA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiNWRhZiIpLGk9bigiM2UyNCIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sYzM4MTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCJlNTc0IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxjM2FiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJhOWUzIiksbigiYWMxZiIpLG4oIjAwYjQiKTt2YXIgaT1yKG4oImM3ZmYiKSksYT1uKCJkYjZhIiksbz1uKCI2NGZlIikscz1mdW5jdGlvbigpe3ZhciB0PSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07cmV0dXJuISFhLnN1cHBvcnRzUGFzc2l2ZSYme3Bhc3NpdmU6dH19LGM9cygpLHU9e25hbWU6IlNjcm9sbFZpZXciLG1peGluczpbaS5kZWZhdWx0XSxwcm9wczp7c2Nyb2xsWDp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LHNjcm9sbFk6e3R5cGU6W0Jvb2xlYW4sU3RyaW5nXSxkZWZhdWx0OiExfSx1cHBlclRocmVzaG9sZDp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDo1MH0sbG93ZXJUaHJlc2hvbGQ6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NTB9LHNjcm9sbFRvcDp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDowfSxzY3JvbGxMZWZ0Ont0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjB9LHNjcm9sbEludG9WaWV3Ont0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxzY3JvbGxXaXRoQW5pbWF0aW9uOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sZW5hYmxlQmFja1RvVG9wOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0scmVmcmVzaGVyRW5hYmxlZDp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LHJlZnJlc2hlclRocmVzaG9sZDp7dHlwZTpOdW1iZXIsZGVmYXVsdDo0NX0scmVmcmVzaGVyRGVmYXVsdFN0eWxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJiYWNrIn0scmVmcmVzaGVyQmFja2dyb3VuZDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiI2ZmZiJ9LHJlZnJlc2hlclRyaWdnZXJlZDp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2xhc3RTY3JvbGxUb3A6dGhpcy5zY3JvbGxUb3BOdW1iZXIsbGFzdFNjcm9sbExlZnQ6dGhpcy5zY3JvbGxMZWZ0TnVtYmVyLGxhc3RTY3JvbGxUb1VwcGVyVGltZTowLGxhc3RTY3JvbGxUb0xvd2VyVGltZTowLHJlZnJlc2hlckhlaWdodDowLHJlZnJlc2hSb3RhdGU6MCxyZWZyZXNoU3RhdGU6IiJ9fSxjb21wdXRlZDp7dXBwZXJUaHJlc2hvbGROdW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD1OdW1iZXIodGhpcy51cHBlclRocmVzaG9sZCk7cmV0dXJuIGlzTmFOKHQpPzUwOnR9LGxvd2VyVGhyZXNob2xkTnVtYmVyOmZ1bmN0aW9uKCl7dmFyIHQ9TnVtYmVyKHRoaXMubG93ZXJUaHJlc2hvbGQpO3JldHVybiBpc05hTih0KT81MDp0fSxzY3JvbGxUb3BOdW1iZXI6ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyKHRoaXMuc2Nyb2xsVG9wKXx8MH0sc2Nyb2xsTGVmdE51bWJlcjpmdW5jdGlvbigpe3JldHVybiBOdW1iZXIodGhpcy5zY3JvbGxMZWZ0KXx8MH19LHdhdGNoOntzY3JvbGxUb3BOdW1iZXI6ZnVuY3Rpb24odCl7dGhpcy5fc2Nyb2xsVG9wQ2hhbmdlZCh0KX0sc2Nyb2xsTGVmdE51bWJlcjpmdW5jdGlvbih0KXt0aGlzLl9zY3JvbGxMZWZ0Q2hhbmdlZCh0KX0sc2Nyb2xsSW50b1ZpZXc6ZnVuY3Rpb24odCl7dGhpcy5fc2Nyb2xsSW50b1ZpZXdDaGFuZ2VkKHQpfSxyZWZyZXNoZXJUcmlnZ2VyZWQ6ZnVuY3Rpb24odCl7ITA9PT10P3RoaXMuX3NldFJlZnJlc2hTdGF0ZSgicmVmcmVzaGluZyIpOiExPT09dCYmdGhpcy5fc2V0UmVmcmVzaFN0YXRlKCJyZXN0b3JlIil9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPW51bGwsbj1udWxsO3RoaXMuX2F0dGFjaGVkPSEwLHRoaXMudG9VcHBlck51bWJlcj0wLHRoaXMudHJpZ2dlckFib3J0PSExLHRoaXMuYmVmb3JlUmVmcmVzaGluZz0hMSx0aGlzLl9zY3JvbGxUb3BDaGFuZ2VkKHRoaXMuc2Nyb2xsVG9wTnVtYmVyKSx0aGlzLl9zY3JvbGxMZWZ0Q2hhbmdlZCh0aGlzLnNjcm9sbExlZnROdW1iZXIpLHRoaXMuX3Njcm9sbEludG9WaWV3Q2hhbmdlZCh0aGlzLnNjcm9sbEludG9WaWV3KSx0aGlzLl9faGFuZGxlU2Nyb2xsPWZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHQuX2hhbmRsZVNjcm9sbC5iaW5kKHQsZSkoKX0sdGhpcy5fX2hhbmRsZVRvdWNoTW92ZT1mdW5jdGlvbihyKXtpZihudWxsIT09ZSl7dmFyIGk9ci50b3VjaGVzWzBdLnBhZ2VYLGE9ci50b3VjaGVzWzBdLnBhZ2VZLG89dC4kcmVmcy5tYWluO2lmKE1hdGguYWJzKGktZS54KT5NYXRoLmFicyhhLWUueSkpaWYodC5zY3JvbGxYKXtpZigwPT09by5zY3JvbGxMZWZ0JiZpPmUueClyZXR1cm4gdm9pZChuPSExKTtpZihvLnNjcm9sbFdpZHRoPT09by5vZmZzZXRXaWR0aCtvLnNjcm9sbExlZnQmJmk8ZS54KXJldHVybiB2b2lkKG49ITEpO249ITB9ZWxzZSBuPSExO2Vsc2UgaWYodC5zY3JvbGxZKWlmKDA9PT1vLnNjcm9sbFRvcCYmYT5lLnkpbj0hMSx0LnJlZnJlc2hlckVuYWJsZWQmJiExIT09ci5jYW5jZWxhYmxlJiZyLnByZXZlbnREZWZhdWx0KCk7ZWxzZXtpZihvLnNjcm9sbEhlaWdodD09PW8ub2Zmc2V0SGVpZ2h0K28uc2Nyb2xsVG9wJiZhPGUueSlyZXR1cm4gdm9pZChuPSExKTtuPSEwfWVsc2Ugbj0hMTtpZihuJiZyLnN0b3BQcm9wYWdhdGlvbigpLDA9PT1vLnNjcm9sbFRvcCYmMT09PXIudG91Y2hlcy5sZW5ndGgmJih0LnJlZnJlc2hTdGF0ZT0icHVsbGluZyIpLHQucmVmcmVzaGVyRW5hYmxlZCYmInB1bGxpbmciPT09dC5yZWZyZXNoU3RhdGUpe3ZhciBzPWEtZS55OzA9PT10LnRvVXBwZXJOdW1iZXImJih0LnRvVXBwZXJOdW1iZXI9YSksdC5iZWZvcmVSZWZyZXNoaW5nPyh0LnJlZnJlc2hlckhlaWdodD1zK3QucmVmcmVzaGVyVGhyZXNob2xkLHQudHJpZ2dlckFib3J0PSExKToodC5yZWZyZXNoZXJIZWlnaHQ9YS10LnRvVXBwZXJOdW1iZXIsdC5yZWZyZXNoZXJIZWlnaHQ+MCYmKHQudHJpZ2dlckFib3J0PSEwLHQuJHRyaWdnZXIoInJlZnJlc2hlcnB1bGxpbmciLHIse2RlbHRhWTpzfSkpKTt2YXIgYz10LnJlZnJlc2hlckhlaWdodC90LnJlZnJlc2hlclRocmVzaG9sZDt0LnJlZnJlc2hSb3RhdGU9MzYwKihjPjE/MTpjKX19fSx0aGlzLl9faGFuZGxlVG91Y2hTdGFydD1mdW5jdGlvbih0KXsxPT09dC50b3VjaGVzLmxlbmd0aCYmKCgwLG8uZGlzYWJsZVNjcm9sbEJvdW5jZSkoe2Rpc2FibGU6ITB9KSxlPXt4OnQudG91Y2hlc1swXS5wYWdlWCx5OnQudG91Y2hlc1swXS5wYWdlWX0pfSx0aGlzLl9faGFuZGxlVG91Y2hFbmQ9ZnVuY3Rpb24obil7ZT1udWxsLCgwLG8uZGlzYWJsZVNjcm9sbEJvdW5jZSkoe2Rpc2FibGU6ITF9KSx0LnJlZnJlc2hlckhlaWdodD49dC5yZWZyZXNoZXJUaHJlc2hvbGQ/dC5fc2V0UmVmcmVzaFN0YXRlKCJyZWZyZXNoaW5nIik6dC5fc2V0UmVmcmVzaFN0YXRlKCJyZWZyZXNoZXJhYm9ydCIpfSx0aGlzLiRyZWZzLm1haW4uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fX2hhbmRsZVRvdWNoU3RhcnQsYyksdGhpcy4kcmVmcy5tYWluLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5fX2hhbmRsZVRvdWNoTW92ZSxzKCExKSksdGhpcy4kcmVmcy5tYWluLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5fX2hhbmRsZVNjcm9sbCxzKCExKSksdGhpcy4kcmVmcy5tYWluLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl9faGFuZGxlVG91Y2hFbmQsYyksKDAsby5pbml0U2Nyb2xsQm91bmNlKSgpfSxhY3RpdmF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbFkmJih0aGlzLiRyZWZzLm1haW4uc2Nyb2xsVG9wPXRoaXMubGFzdFNjcm9sbFRvcCksdGhpcy5zY3JvbGxYJiYodGhpcy4kcmVmcy5tYWluLnNjcm9sbExlZnQ9dGhpcy5sYXN0U2Nyb2xsTGVmdCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLiRyZWZzLm1haW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fX2hhbmRsZVRvdWNoU3RhcnQsYyksdGhpcy4kcmVmcy5tYWluLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5fX2hhbmRsZVRvdWNoTW92ZSxjKSx0aGlzLiRyZWZzLm1haW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9faGFuZGxlU2Nyb2xsLHMoITEpKSx0aGlzLiRyZWZzLm1haW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX19oYW5kbGVUb3VjaEVuZCxjKX0sbWV0aG9kczp7c2Nyb2xsVG86ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLiRyZWZzLm1haW47dDwwP3Q9MDoieCI9PT1lJiZ0Pm4uc2Nyb2xsV2lkdGgtbi5vZmZzZXRXaWR0aD90PW4uc2Nyb2xsV2lkdGgtbi5vZmZzZXRXaWR0aDoieSI9PT1lJiZ0Pm4uc2Nyb2xsSGVpZ2h0LW4ub2Zmc2V0SGVpZ2h0JiYodD1uLnNjcm9sbEhlaWdodC1uLm9mZnNldEhlaWdodCk7dmFyIHI9MCxpPSIiOyJ4Ij09PWU/cj1uLnNjcm9sbExlZnQtdDoieSI9PT1lJiYocj1uLnNjcm9sbFRvcC10KSwwIT09ciYmKHRoaXMuJHJlZnMuY29udGVudC5zdHlsZS50cmFuc2l0aW9uPSJ0cmFuc2Zvcm0gLjNzIGVhc2Utb3V0Iix0aGlzLiRyZWZzLmNvbnRlbnQuc3R5bGUud2Via2l0VHJhbnNpdGlvbj0iLXdlYmtpdC10cmFuc2Zvcm0gLjNzIGVhc2Utb3V0IiwieCI9PT1lP2k9InRyYW5zbGF0ZVgoIityKyJweCkgdHJhbnNsYXRlWigwKSI6InkiPT09ZSYmKGk9InRyYW5zbGF0ZVkoIityKyJweCkgdHJhbnNsYXRlWigwKSIpLHRoaXMuJHJlZnMuY29udGVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIix0aGlzLl9fdHJhbnNpdGlvbkVuZCksdGhpcy4kcmVmcy5jb250ZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLHRoaXMuX190cmFuc2l0aW9uRW5kKSx0aGlzLl9fdHJhbnNpdGlvbkVuZD10aGlzLl90cmFuc2l0aW9uRW5kLmJpbmQodGhpcyx0LGUpLHRoaXMuJHJlZnMuY29udGVudC5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIix0aGlzLl9fdHJhbnNpdGlvbkVuZCksdGhpcy4kcmVmcy5jb250ZW50LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLHRoaXMuX190cmFuc2l0aW9uRW5kKSwieCI9PT1lP24uc3R5bGUub3ZlcmZsb3dYPSJoaWRkZW4iOiJ5Ij09PWUmJihuLnN0eWxlLm92ZXJmbG93WT0iaGlkZGVuIiksdGhpcy4kcmVmcy5jb250ZW50LnN0eWxlLnRyYW5zZm9ybT1pLHRoaXMuJHJlZnMuY29udGVudC5zdHlsZS53ZWJraXRUcmFuc2Zvcm09aSl9LF9oYW5kbGVUcmFjazpmdW5jdGlvbih0KXtpZigic3RhcnQiPT09dC5kZXRhaWwuc3RhdGUpcmV0dXJuIHRoaXMuX3g9dC5kZXRhaWwueCx0aGlzLl95PXQuZGV0YWlsLnksdm9pZCh0aGlzLl9ub0J1YmJsZT1udWxsKTsiZW5kIj09PXQuZGV0YWlsLnN0YXRlJiYodGhpcy5fbm9CdWJibGU9ITEpLG51bGw9PT10aGlzLl9ub0J1YmJsZSYmdGhpcy5zY3JvbGxZJiYoTWF0aC5hYnModGhpcy5feS10LmRldGFpbC55KS9NYXRoLmFicyh0aGlzLl94LXQuZGV0YWlsLngpPjE/dGhpcy5fbm9CdWJibGU9ITA6dGhpcy5fbm9CdWJibGU9ITEpLG51bGw9PT10aGlzLl9ub0J1YmJsZSYmdGhpcy5zY3JvbGxYJiYoTWF0aC5hYnModGhpcy5feC10LmRldGFpbC54KS9NYXRoLmFicyh0aGlzLl95LXQuZGV0YWlsLnkpPjE/dGhpcy5fbm9CdWJibGU9ITA6dGhpcy5fbm9CdWJibGU9ITEpLHRoaXMuX3g9dC5kZXRhaWwueCx0aGlzLl95PXQuZGV0YWlsLnksdGhpcy5fbm9CdWJibGUmJnQuc3RvcFByb3BhZ2F0aW9uKCl9LF9oYW5kbGVTY3JvbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQ7dGhpcy4kdHJpZ2dlcigic2Nyb2xsIix0LHtzY3JvbGxMZWZ0OmUuc2Nyb2xsTGVmdCxzY3JvbGxUb3A6ZS5zY3JvbGxUb3Asc2Nyb2xsSGVpZ2h0OmUuc2Nyb2xsSGVpZ2h0LHNjcm9sbFdpZHRoOmUuc2Nyb2xsV2lkdGgsZGVsdGFYOnRoaXMubGFzdFNjcm9sbExlZnQtZS5zY3JvbGxMZWZ0LGRlbHRhWTp0aGlzLmxhc3RTY3JvbGxUb3AtZS5zY3JvbGxUb3B9KSx0aGlzLnNjcm9sbFkmJihlLnNjcm9sbFRvcDw9dGhpcy51cHBlclRocmVzaG9sZE51bWJlciYmdGhpcy5sYXN0U2Nyb2xsVG9wLWUuc2Nyb2xsVG9wPjAmJnQudGltZVN0YW1wLXRoaXMubGFzdFNjcm9sbFRvVXBwZXJUaW1lPjIwMCYmKHRoaXMuJHRyaWdnZXIoInNjcm9sbHRvdXBwZXIiLHQse2RpcmVjdGlvbjoidG9wIn0pLHRoaXMubGFzdFNjcm9sbFRvVXBwZXJUaW1lPXQudGltZVN0YW1wKSxlLnNjcm9sbFRvcCtlLm9mZnNldEhlaWdodCt0aGlzLmxvd2VyVGhyZXNob2xkTnVtYmVyPj1lLnNjcm9sbEhlaWdodCYmdGhpcy5sYXN0U2Nyb2xsVG9wLWUuc2Nyb2xsVG9wPDAmJnQudGltZVN0YW1wLXRoaXMubGFzdFNjcm9sbFRvTG93ZXJUaW1lPjIwMCYmKHRoaXMuJHRyaWdnZXIoInNjcm9sbHRvbG93ZXIiLHQse2RpcmVjdGlvbjoiYm90dG9tIn0pLHRoaXMubGFzdFNjcm9sbFRvTG93ZXJUaW1lPXQudGltZVN0YW1wKSksdGhpcy5zY3JvbGxYJiYoZS5zY3JvbGxMZWZ0PD10aGlzLnVwcGVyVGhyZXNob2xkTnVtYmVyJiZ0aGlzLmxhc3RTY3JvbGxMZWZ0LWUuc2Nyb2xsTGVmdD4wJiZ0LnRpbWVTdGFtcC10aGlzLmxhc3RTY3JvbGxUb1VwcGVyVGltZT4yMDAmJih0aGlzLiR0cmlnZ2VyKCJzY3JvbGx0b3VwcGVyIix0LHtkaXJlY3Rpb246ImxlZnQifSksdGhpcy5sYXN0U2Nyb2xsVG9VcHBlclRpbWU9dC50aW1lU3RhbXApLGUuc2Nyb2xsTGVmdCtlLm9mZnNldFdpZHRoK3RoaXMubG93ZXJUaHJlc2hvbGROdW1iZXI+PWUuc2Nyb2xsV2lkdGgmJnRoaXMubGFzdFNjcm9sbExlZnQtZS5zY3JvbGxMZWZ0PDAmJnQudGltZVN0YW1wLXRoaXMubGFzdFNjcm9sbFRvTG93ZXJUaW1lPjIwMCYmKHRoaXMuJHRyaWdnZXIoInNjcm9sbHRvbG93ZXIiLHQse2RpcmVjdGlvbjoicmlnaHQifSksdGhpcy5sYXN0U2Nyb2xsVG9Mb3dlclRpbWU9dC50aW1lU3RhbXApKSx0aGlzLmxhc3RTY3JvbGxUb3A9ZS5zY3JvbGxUb3AsdGhpcy5sYXN0U2Nyb2xsTGVmdD1lLnNjcm9sbExlZnR9LF9zY3JvbGxUb3BDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuc2Nyb2xsWSYmKHRoaXMuX2lubmVyU2V0U2Nyb2xsVG9wP3RoaXMuX2lubmVyU2V0U2Nyb2xsVG9wPSExOnRoaXMuc2Nyb2xsV2l0aEFuaW1hdGlvbj90aGlzLnNjcm9sbFRvKHQsInkiKTp0aGlzLiRyZWZzLm1haW4uc2Nyb2xsVG9wPXQpfSxfc2Nyb2xsTGVmdENoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5zY3JvbGxYJiYodGhpcy5faW5uZXJTZXRTY3JvbGxMZWZ0P3RoaXMuX2lubmVyU2V0U2Nyb2xsTGVmdD0hMTp0aGlzLnNjcm9sbFdpdGhBbmltYXRpb24/dGhpcy5zY3JvbGxUbyh0LCJ4Iik6dGhpcy4kcmVmcy5tYWluLnNjcm9sbExlZnQ9dCl9LF9zY3JvbGxJbnRvVmlld0NoYW5nZWQ6ZnVuY3Rpb24oZSl7aWYoZSl7aWYoIS9eW19hLXpBLVpdWy1fYS16QS1aMC05Ol0qJC8udGVzdChlKSlyZXR1cm4gdm9pZCB0LmVycm9yKCJpZCBlcnJvcjogc2Nyb2xsLWludG8tdmlldz0iLmNvbmNhdChlKSk7dmFyIG49dGhpcy4kZWwucXVlcnlTZWxlY3RvcigiIyIrZSk7aWYobil7dmFyIHI9dGhpcy4kcmVmcy5tYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih0aGlzLnNjcm9sbFgpe3ZhciBhPWkubGVmdC1yLmxlZnQsbz10aGlzLiRyZWZzLm1haW4uc2Nyb2xsTGVmdCxzPW8rYTt0aGlzLnNjcm9sbFdpdGhBbmltYXRpb24/dGhpcy5zY3JvbGxUbyhzLCJ4Iik6dGhpcy4kcmVmcy5tYWluLnNjcm9sbExlZnQ9c31pZih0aGlzLnNjcm9sbFkpe3ZhciBjPWkudG9wLXIudG9wLHU9dGhpcy4kcmVmcy5tYWluLnNjcm9sbFRvcCxsPXUrYzt0aGlzLnNjcm9sbFdpdGhBbmltYXRpb24/dGhpcy5zY3JvbGxUbyhsLCJ5Iik6dGhpcy4kcmVmcy5tYWluLnNjcm9sbFRvcD1sfX19fSxfdHJhbnNpdGlvbkVuZDpmdW5jdGlvbih0LGUpe3RoaXMuJHJlZnMuY29udGVudC5zdHlsZS50cmFuc2l0aW9uPSIiLHRoaXMuJHJlZnMuY29udGVudC5zdHlsZS53ZWJraXRUcmFuc2l0aW9uPSIiLHRoaXMuJHJlZnMuY29udGVudC5zdHlsZS50cmFuc2Zvcm09IiIsdGhpcy4kcmVmcy5jb250ZW50LnN0eWxlLndlYmtpdFRyYW5zZm9ybT0iIjt2YXIgbj10aGlzLiRyZWZzLm1haW47IngiPT09ZT8obi5zdHlsZS5vdmVyZmxvd1g9dGhpcy5zY3JvbGxYPyJhdXRvIjoiaGlkZGVuIixuLnNjcm9sbExlZnQ9dCk6InkiPT09ZSYmKG4uc3R5bGUub3ZlcmZsb3dZPXRoaXMuc2Nyb2xsWT8iYXV0byI6ImhpZGRlbiIsbi5zY3JvbGxUb3A9dCksdGhpcy4kcmVmcy5jb250ZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMuX190cmFuc2l0aW9uRW5kKSx0aGlzLiRyZWZzLmNvbnRlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsdGhpcy5fX3RyYW5zaXRpb25FbmQpfSxfc2V0UmVmcmVzaFN0YXRlOmZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlInJlZnJlc2hpbmciOnRoaXMucmVmcmVzaGVySGVpZ2h0PXRoaXMucmVmcmVzaGVyVGhyZXNob2xkLHRoaXMuYmVmb3JlUmVmcmVzaGluZ3x8KHRoaXMuYmVmb3JlUmVmcmVzaGluZz0hMCx0aGlzLiR0cmlnZ2VyKCJyZWZyZXNoZXJyZWZyZXNoIix7fSx7fSkpO2JyZWFrO2Nhc2UicmVzdG9yZSI6Y2FzZSJyZWZyZXNoZXJhYm9ydCI6dGhpcy5iZWZvcmVSZWZyZXNoaW5nPSExLHRoaXMucmVmcmVzaGVySGVpZ2h0PXRoaXMudG9VcHBlck51bWJlcj0wLCJyZXN0b3JlIj09PXQmJih0aGlzLnRyaWdnZXJBYm9ydD0hMSx0aGlzLiR0cmlnZ2VyKCJyZWZyZXNoZXJyZXN0b3JlIix7fSx7fSkpLCJyZWZyZXNoZXJhYm9ydCI9PT10JiZ0aGlzLnRyaWdnZXJBYm9ydCYmKHRoaXMudHJpZ2dlckFib3J0PSExLHRoaXMuJHRyaWdnZXIoInJlZnJlc2hlcmFib3J0Iix7fSx7fSkpO2JyZWFrfXRoaXMucmVmcmVzaFN0YXRlPXR9LGdldFNjcm9sbFBvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcmVmcy5tYWluO3JldHVybntzY3JvbGxMZWZ0OnQuc2Nyb2xsTGVmdCxzY3JvbGxUb3A6dC5zY3JvbGxUb3Asc2Nyb2xsSGVpZ2h0OnQuc2Nyb2xsSGVpZ2h0LHNjcm9sbFdpZHRoOnQuc2Nyb2xsV2lkdGh9fX19O2UuZGVmYXVsdD11fSkuY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sYzQzMDpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz0hMX0sYzRmZTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5nZXRMb2NhbGU9ZnVuY3Rpb24oKXt2YXIgdD1nZXRBcHAoe2FsbG93RGVmYXVsdDohMH0pO2lmKHQmJnQuJHZtKXJldHVybiB0LiR2bS4kbG9jYWxlO3JldHVybiBpLmkxOG4uZ2V0TG9jYWxlKCl9LGUub25Mb2NhbGVDaGFuZ2U9ZnVuY3Rpb24odCl7by5wdXNoKHQpfSxlLnNldExvY2FsZT1mdW5jdGlvbih0KXt2YXIgZT1nZXRBcHAoKS4kdm0uJGxvY2FsZTtpZihlIT09dCl7cmV0dXJuIGdldEFwcCgpLiR2bS4kbG9jYWxlPXQsbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQmJndpbmRvdy5sb2NhbFN0b3JhZ2UmJihsb2NhbFN0b3JhZ2VbYS5VTklfU1RPUkFHRV9MT0NBTEVdPXQpLG8uZm9yRWFjaCgoZnVuY3Rpb24oZSl7KDAsci5pbnZva2UpKGUse2xvY2FsZTp0fSl9KSksITB9cmV0dXJuITF9LG4oImQzYjciKSxuKCIxNTliIiksbigiMTRkOSIpO3ZhciByPW4oIjczMjkiKSxpPW4oIjgxZTgiKSxhPW4oIjBmYmUiKTt2YXIgbz1bXX0sYzUxMzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiMWEyZCIpLGE9bigiZDliNSIpLG89bigiMGQ1MSIpLHM9bigiNTY5MiIpLGM9bigiMGI0MyIpLHU9cygic3ltYm9sLXRvLXN0cmluZy1yZWdpc3RyeSIpO3Ioe3RhcmdldDoiU3ltYm9sIixzdGF0OiEwLGZvcmNlZDohY30se2tleUZvcjpmdW5jdGlvbih0KXtpZighYSh0KSl0aHJvdyBUeXBlRXJyb3Iobyh0KSsiIGlzIG5vdCBhIHN5bWJvbCIpO2lmKGkodSx0KSlyZXR1cm4gdVt0XX19KX0sYzU1ODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS51bmk9dm9pZCAwLG4oImQzYjciKSxuKCIxNTliIik7dmFyIGk9cihuKCI5ODNlIikpLGE9bigiNGYxZiIpLG89bigiYTVlMCIpLHM9cihuKCI4MzMwIikpLGM9T2JqZWN0LmNyZWF0ZShudWxsKTtlLnVuaT1jLGkuZGVmYXVsdC5mb3JFYWNoKChmdW5jdGlvbih0KXtzLmRlZmF1bHRbdF0/Y1t0XT0oMCxvLnByb21pc2lmeSkodCwoMCxhLndyYXBwZXIpKHQscy5kZWZhdWx0W3RdKSk6Y1t0XT0oMCxhLndyYXBwZXJVbmltcGxlbWVudGVkKSh0KX0pKX0sYzVjMzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5vbmNlPWUub249ZS5vZmY9ZS5lbWl0PXZvaWQgMCxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHVibGlzaEhhbmRsZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLnB1Ymxpc2hIYW5kbGVyfX0pLGUuc3Vic2NyaWJlPWQsZS5zdWJzY3JpYmVIYW5kbGVyPWZ1bmN0aW9uKHQsZSxuKXswO2YoInNlcnZpY2UuIit0LGUsbil9LGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdSgic2VydmljZS4iK3QsZSl9LG4oIjk5YWYiKSxuKCJlOWM0Iik7dmFyIGk9cihuKCJlMTQzIikpLGE9cihuKCI4MjVmIikpLG89bigiYjY1ZSIpLHM9bmV3IGkuZGVmYXVsdCxjPXMuJG9uLmJpbmQocyk7ZS5vbj1jO3ZhciB1PXMuJG9mZi5iaW5kKHMpO2Uub2ZmPXU7dmFyIGw9cy4kb25jZS5iaW5kKHMpO2Uub25jZT1sO3ZhciBmPXMuJGVtaXQuYmluZChzKTtmdW5jdGlvbiBkKHQsZSl7cmV0dXJuIGMoInNlcnZpY2UuIit0LGUpfWUuZW1pdD1mLCgwLGEuZGVmYXVsdCkoZCl9LGM2MDc6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjgzYWIiKSxpPW4oImZjZTMiKSxhPW4oImM2YjYiKSxvPW4oImVkZDAiKSxzPW4oIjY5ZjMiKS5nZXQsYz1SZWdFeHAucHJvdG90eXBlLHU9VHlwZUVycm9yO3ImJmkmJm8oYywiZG90QWxsIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKHRoaXMhPT1jKXtpZigiUmVnRXhwIj09PWEodGhpcykpcmV0dXJuISFzKHRoaXMpLmRvdEFsbDt0aHJvdyB1KCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsIFJlZ0V4cCByZXF1aXJlZCIpfX19KX0sYzY1YjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNDBkNSIpLGk9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7dC5leHBvcnRzPXI/aS5iaW5kKGkpOmZ1bmN0aW9uKCl7cmV0dXJuIGkuYXBwbHkoaSxhcmd1bWVudHMpfX0sYzZiNjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZTMzMCIpLGk9cih7fS50b1N0cmluZyksYT1yKCIiLnNsaWNlKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGEoaSh0KSw4LC0xKX19LGM2YzI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImQzYjciKSxuKCJlMjVlIik7dmFyIGksYT1yKG4oImUxNDMiKSksbz1uKCJkYjZhIikscz1uKCIwZmJlIiksYz1bInRvcCIsImxlZnQiLCJyaWdodCJdLHU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Z1bmN0aW9uIGwodCxlKXtpfHwoaT11LnN0eWxlKSxpLnNldFByb3BlcnR5KHQsZSl9dmFyIGY9e25hbWU6IkxheW91dCIscHJvcHM6e3JvdXRlcktleTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sa2VlcEFsaXZlSW5jbHVkZTp7dHlwZTpBcnJheSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuW119fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnttYXJnaW5XaWR0aDowLGxlZnRXaW5kb3dTdHlsZToiIixyaWdodFdpbmRvd1N0eWxlOiIiLHRvcFdpbmRvd1N0eWxlOiIiLHRvcFdpbmRvd01lZGlhUXVlcnk6ITEsbGVmdFdpbmRvd01lZGlhUXVlcnk6ITEscmlnaHRXaW5kb3dNZWRpYVF1ZXJ5OiExLHRvcFdpbmRvd0hlaWdodDoiMHB4IixhcGlTaG93VG9wV2luZG93OiExLGFwaVNob3dMZWZ0V2luZG93OiExLGFwaVNob3dSaWdodFdpbmRvdzohMSxuYXZpZ2F0aW9uQmFyVGl0bGVUZXh0OiIiLG1heFdpZHRoTWVpZGFRdWVyeTohMX19LGNvbXB1dGVkOntiaW5kV2luZG93OmZ1bmN0aW9uKCl7cmV0dXJue21hdGNoVG9wV2luZG93OnRoaXMudG9wV2luZG93TWVkaWFRdWVyeSxzaG93VG9wV2luZG93OnRoaXMuc2hvd1RvcFdpbmRvd3x8dGhpcy5hcGlTaG93VG9wV2luZG93LG1hdGNoTGVmdFdpbmRvdzp0aGlzLmxlZnRXaW5kb3dNZWRpYVF1ZXJ5LHNob3dMZWZ0V2luZG93OnRoaXMuc2hvd0xlZnRXaW5kb3d8fHRoaXMuYXBpU2hvd0xlZnRXaW5kb3csbWF0Y2hSaWdodFdpbmRvdzp0aGlzLnJpZ2h0V2luZG93TWVkaWFRdWVyeSxzaG93UmlnaHRXaW5kb3c6dGhpcy5zaG93UmlnaHRXaW5kb3d8fHRoaXMuYXBpU2hvd1JpZ2h0V2luZG93fX0sc2hvd0xheW91dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNob3dUb3BXaW5kb3d8fHRoaXMuc2hvd0xlZnRXaW5kb3d8fHRoaXMuc2hvd1JpZ2h0V2luZG93fSxzaG93VG9wV2luZG93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzZXRBcGlTaG93V2luZG93KCksITEhPT10aGlzLiRyb3V0ZS5tZXRhLnRvcFdpbmRvdyYmdGhpcy50b3BXaW5kb3dNZWRpYVF1ZXJ5fSxzaG93TGVmdFdpbmRvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc2V0QXBpU2hvd1dpbmRvdygpLCExIT09dGhpcy4kcm91dGUubWV0YS5sZWZ0V2luZG93JiZ0aGlzLmxlZnRXaW5kb3dNZWRpYVF1ZXJ5fSxzaG93UmlnaHRXaW5kb3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNldEFwaVNob3dXaW5kb3coKSwhMSE9PXRoaXMuJHJvdXRlLm1ldGEucmlnaHRXaW5kb3cmJnRoaXMucmlnaHRXaW5kb3dNZWRpYVF1ZXJ5fX0sd2F0Y2g6eyRyb3V0ZTpmdW5jdGlvbigpe3RoaXMuY2hlY2tNYXhXaWR0aCgpfSxzaG93TGF5b3V0OmZ1bmN0aW9uKCl7dGhpcy5jaGVja0xheW91dCgpfSxzaG93VG9wV2luZG93OmZ1bmN0aW9uKHQsZSl7dD90aGlzLiRuZXh0VGljayh0aGlzLm9uVG9wV2luZG93SW5pdCk6bCgiLS10b3Atd2luZG93LWhlaWdodCIsIjBweCIpfSxzaG93TGVmdFdpbmRvdzpmdW5jdGlvbih0LGUpe3Q/dGhpcy4kbmV4dFRpY2sodGhpcy5vbkxlZnRXaW5kb3dJbml0KTpsKCItLXdpbmRvdy1sZWZ0IiwiMHB4Iil9LHNob3dSaWdodFdpbmRvdzpmdW5jdGlvbih0LGUpe3Q/dGhpcy4kbmV4dFRpY2sodGhpcy5vblJpZ2h0V2luZG93SW5pdCk6bCgiLS13aW5kb3ctcmlnaHQiLCIwcHgiKX0sbWFyZ2luV2lkdGg6ZnVuY3Rpb24odCl7bCgiLS13aW5kb3ctbWFyZ2luIix0KyJweCIpfX0sYmVmb3JlQ3JlYXRlOmZ1bmN0aW9uKCl7bCgiLS10b3Atd2luZG93LWhlaWdodCIsIjBweCIpLGwoIi0td2luZG93LWxlZnQiLCIwcHgiKSxsKCItLXdpbmRvdy1yaWdodCIsIjBweCIpLGwoIi0td2luZG93LW1hcmdpbiIsIjBweCIpfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnRvcFdpbmRvdz1hLmRlZmF1bHQuY29tcG9uZW50KCJWVW5pVG9wV2luZG93IiksdGhpcy5sZWZ0V2luZG93PWEuZGVmYXVsdC5jb21wb25lbnQoIlZVbmlMZWZ0V2luZG93IiksdGhpcy5yaWdodFdpbmRvdz1hLmRlZmF1bHQuY29tcG9uZW50KCJWVW5pUmlnaHRXaW5kb3ciKSwodGhpcy50b3BXaW5kb3d8fHRoaXMubGVmdFdpbmRvd3x8dGhpcy5yaWdodFdpbmRvdykmJnVuaS5jYW5JVXNlKCJjc3MudmFyIikmJndpbmRvdy5tYXRjaE1lZGlhJiYoYy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5pbml0V2luZG93TWluV2lkdGgodCl9KSksdGhpcy5yZXNwb25zaXZlPWZ1bmN0aW9uKHQpe3ZhciBlPXdpbmRvdy5zY3JlZW4sbj1bd2luZG93Lm91dGVyV2lkdGgsd2luZG93Lm91dGVySGVpZ2h0LGUud2lkdGgsZS5oZWlnaHQsdS5jbGllbnRXaWR0aCx1LmNsaWVudEhlaWdodF07cmV0dXJuIE1hdGgubWF4LmFwcGx5KG51bGwsbik+dH0odGhpcy5taW5XaWR0aCksdGhpcy5yZXNwb25zaXZlJiYodGhpcy50b3BXaW5kb3cmJnRoaXMudG9wV2luZG93Lm9wdGlvbnMuc3R5bGUmJih0aGlzLnRvcFdpbmRvd1N0eWxlPXRoaXMudG9wV2luZG93Lm9wdGlvbnMuc3R5bGUpLHRoaXMubGVmdFdpbmRvdyYmdGhpcy5sZWZ0V2luZG93Lm9wdGlvbnMuc3R5bGUmJih0aGlzLmxlZnRXaW5kb3dTdHlsZT10aGlzLmxlZnRXaW5kb3cub3B0aW9ucy5zdHlsZSksdGhpcy5yaWdodFdpbmRvdyYmdGhpcy5yaWdodFdpbmRvdy5vcHRpb25zLnN0eWxlJiYodGhpcy5yaWdodFdpbmRvd1N0eWxlPXRoaXMucmlnaHRXaW5kb3cub3B0aW9ucy5zdHlsZSksYy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5pbml0TWVkaWFRdWVyeSh0KX0pKSx0Lm9uKCJvbk5hdmlnYXRpb25CYXJDaGFuZ2UiLChmdW5jdGlvbih0KXtlLm5hdmlnYXRpb25CYXJUaXRsZVRleHQ9dC50aXRsZVRleHR9KSkpKSx0aGlzLmluaXRNYXhXaWR0aCgpfSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5jaGVja0xheW91dCgpLHRoaXMuY2hlY2tNYXhXaWR0aCgpfSxtZXRob2RzOntyZXNldEFwaVNob3dXaW5kb3c6ZnVuY3Rpb24oKXt0aGlzLmFwaVNob3dMZWZ0V2luZG93PSExLHRoaXMuYXBpU2hvd1JpZ2h0V2luZG93PSExfSxzaG93V2luZG93OmZ1bmN0aW9uKHQpe3ZhciBlPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV07aWYoIXRoaXNbdCsiV2luZG93Il0pcmV0dXJuIHQrIldpbmRvdyBub3QgZm91bmQiO3ZhciBuPSgwLG8uY2FwaXRhbGl6ZSkodCk7aWYoIXRoaXNbInNob3ciK24rIldpbmRvdyJdKXt2YXIgcj0iYXBpU2hvdyIrbisiV2luZG93Ijt0aGlzW3JdIT09ZSYmKHRoaXNbcl09ZSwidG9wIj09PXQmJihlP3RoaXMuJG5leHRUaWNrKHRoaXMub25Ub3BXaW5kb3dJbml0KTpsKCItLXRvcC13aW5kb3ctaGVpZ2h0IiwiMHB4IikpKX19LGdldFdpbmRvd1N0eWxlOmZ1bmN0aW9uKHQpe2lmKCF0aGlzW3QrIldpbmRvdyJdKXJldHVybiB0KyJXaW5kb3cgbm90IGZvdW5kIjt2YXIgZT1PYmplY3QuYXNzaWduKHt9LHRoaXNbdCsiV2luZG93U3R5bGUiXSk7cmV0dXJuIGV9LHNldFdpbmRvd1N0eWxlOmZ1bmN0aW9uKHQsZSl7aWYoIXRoaXNbdCsiV2luZG93Il0pcmV0dXJuIHQrIldpbmRvdyBub3QgZm91bmQiO2UmJih0aGlzW3QrIldpbmRvd1N0eWxlIl09ZSx0aGlzLiRuZXh0VGljayh0aGlzWyJvbiIrKDAsby5jYXBpdGFsaXplKSh0KSsiV2luZG93SW5pdCJdKSl9LGluaXRNYXhXaWR0aDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsKGZ1bmN0aW9uKCl7dC5jaGVja01heFdpZHRoKCl9KSl9LGNoZWNrTGF5b3V0OmZ1bmN0aW9uKCl7dGhpcy4kZW1pdCgibGF5b3V0Iix0aGlzLnNob3dMYXlvdXQpfSxjaGVja01heFdpZHRoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgsbj1wYXJzZUludCh0aGlzLiRyb3V0ZS5tZXRhLm1heFdpZHRoKSxyPSExO3I9ZT5uLHRoaXMuJGVtaXQoIm1heFdpZHRoIixyKSx0aGlzLiRjb250YWluZXJFbGVtfHwodGhpcy4kY29udGFpbmVyRWxlbT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ1bmktYXBwIikpLHRoaXMuJGNvbnRhaW5lckVsZW0mJihyJiZuPyh0aGlzLm1hcmdpbldpZHRoPShlLW4pLzIsdGhpcy4kbmV4dFRpY2soKGZ1bmN0aW9uKCl7dC5vbkxlZnRXaW5kb3dJbml0KCksdC5vblJpZ2h0V2luZG93SW5pdCgpLHQuJGNvbnRhaW5lckVsZW0uc2V0QXR0cmlidXRlKCJzdHlsZSIsIm1heC13aWR0aDoiK24rInB4O21hcmdpbjowIGF1dG87Iil9KSkpOih0aGlzLm1hcmdpbldpZHRoPTAsdGhpcy4kbmV4dFRpY2soKGZ1bmN0aW9uKCl7dC5vbkxlZnRXaW5kb3dJbml0KCksdC5vblJpZ2h0V2luZG93SW5pdCgpLHQuJGNvbnRhaW5lckVsZW0ucmVtb3ZlQXR0cmlidXRlKCJzdHlsZSIpfSkpKSl9LGluaXRXaW5kb3dNaW5XaWR0aDpmdW5jdGlvbih0KXt2YXIgZT10KyJXaW5kb3ciO2lmKHRoaXNbZV0pe3ZhciBuPXQrIldpbmRvd01pbldpZHRoIjt0aGlzW25dPXMuUkVTUE9OU0lWRV9NSU5fV0lEVEg7dmFyIHI9X191bmlDb25maWdbZV07ciYmci5tYXRjaE1lZGlhJiYoMCxvLmhhc093bikoci5tYXRjaE1lZGlhLCJtaW5XaWR0aCIpJiYodGhpc1tuXT1yLm1hdGNoTWVkaWEubWluV2lkdGgpLCgidW5kZWZpbmVkIj09PXR5cGVvZiB0aGlzLm1pbldpZHRofHx0aGlzLm1pbldpZHRoPnRoaXNbbl0pJiYodGhpcy5taW5XaWR0aD10aGlzW25dKX19LGluaXRNZWRpYVF1ZXJ5OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpc1t0KyJXaW5kb3ciXSl7dmFyIG49dCsiV2luZG93TWVkaWFRdWVyeSIscj13aW5kb3cubWF0Y2hNZWRpYSgiKG1pbi13aWR0aDogIit0aGlzW3QrIldpbmRvd01pbldpZHRoIl0rInB4KSIpO3IuYWRkTGlzdGVuZXIoKGZ1bmN0aW9uKHIpe2Vbbl09ci5tYXRjaGVzLGUuJG5leHRUaWNrKChmdW5jdGlvbigpe2VbIm9uIisoMCxvLmNhcGl0YWxpemUpKHQpKyJXaW5kb3dJbml0Il0oKX0pKX0pKSx0aGlzW25dPXIubWF0Y2hlc319LG9uVG9wV2luZG93SW5pdDpmdW5jdGlvbigpe2lmKHRoaXMucmVzcG9uc2l2ZSYmdGhpcy50b3BXaW5kb3cpe3ZhciB0PSIwcHgiO3Q9dGhpcy50b3BXaW5kb3dTdHlsZSYmdGhpcy50b3BXaW5kb3dTdHlsZS5oZWlnaHQ/dGhpcy4kcmVmcy50b3BXaW5kb3cub2Zmc2V0SGVpZ2h0KyJweCI6dGhpcy4kcmVmcy50b3AuJGVsLm9mZnNldEhlaWdodCsicHgiLHRoaXMudG9wV2luZG93SGVpZ2h0PXQsbCgiLS10b3Atd2luZG93LWhlaWdodCIsdCl9fSxvbkxlZnRXaW5kb3dJbml0OmZ1bmN0aW9uKCl7dGhpcy5yZXNwb25zaXZlJiZ0aGlzLmxlZnRXaW5kb3c/dGhpcy5sZWZ0V2luZG93U3R5bGUmJnRoaXMubGVmdFdpbmRvd1N0eWxlLndpZHRoP2woIi0td2luZG93LWxlZnQiLHRoaXMuJHJlZnMubGVmdFdpbmRvdy5vZmZzZXRXaWR0aCt0aGlzLm1hcmdpbldpZHRoKyJweCIpOmwoIi0td2luZG93LWxlZnQiLHRoaXMuJHJlZnMubGVmdC4kZWwub2Zmc2V0V2lkdGgrdGhpcy5tYXJnaW5XaWR0aCsicHgiKTpsKCItLXdpbmRvdy1sZWZ0Iix0aGlzLm1hcmdpbldpZHRoKyJweCIpfSxvblJpZ2h0V2luZG93SW5pdDpmdW5jdGlvbigpe3RoaXMucmVzcG9uc2l2ZSYmdGhpcy5yaWdodFdpbmRvdz90aGlzLnJpZ2h0V2luZG93U3R5bGUmJnRoaXMucmlnaHRXaW5kb3dTdHlsZS53aWR0aD9sKCItLXdpbmRvdy1yaWdodCIsdGhpcy4kcmVmcy5yaWdodFdpbmRvdy5vZmZzZXRXaWR0aCt0aGlzLm1hcmdpbldpZHRoKyJweCIpOmwoIi0td2luZG93LXJpZ2h0Iix0aGlzLiRyZWZzLnJpZ2h0LiRlbC5vZmZzZXRXaWR0aCt0aGlzLm1hcmdpbldpZHRoKyJweCIpOmwoIi0td2luZG93LXJpZ2h0Iix0aGlzLm1hcmdpbldpZHRoKyJweCIpfX19O2UuZGVmYXVsdD1mfSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LGM2Yzk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiOTY1NyIpLGk9bigiZDk1NCIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sYzZjZDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpLGk9bigiNjM3NCIpLGE9clsiX19jb3JlLWpzX3NoYXJlZF9fIl18fGkoIl9fY29yZS1qc19zaGFyZWRfXyIse30pO3QuZXhwb3J0cz1hfSxjNmQyOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiYzY1YiIpLGE9bigiYzQzMCIpLG89bigiNWU3NyIpLHM9bigiMTYyNiIpLGM9bigiZGNjMyIpLHU9bigiZTE2MyIpLGw9bigiZDJiYiIpLGY9bigiZDQ0ZSIpLGQ9bigiOTExMiIpLGg9bigiY2IyZCIpLHA9bigiYjYyMiIpLHY9bigiM2Y4YyIpLGc9bigiYWU5MyIpLG09by5QUk9QRVIsYj1vLkNPTkZJR1VSQUJMRSx5PWcuSXRlcmF0b3JQcm90b3R5cGUsXz1nLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsdz1wKCJpdGVyYXRvciIpLHg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLG8scCxnLFMpe2MobixlLG8pO3ZhciBULEMsayxPPWZ1bmN0aW9uKHQpe2lmKHQ9PT1wJiZBKXJldHVybiBBO2lmKCFfJiZ0IGluIFApcmV0dXJuIFBbdF07c3dpdGNoKHQpe2Nhc2Uia2V5cyI6cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMsdCl9O2Nhc2UidmFsdWVzIjpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcyx0KX07Y2FzZSJlbnRyaWVzIjpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcyx0KX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMpfX0sRT1lKyIgSXRlcmF0b3IiLEk9ITEsUD10LnByb3RvdHlwZSxNPVBbd118fFBbIkBAaXRlcmF0b3IiXXx8cCYmUFtwXSxBPSFfJiZNfHxPKHApLCQ9IkFycmF5Ij09ZSYmUC5lbnRyaWVzfHxNO2lmKCQmJihUPXUoJC5jYWxsKG5ldyB0KSksVCE9PU9iamVjdC5wcm90b3R5cGUmJlQubmV4dCYmKGF8fHUoVCk9PT15fHwobD9sKFQseSk6cyhUW3ddKXx8aChULHcseCkpLGYoVCxFLCEwLCEwKSxhJiYodltFXT14KSkpLG0mJiJ2YWx1ZXMiPT1wJiZNJiYidmFsdWVzIiE9PU0ubmFtZSYmKCFhJiZiP2QoUCwibmFtZSIsInZhbHVlcyIpOihJPSEwLEE9ZnVuY3Rpb24oKXtyZXR1cm4gaShNLHRoaXMpfSkpLHApaWYoQz17dmFsdWVzOk8oInZhbHVlcyIpLGtleXM6Zz9BOk8oImtleXMiKSxlbnRyaWVzOk8oImVudHJpZXMiKX0sUylmb3IoayBpbiBDKShffHxJfHwhKGsgaW4gUCkpJiZoKFAsayxDW2tdKTtlbHNlIHIoe3RhcmdldDplLHByb3RvOiEwLGZvcmNlZDpffHxJfSxDKTtyZXR1cm4gYSYmIVN8fFBbd109PT1BfHxoKFAsdyxBLHtuYW1lOnB9KSx2W2VdPUEsQ319LGM3NDA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJiNzI3IikuZmluZEluZGV4LGE9bigiNDRkMiIpLG89ITA7ImZpbmRJbmRleCJpbltdJiZBcnJheSgxKVsiZmluZEluZGV4Il0oKGZ1bmN0aW9uKCl7bz0hMX0pKSxyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6b30se2ZpbmRJbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGEoImZpbmRJbmRleCIpfSxjNzdiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPXIobigiYWRlMyIpKSxhPXIobigiNTg5NyIpKSxvPXIobigiNjE4MCIpKSxzPW4oIjY3NTYiKSxjPXtsaWdodDp7Y2FuY2VsQ29sb3I6IiMwMDAwMDAifSxkYXJrOntjYW5jZWxDb2xvcjoicmdiKDE3MCwgMTcwLCAxNzApIn19O2Z1bmN0aW9uIHUodCl7dGhpcy5jYW5jZWxDb2xvcl89Y1t0XS5jYW5jZWxDb2xvcn12YXIgbD17bmFtZToiTW9kYWwiLGNvbXBvbmVudHM6e2tleXByZXNzOm8uZGVmYXVsdH0sbWl4aW5zOlthLmRlZmF1bHRdLHByb3BzOnt0aXRsZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sY29udGVudDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sc2hvd0NhbmNlbDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9LGNhbmNlbFRleHQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IkNhbmNlbCJ9LGNhbmNlbENvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIjMDAwMDAwIn0sY29uZmlybVRleHQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6Ik9LIn0sY29uZmlybUNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIjMDA3YWZmIn0sdmlzaWJsZTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LGVkaXRhYmxlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0scGxhY2Vob2xkZXJUZXh0Ont0eXBlOlN0cmluZyxkZWZhdWx0OiIifX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntjYW5jZWxDb2xvcl86IiMwMDAifX0sd2F0Y2g6e3Zpc2libGU6ZnVuY3Rpb24odCl7dD8odGhpcy5jYW5jZWxDb2xvcl89dGhpcy4kcGFyZW50LnNob3dNb2RhbC5jYW5jZWxDb2xvciwiIzAwMCI9PT10aGlzLiRwYXJlbnQuc2hvd01vZGFsLmNhbmNlbENvbG9yJiYoImRhcmsiPT09KDAscy5nZXRUaGVtZSkoKSYmdGhpcy5fb25UaGVtZUNoYW5nZSh7dGhlbWU6ImRhcmsifSksKDAscy5vblRoZW1lQ2hhbmdlKSh0aGlzLl9vblRoZW1lQ2hhbmdlKSkpOigwLHMub2ZmVGhlbWVDaGFuZ2UpKHRoaXMuX29uVGhlbWVDaGFuZ2UpfX0sbWV0aG9kczp7X29uVGhlbWVDaGFuZ2U6ZnVuY3Rpb24odCl7dmFyIGU9dC50aGVtZTt1LmNhbGwodGhpcyxlKX0sX2Nsb3NlOmZ1bmN0aW9uKHQpe3ZhciBlPSgwLGkuZGVmYXVsdCkoe30sdCwhMCk7dGhpcy5lZGl0YWJsZSYmImNvbmZpcm0iPT09dCYmKGUuY29udGVudD10aGlzLiRyZWZzLmVkaXRDb250ZW50LnZhbHVlKSx0aGlzLiRlbWl0KCJjbG9zZSIsZSl9fX07ZS5kZWZhdWx0PWx9LGM3ZWI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKCl7Ci8qISByZWdlbmVyYXRvci1ydW50aW1lIC0tIENvcHlyaWdodCAoYykgMjAxNC1wcmVzZW50LCBGYWNlYm9vaywgSW5jLiAtLSBsaWNlbnNlIChNSVQpOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVnZW5lcmF0b3IvYmxvYi9tYWluL0xJQ0VOU0UgKi8KZS5kZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHR9O3ZhciB0PXt9LG49T2JqZWN0LnByb3RvdHlwZSxpPW4uaGFzT3duUHJvcGVydHksYT1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LG89ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30scz1vLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsYz1vLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHU9by50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGwodCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7bCh7fSwiIil9Y2F0Y2goUCl7bD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gZih0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIHA/ZTpwLG89T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSkscz1uZXcgTyhyfHxbXSk7cmV0dXJuIGEobywiX2ludm9rZSIse3ZhbHVlOlModCxuLHMpfSksb31mdW5jdGlvbiBkKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaChQKXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzpQfX19dC53cmFwPWY7dmFyIGg9e307ZnVuY3Rpb24gcCgpe31mdW5jdGlvbiB2KCl7fWZ1bmN0aW9uIGcoKXt9dmFyIG09e307bChtLHMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIGI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHk9YiYmYihiKEUoW10pKSk7eSYmeSE9PW4mJmkuY2FsbCh5LHMpJiYobT15KTt2YXIgXz1nLnByb3RvdHlwZT1wLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG0pO2Z1bmN0aW9uIHcodCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtsKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIHgodCxlKXt2YXIgbjthKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbihhLG8pe2Z1bmN0aW9uIHMoKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKG4scyl7KGZ1bmN0aW9uIG4oYSxvLHMsYyl7dmFyIHU9ZCh0W2FdLHQsbyk7aWYoInRocm93IiE9PXUudHlwZSl7dmFyIGw9dS5hcmcsZj1sLnZhbHVlO3JldHVybiBmJiYib2JqZWN0Ij09KDAsci5kZWZhdWx0KShmKSYmaS5jYWxsKGYsIl9fYXdhaXQiKT9lLnJlc29sdmUoZi5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LHMsYyl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQscyxjKX0pKTplLnJlc29sdmUoZikudGhlbigoZnVuY3Rpb24odCl7bC52YWx1ZT10LHMobCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LHMsYyl9KSl9Yyh1LmFyZyl9KShhLG8sbixzKX0pKX1yZXR1cm4gbj1uP24udGhlbihzLHMpOnMoKX19KX1mdW5jdGlvbiBTKHQsZSxuKXt2YXIgcj0ic3VzcGVuZGVkU3RhcnQiO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKCJleGVjdXRpbmciPT09cil0aHJvdyBuZXcgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZigiY29tcGxldGVkIj09PXIpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJuIEkoKX1mb3Iobi5tZXRob2Q9aSxuLmFyZz1hOzspe3ZhciBvPW4uZGVsZWdhdGU7aWYobyl7dmFyIHM9VChvLG4pO2lmKHMpe2lmKHM9PT1oKWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1uLm1ldGhvZCluLnNlbnQ9bi5fc2VudD1uLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1uLm1ldGhvZCl7aWYoInN1c3BlbmRlZFN0YXJ0Ij09PXIpdGhyb3cgcj0iY29tcGxldGVkIixuLmFyZztuLmRpc3BhdGNoRXhjZXB0aW9uKG4uYXJnKX1lbHNlInJldHVybiI9PT1uLm1ldGhvZCYmbi5hYnJ1cHQoInJldHVybiIsbi5hcmcpO3I9ImV4ZWN1dGluZyI7dmFyIGM9ZCh0LGUsbik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKHI9bi5kb25lPyJjb21wbGV0ZWQiOiJzdXNwZW5kZWRZaWVsZCIsYy5hcmc9PT1oKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOm4uZG9uZX19InRocm93Ij09PWMudHlwZSYmKHI9ImNvbXBsZXRlZCIsbi5tZXRob2Q9InRocm93IixuLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBUKHQsZSl7dmFyIG49ZS5tZXRob2Qscj10Lml0ZXJhdG9yW25dO2lmKHZvaWQgMD09PXIpcmV0dXJuIGUuZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09biYmdC5pdGVyYXRvclsicmV0dXJuIl0mJihlLm1ldGhvZD0icmV0dXJuIixlLmFyZz12b2lkIDAsVCh0LGUpLCJ0aHJvdyI9PT1lLm1ldGhvZCl8fCJyZXR1cm4iIT09biYmKGUubWV0aG9kPSJ0aHJvdyIsZS5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIituKyInIG1ldGhvZCIpKSxoO3ZhciBpPWQocix0Lml0ZXJhdG9yLGUuYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBlLm1ldGhvZD0idGhyb3ciLGUuYXJnPWkuYXJnLGUuZGVsZWdhdGU9bnVsbCxoO3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8oZVt0LnJlc3VsdE5hbWVdPWEudmFsdWUsZS5uZXh0PXQubmV4dExvYywicmV0dXJuIiE9PWUubWV0aG9kJiYoZS5tZXRob2Q9Im5leHQiLGUuYXJnPXZvaWQgMCksZS5kZWxlZ2F0ZT1udWxsLGgpOmE6KGUubWV0aG9kPSJ0aHJvdyIsZS5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxlLmRlbGVnYXRlPW51bGwsaCl9ZnVuY3Rpb24gQyh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBrKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBPKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goQyx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBFKHQpe2lmKHQpe3ZhciBlPXRbc107aWYoZSlyZXR1cm4gZS5jYWxsKHQpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0Lm5leHQpcmV0dXJuIHQ7aWYoIWlzTmFOKHQubGVuZ3RoKSl7dmFyIG49LTEscj1mdW5jdGlvbiBlKCl7Zm9yKDsrK248dC5sZW5ndGg7KWlmKGkuY2FsbCh0LG4pKXJldHVybiBlLnZhbHVlPXRbbl0sZS5kb25lPSExLGU7cmV0dXJuIGUudmFsdWU9dm9pZCAwLGUuZG9uZT0hMCxlfTtyZXR1cm4gci5uZXh0PXJ9fXJldHVybntuZXh0Okl9fWZ1bmN0aW9uIEkoKXtyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fXJldHVybiB2LnByb3RvdHlwZT1nLGEoXywiY29uc3RydWN0b3IiLHt2YWx1ZTpnLGNvbmZpZ3VyYWJsZTohMH0pLGEoZywiY29uc3RydWN0b3IiLHt2YWx1ZTp2LGNvbmZpZ3VyYWJsZTohMH0pLHYuZGlzcGxheU5hbWU9bChnLHUsIkdlbmVyYXRvckZ1bmN0aW9uIiksdC5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT12fHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSx0Lm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxnKToodC5fX3Byb3RvX189ZyxsKHQsdSwiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShfKSx0fSx0LmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSx3KHgucHJvdG90eXBlKSxsKHgucHJvdG90eXBlLGMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksdC5Bc3luY0l0ZXJhdG9yPXgsdC5hc3luYz1mdW5jdGlvbihlLG4scixpLGEpe3ZvaWQgMD09PWEmJihhPVByb21pc2UpO3ZhciBvPW5ldyB4KGYoZSxuLHIsaSksYSk7cmV0dXJuIHQuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9vOm8ubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTpvLm5leHQoKX0pKX0sdyhfKSxsKF8sdSwiR2VuZXJhdG9yIiksbChfLHMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksbChfLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksdC5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LHQudmFsdWVzPUUsTy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk8scmVzZXQ6ZnVuY3Rpb24odCl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dm9pZCAwLHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXZvaWQgMCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChrKSwhdClmb3IodmFyIGUgaW4gdGhpcykidCI9PT1lLmNoYXJBdCgwKSYmaS5jYWxsKHRoaXMsZSkmJiFpc05hTigrZS5zbGljZSgxKSkmJih0aGlzW2VdPXZvaWQgMCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbih0KXtpZih0aGlzLmRvbmUpdGhyb3cgdDt2YXIgZT10aGlzO2Z1bmN0aW9uIG4obixyKXtyZXR1cm4gby50eXBlPSJ0aHJvdyIsby5hcmc9dCxlLm5leHQ9bixyJiYoZS5tZXRob2Q9Im5leHQiLGUuYXJnPXZvaWQgMCksISFyfWZvcih2YXIgcj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7cj49MDstLXIpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tyXSxvPWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbigiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9aS5jYWxsKGEsImNhdGNoTG9jIiksYz1pLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBuKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG4oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBuKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgbmV3IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG4oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIHI9dGhpcy50cnlFbnRyaWVzW25dO2lmKHIudHJ5TG9jPD10aGlzLnByZXYmJmkuY2FsbChyLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxyLmZpbmFsbHlMb2Mpe3ZhciBhPXI7YnJlYWt9fWEmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZhLnRyeUxvYzw9ZSYmZTw9YS5maW5hbGx5TG9jJiYoYT1udWxsKTt2YXIgbz1hP2EuY29tcGxldGlvbjp7fTtyZXR1cm4gby50eXBlPXQsby5hcmc9ZSxhPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWEuZmluYWxseUxvYyxoKTp0aGlzLmNvbXBsZXRlKG8pfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLGh9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksayhuKSxofX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBpPXIuYXJnO2sobil9cmV0dXJuIGl9fXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpFKHQpLHJlc3VsdE5hbWU6ZSxuZXh0TG9jOm59LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dm9pZCAwKSxofX0sdH0sbigiN2E4MiIpLG4oImE0ZDMiKSxuKCJlMDFhIiksbigiZDNiNyIpLG4oImQyOGIiKSxuKCIzY2EzIiksbigiZGRiMCIpLG4oImI2MzYiKSxuKCI5NDRhIiksbigiMGM0NyIpLG4oIjIzZGMiKSxuKCIzNDEwIiksbigiZDllMiIpLG4oImQ0MDEiKSxuKCIxNGQ5IiksbigiMTU5YiIpLG4oIjEzMWEiKSxuKCIyNmU5IiksbigiZmI2YSIpO3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX0obigiNTNjYSIpKX0sYzdmZjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCIxNGQ5Iik7dmFyIHI9bigiNTc2MCIpLGk9e21ldGhvZHM6e2luaXRTY3JvbGxlcjpmdW5jdGlvbih0LGUpe3RoaXMuX3RvdWNoSW5mbz17dHJhY2tpbmdJRDotMSxtYXhEeTowLG1heER4OjB9LHRoaXMuX3Njcm9sbGVyPW5ldyByLlNjcm9sbGVyKHQsZSksdGhpcy5fX2hhbmRsZVRvdWNoU3RhcnQ9dGhpcy5faGFuZGxlVG91Y2hTdGFydC5iaW5kKHRoaXMpLHRoaXMuX19oYW5kbGVUb3VjaE1vdmU9dGhpcy5faGFuZGxlVG91Y2hNb3ZlLmJpbmQodGhpcyksdGhpcy5fX2hhbmRsZVRvdWNoRW5kPXRoaXMuX2hhbmRsZVRvdWNoRW5kLmJpbmQodGhpcyksdGhpcy5faW5pdGVkU2Nyb2xsZXI9ITB9LF9maW5kRGVsdGE6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdG91Y2hJbmZvO3JldHVybiJtb3ZlIj09PXQuZGV0YWlsLnN0YXRlfHwiZW5kIj09PXQuZGV0YWlsLnN0YXRlP3t4OnQuZGV0YWlsLmR4LHk6dC5kZXRhaWwuZHl9Ont4OnQuc2NyZWVuWC1lLngseTp0LnNjcmVlblktZS55fX0sX2hhbmRsZVRvdWNoU3RhcnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdG91Y2hJbmZvLG49dGhpcy5fc2Nyb2xsZXI7biYmKCJzdGFydCI9PT10LmRldGFpbC5zdGF0ZT8oZS50cmFja2luZ0lEPSJ0b3VjaCIsZS54PXQuZGV0YWlsLngsZS55PXQuZGV0YWlsLnkpOihlLnRyYWNraW5nSUQ9Im1vdXNlIixlLng9dC5zY3JlZW5YLGUueT10LnNjcmVlblkpLGUubWF4RHg9MCxlLm1heER5PTAsZS5oaXN0b3J5WD1bMF0sZS5oaXN0b3J5WT1bMF0sZS5oaXN0b3J5VGltZT1bdC5kZXRhaWwudGltZVN0YW1wXSxlLmxpc3RlbmVyPW4sbi5vblRvdWNoU3RhcnQmJm4ub25Ub3VjaFN0YXJ0KCksdC5wcmV2ZW50RGVmYXVsdCgpKX0sX2hhbmRsZVRvdWNoTW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl90b3VjaEluZm87aWYoLTEhPT1lLnRyYWNraW5nSUQpe3QucHJldmVudERlZmF1bHQoKTt2YXIgbj10aGlzLl9maW5kRGVsdGEodCk7aWYobil7Zm9yKGUubWF4RHk9TWF0aC5tYXgoZS5tYXhEeSxNYXRoLmFicyhuLnkpKSxlLm1heER4PU1hdGgubWF4KGUubWF4RHgsTWF0aC5hYnMobi54KSksZS5oaXN0b3J5WC5wdXNoKG4ueCksZS5oaXN0b3J5WS5wdXNoKG4ueSksZS5oaXN0b3J5VGltZS5wdXNoKHQuZGV0YWlsLnRpbWVTdGFtcCk7ZS5oaXN0b3J5VGltZS5sZW5ndGg+MTA7KWUuaGlzdG9yeVRpbWUuc2hpZnQoKSxlLmhpc3RvcnlYLnNoaWZ0KCksZS5oaXN0b3J5WS5zaGlmdCgpO2UubGlzdGVuZXImJmUubGlzdGVuZXIub25Ub3VjaE1vdmUmJmUubGlzdGVuZXIub25Ub3VjaE1vdmUobi54LG4ueSx0LmRldGFpbC50aW1lU3RhbXApfX19LF9oYW5kbGVUb3VjaEVuZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl90b3VjaEluZm87aWYoLTEhPT1lLnRyYWNraW5nSUQpe3QucHJldmVudERlZmF1bHQoKTt2YXIgbj10aGlzLl9maW5kRGVsdGEodCk7aWYobil7dmFyIHI9ZS5saXN0ZW5lcjtlLnRyYWNraW5nSUQ9LTEsZS5saXN0ZW5lcj1udWxsO3ZhciBpPWUuaGlzdG9yeVRpbWUubGVuZ3RoLGE9e3g6MCx5OjB9O2lmKGk+Milmb3IodmFyIG89ZS5oaXN0b3J5VGltZS5sZW5ndGgtMSxzPWUuaGlzdG9yeVRpbWVbb10sYz1lLmhpc3RvcnlYW29dLHU9ZS5oaXN0b3J5WVtvXTtvPjA7KXtvLS07dmFyIGw9ZS5oaXN0b3J5VGltZVtvXSxmPXMtbDtpZihmPjMwJiZmPDUwKXthLng9KGMtZS5oaXN0b3J5WFtvXSkvKGYvMWUzKSxhLnk9KHUtZS5oaXN0b3J5WVtvXSkvKGYvMWUzKTticmVha319ZS5oaXN0b3J5VGltZT1bXSxlLmhpc3RvcnlYPVtdLGUuaGlzdG9yeVk9W10sciYmci5vblRvdWNoRW5kJiZyLm9uVG91Y2hFbmQobi54LG4ueSxhKX19fX19O2UuZGVmYXVsdD1pfSxjOGJhOmZ1bmN0aW9uKHQsZSl7dmFyIG47bj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSgpO3RyeXtuPW58fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKHIpeyJvYmplY3QiPT09dHlwZW9mIHdpbmRvdyYmKG49d2luZG93KX10LmV4cG9ydHM9bn0sYzhkMjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNWU3NyIpLlBST1BFUixpPW4oImQwMzkiKSxhPW4oIjU4OTkiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkoKGZ1bmN0aW9uKCl7cmV0dXJuISFhW3RdKCl8fCLigIvCheGgjiIhPT0i4oCLwoXhoI4iW3RdKCl8fHImJmFbdF0ubmFtZSE9PXR9KSl9fSxjOTc1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiNDYyNSIpLGE9bigiNGQ2NCIpLmluZGV4T2Ysbz1uKCJhNjQwIikscz1pKFtdLmluZGV4T2YpLGM9ISFzJiYxL3MoWzFdLDEsLTApPDAsdT1vKCJpbmRleE9mIik7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOmN8fCF1fSx7aW5kZXhPZjpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMDtyZXR1cm4gYz9zKHRoaXMsdCxlKXx8MDphKHRoaXMsdCxlKX19KX0sY2EwNjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5oZXhUb1JnYmE9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJue3I6MCxnOjAsYjowLGE6MH07dmFyIGU9dC5zbGljZSgxKSxuPWUubGVuZ3RoO2lmKCFbMyw0LDYsOF0uaW5jbHVkZXMobikpcmV0dXJue3I6MCxnOjAsYjowLGE6MH07MyE9PW4mJjQhPT1ufHwoZT1lLnJlcGxhY2UoLyhcd3sxfSkvZywiJDEkMSIpKTt2YXIgcj1lLm1hdGNoKC8oXHd7Mn0pL2cpLGE9KDAsaS5kZWZhdWx0KShyLDQpLG89YVswXSxzPWFbMV0sYz1hWzJdLHU9YVszXSxsPXBhcnNlSW50KG8sMTYpLGY9cGFyc2VJbnQocywxNiksZD1wYXJzZUludChjLDE2KTtpZighdSlyZXR1cm57cjpsLGc6ZixiOmQsYToxfTtyZXR1cm57cjpsLGc6ZixiOmQsYTooIjB4MTAwIi5jb25jYXQodSktNjU1MzYpLzI1NX19O3ZhciBpPXIobigiMzgzNSIpKTtuKCJmYjZhIiksbigiY2FhZCIpLG4oImFjMWYiKSxuKCI1MzE5IiksbigiNDY2ZCIpLG4oImUyNWUiKX0sY2E4NDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZTMzMCIpLGk9bigiMWEyZCIpLGE9bigiZmM2YSIpLG89bigiNGQ2NCIpLmluZGV4T2Yscz1uKCJkMDEyIiksYz1yKFtdLnB1c2gpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuLHI9YSh0KSx1PTAsbD1bXTtmb3IobiBpbiByKSFpKHMsbikmJmkocixuKSYmYyhsLG4pO3doaWxlKGUubGVuZ3RoPnUpaShyLG49ZVt1KytdKSYmKH5vKGwsbil8fGMobCxuKSk7cmV0dXJuIGx9fSxjYTkxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiZDU4ZiIpLmxlZnQsYT1yLmFUeXBlZEFycmF5LG89ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kO28oInJlZHVjZSIsKGZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIGkoYSh0aGlzKSx0LGUsZT4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSxjYWFkOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiNGQ2NCIpLmluY2x1ZGVzLGE9bigiZDAzOSIpLG89bigiNDRkMiIpLHM9YSgoZnVuY3Rpb24oKXtyZXR1cm4hQXJyYXkoMSkuaW5jbHVkZXMoKX0pKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6c30se2luY2x1ZGVzOmZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksbygiaW5jbHVkZXMiKX0sY2IyZDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMTYyNiIpLGk9bigiOWJmMiIpLGE9bigiMTNkMiIpLG89bigiNjM3NCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixzKXtzfHwocz17fSk7dmFyIGM9cy5lbnVtZXJhYmxlLHU9dm9pZCAwIT09cy5uYW1lP3MubmFtZTplO2lmKHIobikmJmEobix1LHMpLHMuZ2xvYmFsKWM/dFtlXT1uOm8oZSxuKTtlbHNle3RyeXtzLnVuc2FmZT90W2VdJiYoYz0hMCk6ZGVsZXRlIHRbZV19Y2F0Y2gobCl7fWM/dFtlXT1uOmkuZih0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6IXMubm9uQ29uZmlndXJhYmxlLHdyaXRhYmxlOiFzLm5vbldyaXRhYmxlfSl9cmV0dXJuIHR9fSxjYzEyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkYTg0IiksaT1uKCI4NjFkIiksYT1yLmRvY3VtZW50LG89aShhKSYmaShhLmNyZWF0ZUVsZW1lbnQpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbz9hLmNyZWF0ZUVsZW1lbnQodCk6e319fSxjYzk4OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiYzQzMCIpLGE9bigiNDczOCIpLkNPTlNUUlVDVE9SLG89bigiZDI1NiIpLHM9bigiZDA2NiIpLGM9bigiMTYyNiIpLHU9bigiY2IyZCIpLGw9byYmby5wcm90b3R5cGU7aWYocih7dGFyZ2V0OiJQcm9taXNlIixwcm90bzohMCxmb3JjZWQ6YSxyZWFsOiEwfSx7Y2F0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsdCl9fSksIWkmJmMobykpe3ZhciBmPXMoIlByb21pc2UiKS5wcm90b3R5cGVbImNhdGNoIl07bFsiY2F0Y2giXSE9PWYmJnUobCwiY2F0Y2giLGYse3Vuc2FmZTohMH0pfX0sY2NhNjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiNjBkYSIpO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGFyaXR5OjIsZm9yY2VkOk9iamVjdC5hc3NpZ24hPT1pfSx7YXNzaWduOml9KX0sY2NhODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgcj1uKCI1ZWVlIiksaT1uKCJhNTVjIiksYT1uKCJlMGI1Iiksbz1uKCI0NDc1Iikscz1uKCIwZWJiIiksYz1uKCI5NTgyIiksdT1uKCI3ZDJjIiksbD1uKCIzMzE5IiksZj1uKCIxYzJjIiksZD1uKCIwMmQyIiksaD1uKCIwNzM1IikscD1uKCIzN2ZhIiksdj17JGVtaXQ6ci4kZW1pdCxjYW5JVXNlOmkuY2FuSVVzZSxjYW52YXNUb1RlbXBGaWxlUGF0aDphLmNhbnZhc1RvVGVtcEZpbGVQYXRoLGNyZWF0ZUNhbnZhc0NvbnRleHQ6by5jcmVhdGVDYW52YXNDb250ZXh0LGdldFN0b3JhZ2VTeW5jOnMuZ2V0U3RvcmFnZVN5bmMsbmF2aWdhdGVCYWNrOmMubmF2aWdhdGVCYWNrLG5hdmlnYXRlVG86Yy5uYXZpZ2F0ZVRvLHBhZ2VTY3JvbGxUbzp1LnBhZ2VTY3JvbGxUbyxwcmV2aWV3SW1hZ2U6bC5wcmV2aWV3SW1hZ2UscmVMYXVuY2g6Yy5yZUxhdW5jaCxyZWRpcmVjdFRvOmMucmVkaXJlY3RUbyxyZXF1ZXN0OmYucmVxdWVzdCxzZXROYXZpZ2F0aW9uQmFyVGl0bGU6ZC5zZXROYXZpZ2F0aW9uQmFyVGl0bGUsc2V0U3RvcmFnZVN5bmM6cy5zZXRTdG9yYWdlU3luYyxzaG93TG9hZGluZzpoLnNob3dMb2FkaW5nLHNob3dNb2RhbDpoLnNob3dNb2RhbCxzaG93VG9hc3Q6aC5zaG93VG9hc3Qsc3dpdGNoVGFiOmMuc3dpdGNoVGFiLHVweDJweDpwLnVweDJweH07ZS5kZWZhdWx0PXZ9LGNkMjY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IiksaT1yLmFUeXBlZEFycmF5LGE9ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kLG89TWF0aC5mbG9vcjthKCJyZXZlcnNlIiwoZnVuY3Rpb24oKXt2YXIgdCxlPWkodGhpcykubGVuZ3RoLG49byhlLzIpLHI9MDt3aGlsZShyPG4pdD10aGlzW3JdLHRoaXNbcisrXT10aGlzWy0tZV0sdGhpc1tlXT10O3JldHVybiB0aGlzfSkpfSxjZGNlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkYTg0IiksaT1uKCIxNjI2IiksYT1yLldlYWtNYXA7dC5leHBvcnRzPWkoYSkmJi9uYXRpdmUgY29kZS8udGVzdChTdHJpbmcoYSkpfSxjZGY5OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI4MjVhIiksaT1uKCI4NjFkIiksYT1uKCJmMDY5Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYocih0KSxpKGUpJiZlLmNvbnN0cnVjdG9yPT09dClyZXR1cm4gZTt2YXIgbj1hLmYodCksbz1uLnJlc29sdmU7cmV0dXJuIG8oZSksbi5wcm9taXNlfX0sY2U1YzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI5NmI3IiksaT1uKCIyYzI3Iik7Zm9yKHZhciBhIGluIGkpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiBpW3RdfSkpfShhKTt2YXIgbz1uKCJmMGM1Iikscz1PYmplY3Qob1siYSJdKShpWyJkZWZhdWx0Il0sclsiYiJdLHJbImMiXSwhMSxudWxsLG51bGwsbnVsbCwhMSxyWyJhIl0sdm9pZCAwKTtlWyJkZWZhdWx0Il09cy5leHBvcnRzfSxjZjE1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiB0LmhvdmVyQ2xhc3MmJiJub25lIiE9PXQuaG92ZXJDbGFzcz9uKCJ1bmktdmlldyIsdC5fZyh7Y2xhc3M6W3QuaG92ZXJpbmc/dC5ob3ZlckNsYXNzOiIiXSxvbjp7dG91Y2hzdGFydDp0Ll9ob3ZlclRvdWNoU3RhcnQsdG91Y2hlbmQ6dC5faG92ZXJUb3VjaEVuZCx0b3VjaGNhbmNlbDp0Ll9ob3ZlclRvdWNoQ2FuY2VsLG1vdXNlZG93bjp0Ll9ob3Zlck1vdXNlZG93bixtb3VzZXVwOnQuX2hvdmVyTW91c2V1cH19LHQuJGxpc3RlbmVycyksW3QuX3QoImRlZmF1bHQiKV0sMik6bigidW5pLXZpZXciLHQuX2coe30sdC4kbGlzdGVuZXJzKSxbdC5fdCgiZGVmYXVsdCIpXSwyKX0saT1bXX0sY2Y5ODpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz17SW5kZXhTaXplRXJyb3I6e3M6IklOREVYX1NJWkVfRVJSIixjOjEsbToxfSxET01TdHJpbmdTaXplRXJyb3I6e3M6IkRPTVNUUklOR19TSVpFX0VSUiIsYzoyLG06MH0sSGllcmFyY2h5UmVxdWVzdEVycm9yOntzOiJISUVSQVJDSFlfUkVRVUVTVF9FUlIiLGM6MyxtOjF9LFdyb25nRG9jdW1lbnRFcnJvcjp7czoiV1JPTkdfRE9DVU1FTlRfRVJSIixjOjQsbToxfSxJbnZhbGlkQ2hhcmFjdGVyRXJyb3I6e3M6IklOVkFMSURfQ0hBUkFDVEVSX0VSUiIsYzo1LG06MX0sTm9EYXRhQWxsb3dlZEVycm9yOntzOiJOT19EQVRBX0FMTE9XRURfRVJSIixjOjYsbTowfSxOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjp7czoiTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIixjOjcsbToxfSxOb3RGb3VuZEVycm9yOntzOiJOT1RfRk9VTkRfRVJSIixjOjgsbToxfSxOb3RTdXBwb3J0ZWRFcnJvcjp7czoiTk9UX1NVUFBPUlRFRF9FUlIiLGM6OSxtOjF9LEluVXNlQXR0cmlidXRlRXJyb3I6e3M6IklOVVNFX0FUVFJJQlVURV9FUlIiLGM6MTAsbToxfSxJbnZhbGlkU3RhdGVFcnJvcjp7czoiSU5WQUxJRF9TVEFURV9FUlIiLGM6MTEsbToxfSxTeW50YXhFcnJvcjp7czoiU1lOVEFYX0VSUiIsYzoxMixtOjF9LEludmFsaWRNb2RpZmljYXRpb25FcnJvcjp7czoiSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSIixjOjEzLG06MX0sTmFtZXNwYWNlRXJyb3I6e3M6Ik5BTUVTUEFDRV9FUlIiLGM6MTQsbToxfSxJbnZhbGlkQWNjZXNzRXJyb3I6e3M6IklOVkFMSURfQUNDRVNTX0VSUiIsYzoxNSxtOjF9LFZhbGlkYXRpb25FcnJvcjp7czoiVkFMSURBVElPTl9FUlIiLGM6MTYsbTowfSxUeXBlTWlzbWF0Y2hFcnJvcjp7czoiVFlQRV9NSVNNQVRDSF9FUlIiLGM6MTcsbToxfSxTZWN1cml0eUVycm9yOntzOiJTRUNVUklUWV9FUlIiLGM6MTgsbToxfSxOZXR3b3JrRXJyb3I6e3M6Ik5FVFdPUktfRVJSIixjOjE5LG06MX0sQWJvcnRFcnJvcjp7czoiQUJPUlRfRVJSIixjOjIwLG06MX0sVVJMTWlzbWF0Y2hFcnJvcjp7czoiVVJMX01JU01BVENIX0VSUiIsYzoyMSxtOjF9LFF1b3RhRXhjZWVkZWRFcnJvcjp7czoiUVVPVEFfRVhDRUVERURfRVJSIixjOjIyLG06MX0sVGltZW91dEVycm9yOntzOiJUSU1FT1VUX0VSUiIsYzoyMyxtOjF9LEludmFsaWROb2RlVHlwZUVycm9yOntzOiJJTlZBTElEX05PREVfVFlQRV9FUlIiLGM6MjQsbToxfSxEYXRhQ2xvbmVFcnJvcjp7czoiREFUQV9DTE9ORV9FUlIiLGM6MjUsbToxfX19LGQwMTI6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9e319LGQwMzk6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKGUpe3JldHVybiEwfX19LGQwNjY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImRhODQiKSxpPW4oIjE2MjYiKSxhPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQpP3Q6dm9pZCAwfTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP2Eoclt0XSk6clt0XSYmclt0XVtlXX19LGQxMzg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuU2Nyb2xsPWEsbigiMTRkOSIpO3ZhciByPW4oIjEzODciKSxpPW4oIjAxMzgiKTtmdW5jdGlvbiBhKHQsZSxuKXt0aGlzLl9leHRlbnQ9dCx0aGlzLl9mcmljdGlvbj1lfHxuZXcgci5GcmljdGlvbiguMDEpLHRoaXMuX3NwcmluZz1ufHxuZXcgaS5TcHJpbmcoMSw5MCwyMCksdGhpcy5fc3RhcnRUaW1lPTAsdGhpcy5fc3ByaW5naW5nPSExLHRoaXMuX3NwcmluZ09mZnNldD0wfWEucHJvdG90eXBlLnNuYXA9ZnVuY3Rpb24odCxlKXt0aGlzLl9zcHJpbmdPZmZzZXQ9MCx0aGlzLl9zcHJpbmdpbmc9ITAsdGhpcy5fc3ByaW5nLnNuYXAodCksdGhpcy5fc3ByaW5nLnNldEVuZChlKX0sYS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy5fZnJpY3Rpb24uc2V0KHQsZSksdD4wJiZlPj0wPyh0aGlzLl9zcHJpbmdPZmZzZXQ9MCx0aGlzLl9zcHJpbmdpbmc9ITAsdGhpcy5fc3ByaW5nLnNuYXAodCksdGhpcy5fc3ByaW5nLnNldEVuZCgwKSk6dDwtdGhpcy5fZXh0ZW50JiZlPD0wPyh0aGlzLl9zcHJpbmdPZmZzZXQ9MCx0aGlzLl9zcHJpbmdpbmc9ITAsdGhpcy5fc3ByaW5nLnNuYXAodCksdGhpcy5fc3ByaW5nLnNldEVuZCgtdGhpcy5fZXh0ZW50KSk6dGhpcy5fc3ByaW5naW5nPSExLHRoaXMuX3N0YXJ0VGltZT0obmV3IERhdGUpLmdldFRpbWUoKX0sYS5wcm90b3R5cGUueD1mdW5jdGlvbih0KXtpZighdGhpcy5fc3RhcnRUaW1lKXJldHVybiAwO2lmKHR8fCh0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksdGhpcy5fc3ByaW5naW5nKXJldHVybiB0aGlzLl9zcHJpbmcueCgpK3RoaXMuX3NwcmluZ09mZnNldDt2YXIgZT10aGlzLl9mcmljdGlvbi54KHQpLG49dGhpcy5keCh0KTtyZXR1cm4oZT4wJiZuPj0wfHxlPC10aGlzLl9leHRlbnQmJm48PTApJiYodGhpcy5fc3ByaW5naW5nPSEwLHRoaXMuX3NwcmluZy5zZXRFbmQoMCxuKSxlPC10aGlzLl9leHRlbnQ/dGhpcy5fc3ByaW5nT2Zmc2V0PS10aGlzLl9leHRlbnQ6dGhpcy5fc3ByaW5nT2Zmc2V0PTAsZT10aGlzLl9zcHJpbmcueCgpK3RoaXMuX3NwcmluZ09mZnNldCksZX0sYS5wcm90b3R5cGUuZHg9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIGU9dGhpcy5fbGFzdFRpbWU9PT10P3RoaXMuX2xhc3REeDp0aGlzLl9zcHJpbmdpbmc/dGhpcy5fc3ByaW5nLmR4KHQpOnRoaXMuX2ZyaWN0aW9uLmR4KHQpLHRoaXMuX2xhc3RUaW1lPXQsdGhpcy5fbGFzdER4PWUsZX0sYS5wcm90b3R5cGUuZG9uZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zcHJpbmdpbmc/dGhpcy5fc3ByaW5nLmRvbmUoKTp0aGlzLl9mcmljdGlvbi5kb25lKCl9LGEucHJvdG90eXBlLnNldFZlbG9jaXR5QnlFbmQ9ZnVuY3Rpb24odCl7dGhpcy5fZnJpY3Rpb24uc2V0VmVsb2NpdHlCeUVuZCh0KX0sYS5wcm90b3R5cGUuY29uZmlndXJhdGlvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ZyaWN0aW9uLmNvbmZpZ3VyYXRpb24oKTtyZXR1cm4gdC5wdXNoLmFwcGx5KHQsdGhpcy5fc3ByaW5nLmNvbmZpZ3VyYXRpb24oKSksdH19LGQxMzk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IiksaT1uKCJiNzI3IikuZmluZCxhPXIuYVR5cGVkQXJyYXksbz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7bygiZmluZCIsKGZ1bmN0aW9uKHQpe3JldHVybiBpKGEodGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSl9LGQxZTc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsYT1pJiYhci5jYWxsKHsxOjJ9LDEpO2UuZj1hP2Z1bmN0aW9uKHQpe3ZhciBlPWkodGhpcyx0KTtyZXR1cm4hIWUmJmUuZW51bWVyYWJsZX06cn0sZDI1NjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpO3QuZXhwb3J0cz1yLlByb21pc2V9LGQyNWU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiOWM5MiIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sZDI4YjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZTA2NSIpO3IoIml0ZXJhdG9yIil9LGQyYmI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImUzMzAiKSxpPW4oIjgyNWEiKSxhPW4oIjNiYmUiKTt0LmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIHQsZT0hMSxuPXt9O3RyeXt0PXIoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQpLHQobixbXSksZT1uIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2gobyl7fXJldHVybiBmdW5jdGlvbihuLHIpe3JldHVybiBpKG4pLGEociksZT90KG4scik6bi5fX3Byb3RvX189cixufX0oKTp2b2lkIDApfSxkM2I3OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwMGVlIiksaT1uKCJjYjJkIiksYT1uKCJiMDQxIik7cnx8aShPYmplY3QucHJvdG90eXBlLCJ0b1N0cmluZyIsYSx7dW5zYWZlOiEwfSl9LGQ0MDE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImNiMmQiKSxpPW4oImFhMWYiKSxhPUVycm9yLnByb3RvdHlwZTthLnRvU3RyaW5nIT09aSYmcihhLCJ0b1N0cmluZyIsaSl9LGQ0MTI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiNWQwZSIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sZDQ0ZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiOWJmMiIpLmYsaT1uKCIxYTJkIiksYT1uKCJiNjIyIiksbz1hKCJ0b1N0cmluZ1RhZyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbil7dCYmIW4mJih0PXQucHJvdG90eXBlKSx0JiYhaSh0LG8pJiZyKHQsbyx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmV9KX19LGQ0YzM6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjM0MmYiKSxpPW4oImRhODQiKTt0LmV4cG9ydHM9L2lwYWR8aXBob25lfGlwb2QvaS50ZXN0KHIpJiZ2b2lkIDAhPT1pLlBlYmJsZX0sZDRlYzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9LG4oImQ5ZTIiKSxuKCJkNDAxIil9LGQ1OGY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjU5ZWQiKSxpPW4oIjdiMGIiKSxhPW4oIjQ0YWQiKSxvPW4oIjA3ZmEiKSxzPVR5cGVFcnJvcixjPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4sYyx1KXtyKG4pO3ZhciBsPWkoZSksZj1hKGwpLGQ9byhsKSxoPXQ/ZC0xOjAscD10Py0xOjE7aWYoYzwyKXdoaWxlKDEpe2lmKGggaW4gZil7dT1mW2hdLGgrPXA7YnJlYWt9aWYoaCs9cCx0P2g8MDpkPD1oKXRocm93IHMoIlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKX1mb3IoO3Q/aD49MDpkPmg7aCs9cCloIGluIGYmJih1PW4odSxmW2hdLGgsbCkpO3JldHVybiB1fX07dC5leHBvcnRzPXtsZWZ0OmMoITEpLHJpZ2h0OmMoITApfX0sZDVkNjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImViYjUiKSxpPW4oImI3MjciKS5mb3JFYWNoLGE9ci5hVHlwZWRBcnJheSxvPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtvKCJmb3JFYWNoIiwoZnVuY3Rpb24odCl7aShhKHRoaXMpLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSxkNWZhOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjM5YTciKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LGQ2MTg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIHI9e25hbWU6IkltYWdlVmlldyIscHJvcHM6e3NyYzp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57ZGlyZWN0aW9uOiJub25lIn19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnNjYWxlPTEsdGhpcy5pbWdXaWR0aD0wLHRoaXMuaW1nSGVpZ2h0PTAsdGhpcy53aWR0aD0wLHRoaXMuaGVpZ2h0PTB9LG1ldGhvZHM6e29uU2NhbGU6ZnVuY3Rpb24odCl7dmFyIGU9dC5kZXRhaWwuc2NhbGU7dGhpcy5zY2FsZT1lfSxvbkltZ0xvYWQ6ZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQsbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuaW1nV2lkdGg9bi53aWR0aCx0aGlzLmltZ0hlaWdodD1uLmhlaWdodH0sb25Ub3VjaFN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJGVsLG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLndpZHRoPW4ud2lkdGgsdGhpcy5oZWlnaHQ9bi5oZWlnaHQsdGhpcy5jaGVja0RpcmVjdGlvbih0KX0sb25Ub3VjaEVuZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnNjYWxlLG49ZSp0aGlzLmltZ1dpZHRoPnRoaXMud2lkdGgscj1lKnRoaXMuaW1nSGVpZ2h0PnRoaXMuaGVpZ2h0O3RoaXMuZGlyZWN0aW9uPW4mJnI/ImFsbCI6bj8iaG9yaXpvbnRhbCI6cj8idmVydGljYWwiOiJub25lIix0aGlzLmNoZWNrRGlyZWN0aW9uKHQpfSxjaGVja0RpcmVjdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmRpcmVjdGlvbjsiYWxsIiE9PWUmJiJob3Jpem9udGFsIiE9PWV8fHQuc3RvcFByb3BhZ2F0aW9uKCl9fX07ZS5kZWZhdWx0PXJ9LGQ2MWU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlc3Ryb3lNZWRpYVF1ZXJ5T2JzZXJ2ZXI9ZnVuY3Rpb24oZSl7dmFyIG49ZS5yZXFJZCxhPWlbbl0sbz1yW25dO28mJihvLnJlbW92ZUxpc3RlbmVyKGEpLGRlbGV0ZSByW25dLHQucHVibGlzaEhhbmRsZXIoIm9uUmVxdWVzdE1lZGlhUXVlcnlPYnNlcnZlciIse3JlcUlkOm4scmVxRW5kOiEwfSkpfSxlLnJlcXVlc3RNZWRpYVF1ZXJ5T2JzZXJ2ZXI9ZnVuY3Rpb24oZSl7dmFyIG49ZS5yZXFJZCxvPWUub3B0aW9ucyxzPXJbbl09d2luZG93Lm1hdGNoTWVkaWEoZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MCxyPVsid2lkdGgiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwiaGVpZ2h0IiwibWluSGVpZ2h0IiwibWF4SGVpZ2h0Iiwib3JpZW50YXRpb24iXTtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXTsib3JpZW50YXRpb24iIT09aSYmIiIhPT10W2ldJiZOdW1iZXIodFtpXSk+PTAmJmUucHVzaCgiKCIuY29uY2F0KGEoaSksIjogIikuY29uY2F0KE51bWJlcih0W2ldKSwicHgpIikpLCJvcmllbnRhdGlvbiI9PT1pJiZ0W2ldJiZlLnB1c2goIigiLmNvbmNhdChhKGkpLCI6ICIpLmNvbmNhdCh0W2ldLCIpIikpfXJldHVybiBlPWUuam9pbigiIGFuZCAiKSxlfShvKSksYz1pW25dPWZ1bmN0aW9uKGUpe3QucHVibGlzaEhhbmRsZXIoIm9uUmVxdWVzdE1lZGlhUXVlcnlPYnNlcnZlciIse3JlcUlkOm4scmVzOmUubWF0Y2hlc30pfTtjKHMpLHMuYWRkTGlzdGVuZXIoYyl9LG4oImE5ZTMiKSxuKCIxNGQ5IiksbigiOTlhZiIpLG4oImFjMWYiKSxuKCI1MzE5Iik7dmFyIHI9e30saT17fTtmdW5jdGlvbiBhKHQpe3JldHVybiB0LnJlcGxhY2UoLyhbQS1aXSkvZywiLSQxIikudG9Mb3dlckNhc2UoKX19KS5jYWxsKHRoaXMsbigiYzVjMyIpKX0sZDY2YTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O24oImQzYjciKSxuKCIxNTliIiksbigiYjY0YiIpO3ZhciBpPXIobigiZTE0MyIpKSxhPXIobigiMDBkZSIpKSxvPXIobigiZTUyYSIpKSxzPXIobigiN2JiZiIpKSxjPXIobigiYzJlMCIpKSx1PXIobigiMTNmMSIpKSxsPXIobigiNzlmZSIpKTtpLmRlZmF1bHQuY29tcG9uZW50KGEuZGVmYXVsdC5uYW1lLGEuZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudChvLmRlZmF1bHQubmFtZSxvLmRlZmF1bHQpLGkuZGVmYXVsdC5jb21wb25lbnQocy5kZWZhdWx0Lm5hbWUscy5kZWZhdWx0KSxpLmRlZmF1bHQuY29tcG9uZW50KGMuZGVmYXVsdC5uYW1lLGMuZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudCh1LmRlZmF1bHQubmFtZSx1LmRlZmF1bHQpLE9iamVjdC5rZXlzKGwuZGVmYXVsdCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bC5kZWZhdWx0W3RdO2kuZGVmYXVsdC5jb21wb25lbnQoZS5uYW1lLGUpfSkpfSxkNjZkOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImQzYjciKSxuKCIxNTliIiksbigiYzk3NSIpLG4oImZiNmEiKSxuKCJhYzFmIiksbigiODQxYyIpLG4oIjQ2NmQiKSxuKCIxNGQ5IiksbigiYjY0YiIpLG4oIjk5YWYiKSxuKCI3YTgyIik7dmFyIGk9cihuKCJhN2E3IikpLGE9bigiZjRmMCIpLG89bigiNDFhZSIpLHM9bigiYmM5NCIpLGM9bigiZjBiMSIpLHU9bigiYjliMSIpLGw9bigiNzU1MSIpLGY9bigiZGI2YSIpO2Z1bmN0aW9uIGQodCl7dmFyIGU9MDtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXt0Lm1ldGEuaWQmJmUrK30pKSxlfWZ1bmN0aW9uIGgoKXt2YXIgdD13aW5kb3cubG9jYXRpb24uaHJlZixlPXQuaW5kZXhPZigiIyIpO3JldHVybi0xPT09ZT8iIjpkZWNvZGVVUkkodC5zbGljZShlKzEpKX1mdW5jdGlvbiBwKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIvIixlPWRlY29kZVVSSSh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLG49d2luZG93LmxvY2F0aW9uLnNlYXJjaCxyPXdpbmRvdy5sb2NhdGlvbi5oYXNoO3JldHVybiIvIj09PXRbdC5sZW5ndGgtMV0mJmU9PT10LnN1YnN0cmluZygwLHQubGVuZ3RoLTEpJiYoZT10LHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSwiIix0K24rcikpLHQmJjA9PT1lLmluZGV4T2YodCkmJihlPWUuc2xpY2UodC5sZW5ndGgpKSwoZXx8Ii8iKStuK3J9dmFyIHY9e2luc3RhbGw6ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LHI9bi5yb3V0ZXM7ZS5jb25maWcuZGV2dG9vbHMmJiJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdyYmLTEhPT13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImhidWlsZGVyeCIpJiYoZS5jb25maWcuZGV2dG9vbHM9ITEpLCgwLHUuaW5pdFBvbHlmaWxsKShlKSwoMCxjLmxpZmVjeWNsZU1peGluKShlKSwoMCxmLnVuaUlkTWl4aW4pKGUpLCJ1bmRlZmluZWQiIT09dHlwZW9mIF9fVU5JX1JPVVRFUl9CQVNFX18mJihfX3VuaUNvbmZpZy5yb3V0ZXIuYmFzZT1fX1VOSV9ST1VURVJfQkFTRV9fKTt2YXIgdj1kKHIpLGc9bmV3IGkuZGVmYXVsdCh7aWQ6dixtb2RlOl9fdW5pQ29uZmlnLnJvdXRlci5tb2RlLGJhc2U6X191bmlDb25maWcucm91dGVyLmJhc2Uscm91dGVzOnIsc2Nyb2xsQmVoYXZpb3I6ZnVuY3Rpb24odCxlLG4pe2lmKG4pcmV0dXJuIG47aWYodCYmZSYmdC5tZXRhLmlzVGFiQmFyJiZlLm1ldGEuaXNUYWJCYXIpe3ZhciByPSgwLGwuZ2V0VGFiQmFyU2Nyb2xsUG9zaXRpb24pKHQucGFyYW1zLl9faWRfXyk7aWYocilyZXR1cm4gcn1yZXR1cm57eDowLHk6MH19fSksbT1bXSxiPWcubWF0Y2goImhpc3RvcnkiPT09X191bmlDb25maWcucm91dGVyLm1vZGU/cChfX3VuaUNvbmZpZy5yb3V0ZXIuYmFzZSk6aCgpKTtpZihiLm1ldGEubmFtZSYmKGIubWV0YS5pZD9tLnB1c2goYi5tZXRhLm5hbWUrIi0iK2IubWV0YS5pZCk6bS5wdXNoKGIubWV0YS5uYW1lKyItIisodisxKSkpLGIubWV0YSYmYi5tZXRhLm5hbWUmJihkb2N1bWVudC5ib2R5LmNsYXNzTmFtZT0idW5pLWJvZHkgIitiLm1ldGEubmFtZSxiLm1ldGEuaXNOVnVlKSl7dmFyIHk9Im52dWUtZGlyLSIrX191bmlDb25maWcubnZ1ZVsiZmxleC1kaXJlY3Rpb24iXTtkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgibnZ1ZSIsIiIpLGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKHksIiIpfWUubWl4aW4oe2JlZm9yZUNyZWF0ZTpmdW5jdGlvbigpe3ZhciBuPXRoaXMuJG9wdGlvbnM7aWYoImFwcCI9PT1uLm1wVHlwZSl7bi5kYXRhPWZ1bmN0aW9uKCl7cmV0dXJue2tlZXBBbGl2ZUluY2x1ZGU6bX19O3ZhciBpPSgwLG8uY3JlYXRlQXBwTWl4aW4pKGUscixiKTtPYmplY3Qua2V5cyhpKS5mb3JFYWNoKChmdW5jdGlvbih0KXtuW3RdPW5bdF0/W10uY29uY2F0KGlbdF0sblt0XSk6W2lbdF1dfSkpLG4ucm91dGVyPWcsQXJyYXkuaXNBcnJheShuLm9uRXJyb3IpJiYwIT09bi5vbkVycm9yLmxlbmd0aHx8KG4ub25FcnJvcj1bZnVuY3Rpb24oZSl7dC5lcnJvcihlKX1dKX1lbHNlIGlmKCgwLGEuaXNQYWdlKSh0aGlzKSl7dmFyIGM9KDAscy5jcmVhdGVQYWdlTWl4aW4pKCk7T2JqZWN0LmtleXMoYykuZm9yRWFjaCgoZnVuY3Rpb24odCl7bi5tcE9wdGlvbnM/blt0XT1uW3RdP1tdLmNvbmNhdChuW3RdLGNbdF0pOltjW3RdXTpuW3RdPW5bdF0/W10uY29uY2F0KGNbdF0sblt0XSk6W2NbdF1dfSkpfWVsc2UgdGhpcy4kcGFyZW50JiZ0aGlzLiRwYXJlbnQuX19wYWdlX18mJih0aGlzLl9fcGFnZV9fPXRoaXMuJHBhcmVudC5fX3BhZ2VfXyl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCIkcGFnZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fcGFnZV9ffX0pLGUucHJvdG90eXBlLmNyZWF0ZVNlbGVjdG9yUXVlcnk9ZnVuY3Rpb24oKXtyZXR1cm4gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5pbih0aGlzKX0sZS5wcm90b3R5cGUuY3JlYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHVuaS5jcmVhdGVJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLHQpfSxlLnByb3RvdHlwZS5jcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHVuaS5jcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXIodGhpcyx0KX0sZS51c2UoaS5kZWZhdWx0KX19O2UuZGVmYXVsdD12fSkuY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sZDZkNjpmdW5jdGlvbih0LGUpe3ZhciBuPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZih0PGUpdGhyb3cgbigiTm90IGVub3VnaCBhcmd1bWVudHMiKTtyZXR1cm4gdH19LGQ3ODQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCJhYzFmIik7dmFyIHI9bigiNDYyNSIpLGk9bigiY2IyZCIpLGE9bigiOTI2MyIpLG89bigiZDAzOSIpLHM9bigiYjYyMiIpLGM9bigiOTExMiIpLHU9cygic3BlY2llcyIpLGw9UmVnRXhwLnByb3RvdHlwZTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sZil7dmFyIGQ9cyh0KSxoPSFvKChmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBlW2RdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW3RdKGUpfSkpLHA9aCYmIW8oKGZ1bmN0aW9uKCl7dmFyIGU9ITEsbj0vYS87cmV0dXJuInNwbGl0Ij09PXQmJihuPXt9LG4uY29uc3RydWN0b3I9e30sbi5jb25zdHJ1Y3Rvclt1XT1mdW5jdGlvbigpe3JldHVybiBufSxuLmZsYWdzPSIiLG5bZF09Ly4vW2RdKSxuLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZT0hMCxudWxsfSxuW2RdKCIiKSwhZX0pKTtpZighaHx8IXB8fG4pe3ZhciB2PXIoLy4vW2RdKSxnPWUoZCwiIlt0XSwoZnVuY3Rpb24odCxlLG4saSxvKXt2YXIgcz1yKHQpLGM9ZS5leGVjO3JldHVybiBjPT09YXx8Yz09PWwuZXhlYz9oJiYhbz97ZG9uZTohMCx2YWx1ZTp2KGUsbixpKX06e2RvbmU6ITAsdmFsdWU6cyhuLGUsaSl9Ontkb25lOiExfX0pKTtpKFN0cmluZy5wcm90b3R5cGUsdCxnWzBdKSxpKGwsZCxnWzFdKX1mJiZjKGxbZF0sInNoYW0iLCEwKX19LGQ4MWQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJiNzI3IikubWFwLGE9bigiMWRkZSIpLG89YSgibWFwIik7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFvfSx7bWFwOmZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LGQ4NmI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwMzkiKTt0LmV4cG9ydHM9cigoZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgQXJyYXlCdWZmZXIpe3ZhciB0PW5ldyBBcnJheUJ1ZmZlcig4KTtPYmplY3QuaXNFeHRlbnNpYmxlKHQpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiYSIse3ZhbHVlOjh9KX19KSl9LGQ4YzM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImQzYjciKSxuKCIxNTliIiksbigiYjY0YiIpLG4oImM5NzUiKSxuKCI5OWFmIik7dmFyIHI9bigiZGI2YSIpLGk9e3Byb3BzOntpZDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2FkZExpc3RlbmVycyh0aGlzLmlkKSx0aGlzLiR3YXRjaCgiaWQiLChmdW5jdGlvbihlLG4pe3QuX3JlbW92ZUxpc3RlbmVycyhuLCEwKSx0Ll9hZGRMaXN0ZW5lcnMoZSwhMCl9KSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVMaXN0ZW5lcnModGhpcy5pZCl9LG1ldGhvZHM6e19hZGRMaXN0ZW5lcnM6ZnVuY3Rpb24oZSxuKXt2YXIgaT10aGlzO2lmKCFufHxlKXt2YXIgYT10aGlzLiRvcHRpb25zLmxpc3RlbmVyczsoMCxyLmlzUGxhaW5PYmplY3QpKGEpJiZPYmplY3Qua2V5cyhhKS5mb3JFYWNoKChmdW5jdGlvbihyKXtuPzAhPT1yLmluZGV4T2YoIkAiKSYmMCE9PXIuaW5kZXhPZigidW5pLSIpJiZ0Lm9uKCJ1bmktIi5jb25jYXQociwiLSIpLmNvbmNhdChpLiRwYWdlLmlkLCItIikuY29uY2F0KGUpLGlbYVtyXV0pOjA9PT1yLmluZGV4T2YoIkAiKT9pLiRvbigidW5pLSIuY29uY2F0KHIuc3Vic3RyKDEpKSxpW2Fbcl1dKTowPT09ci5pbmRleE9mKCJ1bmktIik/dC5vbihyLGlbYVtyXV0pOmUmJnQub24oInVuaS0iLmNvbmNhdChyLCItIikuY29uY2F0KGkuJHBhZ2UuaWQsIi0iKS5jb25jYXQoZSksaVthW3JdXSl9KSl9fSxfcmVtb3ZlTGlzdGVuZXJzOmZ1bmN0aW9uKGUsbil7dmFyIGk9dGhpcztpZighbnx8ZSl7dmFyIGE9dGhpcy4kb3B0aW9ucy5saXN0ZW5lcnM7KDAsci5pc1BsYWluT2JqZWN0KShhKSYmT2JqZWN0LmtleXMoYSkuZm9yRWFjaCgoZnVuY3Rpb24ocil7bj8wIT09ci5pbmRleE9mKCJAIikmJjAhPT1yLmluZGV4T2YoInVuaS0iKSYmdC5vZmYoInVuaS0iLmNvbmNhdChyLCItIikuY29uY2F0KGkuJHBhZ2UuaWQsIi0iKS5jb25jYXQoZSksaVthW3JdXSk6MD09PXIuaW5kZXhPZigiQCIpP2kuJG9mZigidW5pLSIuY29uY2F0KHIuc3Vic3RyKDEpKSxpW2Fbcl1dKTowPT09ci5pbmRleE9mKCJ1bmktIik/dC5vZmYocixpW2Fbcl1dKTplJiZ0Lm9mZigidW5pLSIuY29uY2F0KHIsIi0iKS5jb25jYXQoaS4kcGFnZS5pZCwiLSIpLmNvbmNhdChlKSxpW2Fbcl1dKX0pKX19fX07ZS5kZWZhdWx0PWl9KS5jYWxsKHRoaXMsbigiYzVjMyIpKX0sZDhjODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByLGksYT1bInRvcCIsImxlZnQiLCJyaWdodCIsImJvdHRvbSJdLG89e307ZnVuY3Rpb24gcygpe3JldHVybiBpPSJDU1MiaW4gd2luZG93JiYiZnVuY3Rpb24iPT10eXBlb2YgQ1NTLnN1cHBvcnRzP0NTUy5zdXBwb3J0cygidG9wOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkiKT8iZW52IjpDU1Muc3VwcG9ydHMoInRvcDogY29uc3RhbnQoc2FmZS1hcmVhLWluc2V0LXRvcCkiKT8iY29uc3RhbnQiOiIiOiIiLGl9ZnVuY3Rpb24gYygpe2lmKGk9InN0cmluZyI9PT10eXBlb2YgaT9pOnMoKSxpKXt2YXIgdD1bXSxlPSExO3RyeXt2YXIgbj1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtlPXtwYXNzaXZlOiEwfX19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxuKX1jYXRjaChwKXt9dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dShjLHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6IjAiLHRvcDoiMCIsd2lkdGg6IjAiLGhlaWdodDoiMCIsekluZGV4OiItMSIsb3ZlcmZsb3c6ImhpZGRlbiIsdmlzaWJpbGl0eToiaGlkZGVuIn0pLGEuZm9yRWFjaCgoZnVuY3Rpb24odCl7aChjLHQpfSkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYyksZCgpLHI9ITB9ZWxzZSBhLmZvckVhY2goKGZ1bmN0aW9uKHQpe29bdF09MH0pKTtmdW5jdGlvbiB1KHQsZSl7dmFyIG49dC5zdHlsZTtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcj1lW3RdO25bdF09cn0pKX1mdW5jdGlvbiBkKGUpe2U/dC5wdXNoKGUpOnQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dCgpfSkpfWZ1bmN0aW9uIGgodCxuKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxoPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOiIxMDBweCIsaGVpZ2h0OiIyMDBweCIsYm94U2l6aW5nOiJib3JkZXItYm94IixvdmVyZmxvdzoiaGlkZGVuIixwYWRkaW5nQm90dG9tOmkrIihzYWZlLWFyZWEtaW5zZXQtIituKyIpIn07dShyLGgpLHUoYSxoKSx1KHMse3RyYW5zaXRpb246IjBzIixhbmltYXRpb246Im5vbmUiLHdpZHRoOiI0MDBweCIsaGVpZ2h0OiI0MDBweCJ9KSx1KGMse3RyYW5zaXRpb246IjBzIixhbmltYXRpb246Im5vbmUiLHdpZHRoOiIyNTAlIixoZWlnaHQ6IjI1MCUifSksci5hcHBlbmRDaGlsZChzKSxhLmFwcGVuZENoaWxkKGMpLHQuYXBwZW5kQ2hpbGQociksdC5hcHBlbmRDaGlsZChhKSxkKChmdW5jdGlvbigpe3Iuc2Nyb2xsVG9wPWEuc2Nyb2xsVG9wPTFlNDt2YXIgdD1yLnNjcm9sbFRvcCxpPWEuc2Nyb2xsVG9wO2Z1bmN0aW9uIHMoKXt0aGlzLnNjcm9sbFRvcCE9PSh0aGlzPT09cj90OmkpJiYoci5zY3JvbGxUb3A9YS5zY3JvbGxUb3A9MWU0LHQ9ci5zY3JvbGxUb3AsaT1hLnNjcm9sbFRvcCxmdW5jdGlvbih0KXtsLmxlbmd0aHx8c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgdD17fTtsLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RbZV09b1tlXX0pKSxsLmxlbmd0aD0wLGYuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZSh0KX0pKX0pLDApO2wucHVzaCh0KX0obikpfXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixzLGUpLGEuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixzLGUpfSkpO3ZhciBwPWdldENvbXB1dGVkU3R5bGUocik7T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sbix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwYXJzZUZsb2F0KHAucGFkZGluZ0JvdHRvbSl9fSl9fWZ1bmN0aW9uIHUodCl7cmV0dXJuIHJ8fGMoKSxvW3RdfXZhciBsPVtdO3ZhciBmPVtdO3ZhciBkPXtnZXQgc3VwcG9ydCgpe3JldHVybiAwIT0oInN0cmluZyI9PT10eXBlb2YgaT9pOnMoKSkubGVuZ3RofSxnZXQgdG9wKCl7cmV0dXJuIHUoInRvcCIpfSxnZXQgbGVmdCgpe3JldHVybiB1KCJsZWZ0Iil9LGdldCByaWdodCgpe3JldHVybiB1KCJyaWdodCIpfSxnZXQgYm90dG9tKCl7cmV0dXJuIHUoImJvdHRvbSIpfSxvbkNoYW5nZTpmdW5jdGlvbih0KXtzKCkmJihyfHxjKCksImZ1bmN0aW9uIj09PXR5cGVvZiB0JiZmLnB1c2godCkpfSxvZmZDaGFuZ2U6ZnVuY3Rpb24odCl7dmFyIGU9Zi5pbmRleE9mKHQpO2U+PTAmJmYuc3BsaWNlKGUsMSl9fTt0LmV4cG9ydHM9ZH0sZDk1NDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCJkNjE4IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxkOTk4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIzNDJmIik7dC5leHBvcnRzPS9NU0lFfFRyaWRlbnQvLnRlc3Qocil9LGQ5YjU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwNjYiKSxpPW4oIjE2MjYiKSxhPW4oIjNhOWIiKSxvPW4oImZkYmYiKSxzPU9iamVjdDt0LmV4cG9ydHM9bz9mdW5jdGlvbih0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3ZhciBlPXIoIlN5bWJvbCIpO3JldHVybiBpKGUpJiZhKGUucHJvdG90eXBlLHModCkpfX0sZDllMjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiZGE4NCIpLGE9bigiMmJhNCIpLG89bigiZTVjYiIpLHM9aVsiV2ViQXNzZW1ibHkiXSxjPTchPT1FcnJvcigiZSIse2NhdXNlOjd9KS5jYXVzZSx1PWZ1bmN0aW9uKHQsZSl7dmFyIG49e307blt0XT1vKHQsZSxjKSxyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsYXJpdHk6MSxmb3JjZWQ6Y30sbil9LGw9ZnVuY3Rpb24odCxlKXtpZihzJiZzW3RdKXt2YXIgbj17fTtuW3RdPW8oIldlYkFzc2VtYmx5LiIrdCxlLGMpLHIoe3RhcmdldDoiV2ViQXNzZW1ibHkiLHN0YXQ6ITAsY29uc3RydWN0b3I6ITAsYXJpdHk6MSxmb3JjZWQ6Y30sbil9fTt1KCJFcnJvciIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gYSh0LHRoaXMsYXJndW1lbnRzKX19KSksdSgiRXZhbEVycm9yIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBhKHQsdGhpcyxhcmd1bWVudHMpfX0pKSx1KCJSYW5nZUVycm9yIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBhKHQsdGhpcyxhcmd1bWVudHMpfX0pKSx1KCJSZWZlcmVuY2VFcnJvciIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gYSh0LHRoaXMsYXJndW1lbnRzKX19KSksdSgiU3ludGF4RXJyb3IiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGEodCx0aGlzLGFyZ3VtZW50cyl9fSkpLHUoIlR5cGVFcnJvciIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gYSh0LHRoaXMsYXJndW1lbnRzKX19KSksdSgiVVJJRXJyb3IiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGEodCx0aGlzLGFyZ3VtZW50cyl9fSkpLGwoIkNvbXBpbGVFcnJvciIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gYSh0LHRoaXMsYXJndW1lbnRzKX19KSksbCgiTGlua0Vycm9yIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBhKHQsdGhpcyxhcmd1bWVudHMpfX0pKSxsKCJSdW50aW1lRXJyb3IiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGEodCx0aGlzLGFyZ3VtZW50cyl9fSkpfSxkOWY1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiZGE4NCIpLGE9bigiYzY1YiIpLG89bigiZTMzMCIpLHM9bigiYzQzMCIpLGM9bigiODNhYiIpLHU9bigiMDRmOCIpLGw9bigiZDAzOSIpLGY9bigiMWEyZCIpLGQ9bigiM2E5YiIpLGg9bigiODI1YSIpLHA9bigiZmM2YSIpLHY9bigiYTA0YiIpLGc9bigiNTc3ZSIpLG09bigiNWM2YyIpLGI9bigiN2M3MyIpLHk9bigiZGY3NSIpLF89bigiMjQxYyIpLHc9bigiMDU3ZiIpLHg9bigiNzQxOCIpLFM9bigiMDZjZiIpLFQ9bigiOWJmMiIpLEM9bigiMzdlOCIpLGs9bigiZDFlNyIpLE89bigiY2IyZCIpLEU9bigiNTY5MiIpLEk9bigiZjc3MiIpLFA9bigiZDAxMiIpLE09bigiOTBlMyIpLEE9bigiYjYyMiIpLCQ9bigiZTUzOCIpLEw9bigiZTA2NSIpLGo9bigiNTdiOSIpLFI9bigiZDQ0ZSIpLE49bigiNjlmMyIpLEI9bigiYjcyNyIpLmZvckVhY2gsRD1JKCJoaWRkZW4iKSxGPU4uc2V0LFc9Ti5nZXR0ZXJGb3IoIlN5bWJvbCIpLEg9T2JqZWN0WyJwcm90b3R5cGUiXSxWPWkuU3ltYm9sLFU9ViYmVlsicHJvdG90eXBlIl0scT1pLlR5cGVFcnJvcix6PWkuUU9iamVjdCxZPVMuZixYPVQuZixHPXcuZixRPWsuZixKPW8oW10ucHVzaCksSz1FKCJzeW1ib2xzIiksWj1FKCJvcC1zeW1ib2xzIiksdHQ9RSgid2tzIiksZXQ9IXp8fCF6WyJwcm90b3R5cGUiXXx8IXpbInByb3RvdHlwZSJdLmZpbmRDaGlsZCxudD1jJiZsKChmdW5jdGlvbigpe3JldHVybiA3IT1iKFgoe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWCh0aGlzLCJhIix7dmFsdWU6N30pLmF9fSkpLmF9KSk/ZnVuY3Rpb24odCxlLG4pe3ZhciByPVkoSCxlKTtyJiZkZWxldGUgSFtlXSxYKHQsZSxuKSxyJiZ0IT09SCYmWChILGUscil9OlgscnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1LW3RdPWIoVSk7cmV0dXJuIEYobix7dHlwZToiU3ltYm9sIix0YWc6dCxkZXNjcmlwdGlvbjplfSksY3x8KG4uZGVzY3JpcHRpb249ZSksbn0saXQ9ZnVuY3Rpb24odCxlLG4pe3Q9PT1IJiZpdChaLGUsbiksaCh0KTt2YXIgcj12KGUpO3JldHVybiBoKG4pLGYoSyxyKT8obi5lbnVtZXJhYmxlPyhmKHQsRCkmJnRbRF1bcl0mJih0W0RdW3JdPSExKSxuPWIobix7ZW51bWVyYWJsZTptKDAsITEpfSkpOihmKHQsRCl8fFgodCxELG0oMSx7fSkpLHRbRF1bcl09ITApLG50KHQscixuKSk6WCh0LHIsbil9LGF0PWZ1bmN0aW9uKHQsZSl7aCh0KTt2YXIgbj1wKGUpLHI9eShuKS5jb25jYXQodXQobikpO3JldHVybiBCKHIsKGZ1bmN0aW9uKGUpe2MmJiFhKG90LG4sZSl8fGl0KHQsZSxuW2VdKX0pKSx0fSxvdD1mdW5jdGlvbih0KXt2YXIgZT12KHQpLG49YShRLHRoaXMsZSk7cmV0dXJuISh0aGlzPT09SCYmZihLLGUpJiYhZihaLGUpKSYmKCEobnx8IWYodGhpcyxlKXx8IWYoSyxlKXx8Zih0aGlzLEQpJiZ0aGlzW0RdW2VdKXx8bil9LHN0PWZ1bmN0aW9uKHQsZSl7dmFyIG49cCh0KSxyPXYoZSk7aWYobiE9PUh8fCFmKEsscil8fGYoWixyKSl7dmFyIGk9WShuLHIpO3JldHVybiFpfHwhZihLLHIpfHxmKG4sRCkmJm5bRF1bcl18fChpLmVudW1lcmFibGU9ITApLGl9fSxjdD1mdW5jdGlvbih0KXt2YXIgZT1HKHAodCkpLG49W107cmV0dXJuIEIoZSwoZnVuY3Rpb24odCl7ZihLLHQpfHxmKFAsdCl8fEoobix0KX0pKSxufSx1dD1mdW5jdGlvbih0KXt2YXIgZT10PT09SCxuPUcoZT9aOnAodCkpLHI9W107cmV0dXJuIEIobiwoZnVuY3Rpb24odCl7IWYoSyx0KXx8ZSYmIWYoSCx0KXx8SihyLEtbdF0pfSkpLHJ9O3V8fChWPWZ1bmN0aW9uKCl7aWYoZChVLHRoaXMpKXRocm93IHEoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO3ZhciB0PWFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9nKGFyZ3VtZW50c1swXSk6dm9pZCAwLGU9TSh0KSxuPWZ1bmN0aW9uKHQpe3RoaXM9PT1IJiZhKG4sWix0KSxmKHRoaXMsRCkmJmYodGhpc1tEXSxlKSYmKHRoaXNbRF1bZV09ITEpLG50KHRoaXMsZSxtKDEsdCkpfTtyZXR1cm4gYyYmZXQmJm50KEgsZSx7Y29uZmlndXJhYmxlOiEwLHNldDpufSkscnQoZSx0KX0sVT1WWyJwcm90b3R5cGUiXSxPKFUsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzKS50YWd9KSksTyhWLCJ3aXRob3V0U2V0dGVyIiwoZnVuY3Rpb24odCl7cmV0dXJuIHJ0KE0odCksdCl9KSksay5mPW90LFQuZj1pdCxDLmY9YXQsUy5mPXN0LF8uZj13LmY9Y3QseC5mPXV0LCQuZj1mdW5jdGlvbih0KXtyZXR1cm4gcnQoQSh0KSx0KX0sYyYmKFgoVSwiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcykuZGVzY3JpcHRpb259fSksc3x8TyhILCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsb3Qse3Vuc2FmZTohMH0pKSkscih7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLHdyYXA6ITAsZm9yY2VkOiF1LHNoYW06IXV9LHtTeW1ib2w6Vn0pLEIoeSh0dCksKGZ1bmN0aW9uKHQpe0wodCl9KSkscih7dGFyZ2V0OiJTeW1ib2wiLHN0YXQ6ITAsZm9yY2VkOiF1fSx7dXNlU2V0dGVyOmZ1bmN0aW9uKCl7ZXQ9ITB9LHVzZVNpbXBsZTpmdW5jdGlvbigpe2V0PSExfX0pLHIoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohdSxzaGFtOiFjfSx7Y3JlYXRlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/Yih0KTphdChiKHQpLGUpfSxkZWZpbmVQcm9wZXJ0eTppdCxkZWZpbmVQcm9wZXJ0aWVzOmF0LGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpzdH0pLHIoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohdX0se2dldE93blByb3BlcnR5TmFtZXM6Y3R9KSxqKCksUihWLCJTeW1ib2wiKSxQW0RdPSEwfSxkYTVjOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuc3VwcG9ydHNQYXNzaXZlPXZvaWQgMCxuKCI3YTgyIik7dmFyIHI9ITE7ZS5zdXBwb3J0c1Bhc3NpdmU9cjt0cnl7dmFyIGk9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KGksInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtlLnN1cHBvcnRzUGFzc2l2ZT1yPSEwfX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0LXBhc3NpdmUiLG51bGwsaSl9Y2F0Y2goYSl7fX0sZGE4NDpmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpe3ZhciBuPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lk1hdGg9PU1hdGgmJnR9O3QuZXhwb3J0cz1uKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fG4oIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fG4oIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8bigib2JqZWN0Ij09dHlwZW9mIGUmJmUpfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfSkuY2FsbCh0aGlzLG4oImM4YmEiKSl9LGRiNmE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJiNjRiIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPW4oImRhNWMiKTtPYmplY3Qua2V5cyhyKS5mb3JFYWNoKChmdW5jdGlvbih0KXsiZGVmYXVsdCIhPT10JiYiX19lc01vZHVsZSIhPT10JiYodCBpbiBlJiZlW3RdPT09clt0XXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gclt0XX19KSl9KSk7dmFyIGk9bigiMzViZSIpO09iamVjdC5rZXlzKGkpLmZvckVhY2goKGZ1bmN0aW9uKHQpeyJkZWZhdWx0IiE9PXQmJiJfX2VzTW9kdWxlIiE9PXQmJih0IGluIGUmJmVbdF09PT1pW3RdfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpW3RdfX0pKX0pKTt2YXIgYT1uKCJjYTA2Iik7T2JqZWN0LmtleXMoYSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ImRlZmF1bHQiIT09dCYmIl9fZXNNb2R1bGUiIT09dCYmKHQgaW4gZSYmZVt0XT09PWFbdF18fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGFbdF19fSkpfSkpO3ZhciBvPW4oIjk4MDUiKTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKChmdW5jdGlvbih0KXsiZGVmYXVsdCIhPT10JiYiX19lc01vZHVsZSIhPT10JiYodCBpbiBlJiZlW3RdPT09b1t0XXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb1t0XX19KSl9KSk7dmFyIHM9bigiNDBkYSIpO09iamVjdC5rZXlzKHMpLmZvckVhY2goKGZ1bmN0aW9uKHQpeyJkZWZhdWx0IiE9PXQmJiJfX2VzTW9kdWxlIiE9PXQmJih0IGluIGUmJmVbdF09PT1zW3RdfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzW3RdfX0pKX0pKTt2YXIgYz1uKCIzYTdlIik7T2JqZWN0LmtleXMoYykuZm9yRWFjaCgoZnVuY3Rpb24odCl7ImRlZmF1bHQiIT09dCYmIl9fZXNNb2R1bGUiIT09dCYmKHQgaW4gZSYmZVt0XT09PWNbdF18fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNbdF19fSkpfSkpO3ZhciB1PW4oIjk4NGMiKTtPYmplY3Qua2V5cyh1KS5mb3JFYWNoKChmdW5jdGlvbih0KXsiZGVmYXVsdCIhPT10JiYiX19lc01vZHVsZSIhPT10JiYodCBpbiBlJiZlW3RdPT09dVt0XXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdVt0XX19KSl9KSl9LGRiOTA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0KXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBTeW1ib2wmJm51bGwhPXRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9dFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHQpfSxuKCJhNGQzIiksbigiZTAxYSIpLG4oImQzYjciKSxuKCJkMjhiIiksbigiM2NhMyIpLG4oImRkYjAiKSxuKCJhNjMwIil9LGRiYjQ6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjIzZTciKSxpPW4oIjgzYWIiKSxhPW4oIjU2ZWYiKSxvPW4oImZjNmEiKSxzPW4oIjA2Y2YiKSxjPW4oIjg0MTgiKTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxzaGFtOiFpfSx7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yczpmdW5jdGlvbih0KXt2YXIgZSxuLHI9byh0KSxpPXMuZix1PWEociksbD17fSxmPTA7d2hpbGUodS5sZW5ndGg+ZiluPWkocixlPXVbZisrXSksdm9pZCAwIT09biYmYyhsLGUsbik7cmV0dXJuIGx9fSl9LGRiY2U6ZnVuY3Rpb24odCxlLG4pe24oImQzYjciKSxuKCIzY2EzIiksbigiMTBkMSIpLG4oImRkYjAiKSxuKCI3YTgyIiksbigiZTQzOSIpO3ZhciByPW4oIjcwMzciKVsiZGVmYXVsdCJdO2Z1bmN0aW9uIGkodCl7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwLG49bmV3IFdlYWtNYXA7cmV0dXJuKGk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/bjplfSkodCl9dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoIWUmJnQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDtpZihudWxsPT09dHx8Im9iamVjdCIhPT1yKHQpJiYiZnVuY3Rpb24iIT09dHlwZW9mIHQpcmV0dXJue2RlZmF1bHQ6dH07dmFyIG49aShlKTtpZihuJiZuLmhhcyh0KSlyZXR1cm4gbi5nZXQodCk7dmFyIGE9e30sbz1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBzIGluIHQpaWYoImRlZmF1bHQiIT09cyYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscykpe3ZhciBjPW8/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHMpOm51bGw7YyYmKGMuZ2V0fHxjLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGEscyxjKTphW3NdPXRbc119cmV0dXJuIGFbImRlZmF1bHQiXT10LG4mJm4uc2V0KHQsYSksYX0sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzWyJkZWZhdWx0Il09dC5leHBvcnRzfSxkYzRhOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI1OWVkIiksaT1uKCI3MjM0Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dFtlXTtyZXR1cm4gaShuKT92b2lkIDA6cihuKX19LGRjYzM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJhZTkzIikuSXRlcmF0b3JQcm90b3R5cGUsaT1uKCI3YzczIiksYT1uKCI1YzZjIiksbz1uKCJkNDRlIikscz1uKCIzZjhjIiksYz1mdW5jdGlvbigpe3JldHVybiB0aGlzfTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sdSl7dmFyIGw9ZSsiIEl0ZXJhdG9yIjtyZXR1cm4gdC5wcm90b3R5cGU9aShyLHtuZXh0OmEoKyF1LG4pfSksbyh0LGwsITEsITApLHNbbF09Yyx0fX0sZGRhZDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKSxuLmQoZSwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksbi5kKGUsImEiLChmdW5jdGlvbigpe30pKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10LiRjcmVhdGVFbGVtZW50LG49dC5fc2VsZi5fY3x8ZTtyZXR1cm4gbigidW5pLXNjcm9sbC12aWV3Iix0Ll9nKHt9LHQuJGxpc3RlbmVycyksW24oImRpdiIse3JlZjoid3JhcCIsc3RhdGljQ2xhc3M6InVuaS1zY3JvbGwtdmlldyJ9LFtuKCJkaXYiLHtyZWY6Im1haW4iLHN0YXRpY0NsYXNzOiJ1bmktc2Nyb2xsLXZpZXciLHN0eWxlOnsib3ZlcmZsb3cteCI6dC5zY3JvbGxYPyJhdXRvIjoiaGlkZGVuIiwib3ZlcmZsb3cteSI6dC5zY3JvbGxZPyJhdXRvIjoiaGlkZGVuIn19LFtuKCJkaXYiLHtyZWY6ImNvbnRlbnQiLHN0YXRpY0NsYXNzOiJ1bmktc2Nyb2xsLXZpZXctY29udGVudCJ9LFt0LnJlZnJlc2hlckVuYWJsZWQ/bigiZGl2Iix7cmVmOiJyZWZyZXNoZXJpbm5lciIsc3RhdGljQ2xhc3M6InVuaS1zY3JvbGwtdmlldy1yZWZyZXNoZXIiLHN0eWxlOnsiYmFja2dyb3VuZC1jb2xvciI6dC5yZWZyZXNoZXJCYWNrZ3JvdW5kLGhlaWdodDp0LnJlZnJlc2hlckhlaWdodCsicHgifX0sWyJub25lIiE9PXQucmVmcmVzaGVyRGVmYXVsdFN0eWxlP24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktc2Nyb2xsLXZpZXctcmVmcmVzaCJ9LFtuKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXNjcm9sbC12aWV3LXJlZnJlc2gtaW5uZXIifSxbInB1bGxpbmciPT10LnJlZnJlc2hTdGF0ZT9uKCJzdmciLHtrZXk6InJlZnJlc2hfX2ljb24iLHN0YXRpY0NsYXNzOiJ1bmktc2Nyb2xsLXZpZXctcmVmcmVzaF9faWNvbiIsc3R5bGU6e3RyYW5zZm9ybToicm90YXRlKCIrdC5yZWZyZXNoUm90YXRlKyJkZWcpIn0sYXR0cnM6e2ZpbGw6IiMyQkQwMDkiLHdpZHRoOiIyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0In19LFtuKCJwYXRoIix7YXR0cnM6e2Q6Ik0xNy42NSA2LjM1QzE2LjIgNC45IDE0LjIxIDQgMTIgNGMtNC40MiAwLTcuOTkgMy41OC03Ljk5IDhzMy41NyA4IDcuOTkgOGMzLjczIDAgNi44NC0yLjU1IDcuNzMtNmgtMi4wOGMtLjgyIDIuMzMtMy4wNCA0LTUuNjUgNC0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02YzEuNjYgMCAzLjE0LjY5IDQuMjIgMS43OEwxMyAxMWg3VjRsLTIuMzUgMi4zNXoifX0pLG4oInBhdGgiLHthdHRyczp7ZDoiTTAgMGgyNHYyNEgweiIsZmlsbDoibm9uZSJ9fSldKTp0Ll9lKCksInJlZnJlc2hpbmciPT10LnJlZnJlc2hTdGF0ZT9uKCJzdmciLHtrZXk6InJlZnJlc2hfX3NwaW5uZXIiLHN0YXRpY0NsYXNzOiJ1bmktc2Nyb2xsLXZpZXctcmVmcmVzaF9fc3Bpbm5lciIsYXR0cnM6e3dpZHRoOiIyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMjUgMjUgNTAgNTAifX0sW24oImNpcmNsZSIse3N0YXRpY1N0eWxlOntjb2xvcjoiIzJiZDAwOSJ9LGF0dHJzOntjeDoiNTAiLGN5OiI1MCIscjoiMjAiLGZpbGw6Im5vbmUiLCJzdHJva2Utd2lkdGgiOiIzIn19KV0pOnQuX2UoKV0pXSk6dC5fZSgpLCJub25lIj09dC5yZWZyZXNoZXJEZWZhdWx0U3R5bGU/dC5fdCgicmVmcmVzaGVyIik6dC5fZSgpXSwyKTp0Ll9lKCksdC5fdCgiZGVmYXVsdCIpXSwyKV0pXSldKX0saT1bXX0sZGRiMDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpLGk9bigiZmRiYyIpLGE9bigiNzg1YSIpLG89bigiZTI2MCIpLHM9bigiOTExMiIpLGM9bigiYjYyMiIpLHU9YygiaXRlcmF0b3IiKSxsPWMoInRvU3RyaW5nVGFnIiksZj1vLnZhbHVlcyxkPWZ1bmN0aW9uKHQsZSl7aWYodCl7aWYodFt1XSE9PWYpdHJ5e3ModCx1LGYpfWNhdGNoKHIpe3RbdV09Zn1pZih0W2xdfHxzKHQsbCxlKSxpW2VdKWZvcih2YXIgbiBpbiBvKWlmKHRbbl0hPT1vW25dKXRyeXtzKHQsbixvW25dKX1jYXRjaChyKXt0W25dPW9bbl19fX07Zm9yKHZhciBoIGluIGkpZChyW2hdJiZyW2hdLnByb3RvdHlwZSxoKTtkKGEsIkRPTVRva2VuTGlzdCIpfSxkZjc1OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJjYTg0IiksaT1uKCI3ODM5Iik7dC5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXtyZXR1cm4gcih0LGkpfX0sZGZiOTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMDdmYSIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPTAsaT1yKGUpLGE9bmV3IHQoaSk7d2hpbGUoaT5uKWFbbl09ZVtuKytdO3JldHVybiBhfX0sZTAxYTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oIjgzYWIiKSxhPW4oImRhODQiKSxvPW4oImUzMzAiKSxzPW4oIjFhMmQiKSxjPW4oIjE2MjYiKSx1PW4oIjNhOWIiKSxsPW4oIjU3N2UiKSxmPW4oIjliZjIiKS5mLGQ9bigiZTg5MyIpLGg9YS5TeW1ib2wscD1oJiZoLnByb3RvdHlwZTtpZihpJiZjKGgpJiYoISgiZGVzY3JpcHRpb24iaW4gcCl8fHZvaWQgMCE9PWgoKS5kZXNjcmlwdGlvbikpe3ZhciB2PXt9LGc9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPDF8fHZvaWQgMD09PWFyZ3VtZW50c1swXT92b2lkIDA6bChhcmd1bWVudHNbMF0pLGU9dShwLHRoaXMpP25ldyBoKHQpOnZvaWQgMD09PXQ/aCgpOmgodCk7cmV0dXJuIiI9PT10JiYodltlXT0hMCksZX07ZChnLGgpLGcucHJvdG90eXBlPXAscC5jb25zdHJ1Y3Rvcj1nO3ZhciBtPSJTeW1ib2wodGVzdCkiPT1TdHJpbmcoaCgidGVzdCIpKSxiPW8ocC52YWx1ZU9mKSx5PW8ocC50b1N0cmluZyksXz0vXlN5bWJvbFwoKC4qKVwpW14pXSskLyx3PW8oIiIucmVwbGFjZSkseD1vKCIiLnNsaWNlKTtmKHAsImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciB0PWIodGhpcyk7aWYocyh2LHQpKXJldHVybiIiO3ZhciBlPXkodCksbj1tP3goZSw3LC0xKTp3KGUsXywiJDEiKTtyZXR1cm4iIj09PW4/dm9pZCAwOm59fSkscih7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDohMH0se1N5bWJvbDpnfSl9fSxlMDRjOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oImY1MjIiKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LGUwNjU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjQyOGYiKSxpPW4oIjFhMmQiKSxhPW4oImU1MzgiKSxvPW4oIjliZjIiKS5mO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1yLlN5bWJvbHx8KHIuU3ltYm9sPXt9KTtpKGUsdCl8fG8oZSx0LHt2YWx1ZTphLmYodCl9KX19LGUwYjU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe2UmJihuW3RdPU1hdGgucm91bmQoZSkpfX1uKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZHJhd0NhbnZhcz1lLmNhbnZhc1RvVGVtcEZpbGVQYXRoPWUuY2FudmFzUHV0SW1hZ2VEYXRhPWUuY2FudmFzR2V0SW1hZ2VEYXRhPXZvaWQgMCxuKCJhOWUzIiksbigiYWNlNCIpLG4oImQzYjciKSxuKCI4YTU5IiksbigiOTA3YSIpLG4oIjlhOGMiKSxuKCJhOTc1IiksbigiNzM1ZSIpLG4oImMxYWMiKSxuKCJkMTM5IiksbigiM2E3YiIpLG4oIjk4NmEiKSxuKCIxZDAyIiksbigiZDVkNiIpLG4oIjgyZjgiKSxuKCJlOTFmIiksbigiNjBiZCIpLG4oIjVmOTYiKSxuKCIzMjgwIiksbigiM2ZjYyIpLG4oImNhOTEiKSxuKCIyNWExIiksbigiY2QyNiIpLG4oIjNjNWQiKSxuKCIyOTU0IiksbigiNjQ5ZSIpLG4oIjIxOWMiKSxuKCJiMzlhIiksbigiNzJmNyIpO3ZhciBpPXtjYW52YXNJZDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LHg6e3R5cGU6TnVtYmVyLHJlcXVpcmVkOiEwLHZhbGlkYXRvcjpyKCJ4Iil9LHk6e3R5cGU6TnVtYmVyLHJlcXVpcmVkOiEwLHZhbGlkYXRvcjpyKCJ5Iil9LHdpZHRoOnt0eXBlOk51bWJlcixyZXF1aXJlZDohMCx2YWxpZGF0b3I6cigid2lkdGgiKX0saGVpZ2h0Ont0eXBlOk51bWJlcixyZXF1aXJlZDohMCx2YWxpZGF0b3I6cigiaGVpZ2h0Iil9fTtlLmNhbnZhc0dldEltYWdlRGF0YT1pO3ZhciBhPXtjYW52YXNJZDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LGRhdGE6e3R5cGU6VWludDhDbGFtcGVkQXJyYXkscmVxdWlyZWQ6ITB9LHg6e3R5cGU6TnVtYmVyLHJlcXVpcmVkOiEwLHZhbGlkYXRvcjpyKCJ4Iil9LHk6e3R5cGU6TnVtYmVyLHJlcXVpcmVkOiEwLHZhbGlkYXRvcjpyKCJ5Iil9LHdpZHRoOnt0eXBlOk51bWJlcixyZXF1aXJlZDohMCx2YWxpZGF0b3I6cigid2lkdGgiKX0saGVpZ2h0Ont0eXBlOk51bWJlcix2YWxpZGF0b3I6cigiaGVpZ2h0Iil9fTtlLmNhbnZhc1B1dEltYWdlRGF0YT1hO3ZhciBvPXtQTkc6InBuZyIsSlBHOiJqcGciLEpQRUc6ImpwZyJ9LHM9e3g6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MCx2YWxpZGF0b3I6cigieCIpfSx5Ont0eXBlOk51bWJlcixkZWZhdWx0OjAsdmFsaWRhdG9yOnIoInkiKX0sd2lkdGg6e3R5cGU6TnVtYmVyLHZhbGlkYXRvcjpyKCJ3aWR0aCIpfSxoZWlnaHQ6e3R5cGU6TnVtYmVyLHZhbGlkYXRvcjpyKCJoZWlnaHQiKX0sZGVzdFdpZHRoOnt0eXBlOk51bWJlcix2YWxpZGF0b3I6cigiZGVzdFdpZHRoIil9LGRlc3RIZWlnaHQ6e3R5cGU6TnVtYmVyLHZhbGlkYXRvcjpyKCJkZXN0SGVpZ2h0Iil9LGNhbnZhc0lkOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH0sZmlsZVR5cGU6e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpe3Q9KHR8fCIiKS50b1VwcGVyQ2FzZSgpLGUuZmlsZVR5cGU9dCBpbiBvP29bdF06by5QTkd9fSxxdWFsaXR5Ont0eXBlOk51bWJlcix2YWxpZGF0b3I6ZnVuY3Rpb24odCxlKXtlLnF1YWxpdHk9dD4wJiZ0PDE/dDoxfX19O2UuY2FudmFzVG9UZW1wRmlsZVBhdGg9czt2YXIgYz17Y2FudmFzSWQ6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfSxhY3Rpb25zOnt0eXBlOkFycmF5LHJlcXVpcmVkOiEwfSxyZXNlcnZlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX19O2UuZHJhd0NhbnZhcz1jfSxlMTQzOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpLGZ1bmN0aW9uKHQsbil7Ci8qIQogKiBWdWUuanMgdjIuNi4xMQogKiAoYykgMjAxNC0yMDIyIEV2YW4gWW91CiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovCnZhciByPU9iamVjdC5mcmVlemUoe30pO2Z1bmN0aW9uIGkodCl7cmV0dXJuIHZvaWQgMD09PXR8fG51bGw9PT10fWZ1bmN0aW9uIGEodCl7cmV0dXJuIHZvaWQgMCE9PXQmJm51bGwhPT10fWZ1bmN0aW9uIG8odCl7cmV0dXJuITA9PT10fWZ1bmN0aW9uIHModCl7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgdHx8Im51bWJlciI9PT10eXBlb2YgdHx8InN5bWJvbCI9PT10eXBlb2YgdHx8ImJvb2xlYW4iPT09dHlwZW9mIHR9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gbnVsbCE9PXQmJiJvYmplY3QiPT09dHlwZW9mIHR9dmFyIHU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBsKHQpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09dS5jYWxsKHQpfWZ1bmN0aW9uIGYodCl7cmV0dXJuIltvYmplY3QgUmVnRXhwXSI9PT11LmNhbGwodCl9ZnVuY3Rpb24gZCh0KXt2YXIgZT1wYXJzZUZsb2F0KFN0cmluZyh0KSk7cmV0dXJuIGU+PTAmJk1hdGguZmxvb3IoZSk9PT1lJiZpc0Zpbml0ZSh0KX1mdW5jdGlvbiBoKHQpe3JldHVybiBhKHQpJiYiZnVuY3Rpb24iPT09dHlwZW9mIHQudGhlbiYmImZ1bmN0aW9uIj09PXR5cGVvZiB0LmNhdGNofWZ1bmN0aW9uIHAodCl7cmV0dXJuIG51bGw9PXQ/IiI6QXJyYXkuaXNBcnJheSh0KXx8bCh0KSYmdC50b1N0cmluZz09PXU/SlNPTi5zdHJpbmdpZnkodCxudWxsLDIpOlN0cmluZyh0KX1mdW5jdGlvbiB2KHQpe3ZhciBlPXBhcnNlRmxvYXQodCk7cmV0dXJuIGlzTmFOKGUpP3Q6ZX1mdW5jdGlvbiBnKHQsZSl7Zm9yKHZhciBuPU9iamVjdC5jcmVhdGUobnVsbCkscj10LnNwbGl0KCIsIiksaT0wO2k8ci5sZW5ndGg7aSsrKW5bcltpXV09ITA7cmV0dXJuIGU/ZnVuY3Rpb24odCl7cmV0dXJuIG5bdC50b0xvd2VyQ2FzZSgpXX06ZnVuY3Rpb24odCl7cmV0dXJuIG5bdF19fWcoInNsb3QsY29tcG9uZW50IiwhMCk7dmFyIG09Zygia2V5LHJlZixzbG90LHNsb3Qtc2NvcGUsaXMiKTtmdW5jdGlvbiBiKHQsZSl7aWYodC5sZW5ndGgpe3ZhciBuPXQuaW5kZXhPZihlKTtpZihuPi0xKXJldHVybiB0LnNwbGljZShuLDEpfX12YXIgeT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIF8odCxlKXtyZXR1cm4geS5jYWxsKHQsZSl9ZnVuY3Rpb24gdyh0KXt2YXIgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBmdW5jdGlvbihuKXt2YXIgcj1lW25dO3JldHVybiByfHwoZVtuXT10KG4pKX19dmFyIHg9Ly0oXHcpL2csUz13KChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKHgsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/ZS50b1VwcGVyQ2FzZSgpOiIifSkpfSkpLFQ9dygoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKX0pKSxDPS9cQihbQS1aXSkvZyxrPXcoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoQywiLSQxIikudG9Mb3dlckNhc2UoKX0pKTt2YXIgTz1GdW5jdGlvbi5wcm90b3R5cGUuYmluZD9mdW5jdGlvbih0LGUpe3JldHVybiB0LmJpbmQoZSl9OmZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbihuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoO3JldHVybiByP3I+MT90LmFwcGx5KGUsYXJndW1lbnRzKTp0LmNhbGwoZSxuKTp0LmNhbGwoZSl9cmV0dXJuIG4uX2xlbmd0aD10Lmxlbmd0aCxufTtmdW5jdGlvbiBFKHQsZSl7ZT1lfHwwO3ZhciBuPXQubGVuZ3RoLWUscj1uZXcgQXJyYXkobik7d2hpbGUobi0tKXJbbl09dFtuK2VdO3JldHVybiByfWZ1bmN0aW9uIEkodCxlKXtmb3IodmFyIG4gaW4gZSl0W25dPWVbbl07cmV0dXJuIHR9ZnVuY3Rpb24gUCh0KXtmb3IodmFyIGU9e30sbj0wO248dC5sZW5ndGg7bisrKXRbbl0mJkkoZSx0W25dKTtyZXR1cm4gZX1mdW5jdGlvbiBNKHQsZSxuKXt9dmFyIEE9ZnVuY3Rpb24odCxlLG4pe3JldHVybiExfSwkPWZ1bmN0aW9uKHQpe3JldHVybiB0fTtmdW5jdGlvbiBMKHQsZSl7aWYodD09PWUpcmV0dXJuITA7dmFyIG49Yyh0KSxyPWMoZSk7aWYoIW58fCFyKXJldHVybiFuJiYhciYmU3RyaW5nKHQpPT09U3RyaW5nKGUpO3RyeXt2YXIgaT1BcnJheS5pc0FycmF5KHQpLGE9QXJyYXkuaXNBcnJheShlKTtpZihpJiZhKXJldHVybiB0Lmxlbmd0aD09PWUubGVuZ3RoJiZ0LmV2ZXJ5KChmdW5jdGlvbih0LG4pe3JldHVybiBMKHQsZVtuXSl9KSk7aWYodCBpbnN0YW5jZW9mIERhdGUmJmUgaW5zdGFuY2VvZiBEYXRlKXJldHVybiB0LmdldFRpbWUoKT09PWUuZ2V0VGltZSgpO2lmKGl8fGEpcmV0dXJuITE7dmFyIG89T2JqZWN0LmtleXModCkscz1PYmplY3Qua2V5cyhlKTtyZXR1cm4gby5sZW5ndGg9PT1zLmxlbmd0aCYmby5ldmVyeSgoZnVuY3Rpb24obil7cmV0dXJuIEwodFtuXSxlW25dKX0pKX1jYXRjaCh1KXtyZXR1cm4hMX19ZnVuY3Rpb24gaih0LGUpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKWlmKEwodFtuXSxlKSlyZXR1cm4gbjtyZXR1cm4tMX1mdW5jdGlvbiBSKHQpe3ZhciBlPSExO3JldHVybiBmdW5jdGlvbigpe2V8fChlPSEwLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19dmFyIE49WyJjb21wb25lbnQiLCJkaXJlY3RpdmUiLCJmaWx0ZXIiXSxCPVsiYmVmb3JlQ3JlYXRlIiwiY3JlYXRlZCIsImJlZm9yZU1vdW50IiwibW91bnRlZCIsImJlZm9yZVVwZGF0ZSIsInVwZGF0ZWQiLCJiZWZvcmVEZXN0cm95IiwiZGVzdHJveWVkIiwiYWN0aXZhdGVkIiwiZGVhY3RpdmF0ZWQiLCJlcnJvckNhcHR1cmVkIiwic2VydmVyUHJlZmV0Y2giXSxEPXtvcHRpb25NZXJnZVN0cmF0ZWdpZXM6T2JqZWN0LmNyZWF0ZShudWxsKSxzaWxlbnQ6ITEscHJvZHVjdGlvblRpcDohMSxkZXZ0b29sczohMSxwZXJmb3JtYW5jZTohMSxlcnJvckhhbmRsZXI6bnVsbCx3YXJuSGFuZGxlcjpudWxsLGlnbm9yZWRFbGVtZW50czpbXSxrZXlDb2RlczpPYmplY3QuY3JlYXRlKG51bGwpLGlzUmVzZXJ2ZWRUYWc6QSxpc1Jlc2VydmVkQXR0cjpBLGlzVW5rbm93bkVsZW1lbnQ6QSxnZXRUYWdOYW1lc3BhY2U6TSxwYXJzZVBsYXRmb3JtVGFnTmFtZTokLG11c3RVc2VQcm9wOkEsYXN5bmM6ITAsX2xpZmVjeWNsZUhvb2tzOkJ9LEY9L2EtekEtWlx1MDBCN1x1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDM3RFx1MDM3Ri1cdTFGRkZcdTIwMEMtXHUyMDBEXHUyMDNGLVx1MjA0MFx1MjA3MC1cdTIxOEZcdTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkZELztmdW5jdGlvbiBXKHQpe3ZhciBlPSh0KyIiKS5jaGFyQ29kZUF0KDApO3JldHVybiAzNj09PWV8fDk1PT09ZX1mdW5jdGlvbiBIKHQsZSxuLHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohIXIsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9dmFyIFY9bmV3IFJlZ0V4cCgiW14iK0Yuc291cmNlKyIuJF9cXGRdIik7dmFyIFUscT0iX19wcm90b19fImlue30sej0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3csWT0idW5kZWZpbmVkIiE9PXR5cGVvZiBXWEVudmlyb25tZW50JiYhIVdYRW52aXJvbm1lbnQucGxhdGZvcm0sWD1ZJiZXWEVudmlyb25tZW50LnBsYXRmb3JtLnRvTG93ZXJDYXNlKCksRz16JiZ3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLFE9RyYmL21zaWV8dHJpZGVudC8udGVzdChHKSxKPUcmJkcuaW5kZXhPZigibXNpZSA5LjAiKT4wLEs9RyYmRy5pbmRleE9mKCJlZGdlLyIpPjAsWj0oRyYmRy5pbmRleE9mKCJhbmRyb2lkIiksRyYmL2lwaG9uZXxpcGFkfGlwb2R8aW9zLy50ZXN0KEcpfHwiaW9zIj09PVgpLHR0PShHJiYvY2hyb21lXC9cZCsvLnRlc3QoRyksRyYmL3BoYW50b21qcy8udGVzdChHKSxHJiZHLm1hdGNoKC9maXJlZm94XC8oXGQrKS8pKSxldD17fS53YXRjaCxudD0hMTtpZih6KXRyeXt2YXIgcnQ9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KHJ0LCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7bnQ9ITB9fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QtcGFzc2l2ZSIsbnVsbCxydCl9Y2F0Y2goVWkpe312YXIgaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09VSYmKFU9IXomJiFZJiYidW5kZWZpbmVkIiE9PXR5cGVvZiB0JiYodFsicHJvY2VzcyJdJiYic2VydmVyIj09PXRbInByb2Nlc3MiXS5lbnYuVlVFX0VOVikpLFV9LGF0PXomJndpbmRvdy5fX1ZVRV9ERVZUT09MU19HTE9CQUxfSE9PS19fO2Z1bmN0aW9uIG90KHQpe3JldHVybiJmdW5jdGlvbiI9PT10eXBlb2YgdCYmL25hdGl2ZSBjb2RlLy50ZXN0KHQudG9TdHJpbmcoKSl9dmFyIHN0LGN0PSJ1bmRlZmluZWQiIT09dHlwZW9mIFN5bWJvbCYmb3QoU3ltYm9sKSYmInVuZGVmaW5lZCIhPT10eXBlb2YgUmVmbGVjdCYmb3QoUmVmbGVjdC5vd25LZXlzKTtzdD0idW5kZWZpbmVkIiE9PXR5cGVvZiBTZXQmJm90KFNldCk/U2V0OmZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuc2V0PU9iamVjdC5jcmVhdGUobnVsbCl9cmV0dXJuIHQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4hMD09PXRoaXMuc2V0W3RdfSx0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dGhpcy5zZXRbdF09ITB9LHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zZXQ9T2JqZWN0LmNyZWF0ZShudWxsKX0sdH0oKTt2YXIgdXQ9TSxsdD0wLGZ0PWZ1bmN0aW9uKCl7dGhpcy5pZD1sdCsrLHRoaXMuc3Vicz1bXX07ZnVuY3Rpb24gZHQodCl7ZnQuU2hhcmVkT2JqZWN0LnRhcmdldFN0YWNrLnB1c2godCksZnQuU2hhcmVkT2JqZWN0LnRhcmdldD10LGZ0LnRhcmdldD10fWZ1bmN0aW9uIGh0KCl7ZnQuU2hhcmVkT2JqZWN0LnRhcmdldFN0YWNrLnBvcCgpLGZ0LlNoYXJlZE9iamVjdC50YXJnZXQ9ZnQuU2hhcmVkT2JqZWN0LnRhcmdldFN0YWNrW2Z0LlNoYXJlZE9iamVjdC50YXJnZXRTdGFjay5sZW5ndGgtMV0sZnQudGFyZ2V0PWZ0LlNoYXJlZE9iamVjdC50YXJnZXR9ZnQucHJvdG90eXBlLmFkZFN1Yj1mdW5jdGlvbih0KXt0aGlzLnN1YnMucHVzaCh0KX0sZnQucHJvdG90eXBlLnJlbW92ZVN1Yj1mdW5jdGlvbih0KXtiKHRoaXMuc3Vicyx0KX0sZnQucHJvdG90eXBlLmRlcGVuZD1mdW5jdGlvbigpe2Z0LlNoYXJlZE9iamVjdC50YXJnZXQmJmZ0LlNoYXJlZE9iamVjdC50YXJnZXQuYWRkRGVwKHRoaXMpfSxmdC5wcm90b3R5cGUubm90aWZ5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zdWJzLnNsaWNlKCk7Zm9yKHZhciBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXRbZV0udXBkYXRlKCl9LGZ0LlNoYXJlZE9iamVjdD17fSxmdC5TaGFyZWRPYmplY3QudGFyZ2V0PW51bGwsZnQuU2hhcmVkT2JqZWN0LnRhcmdldFN0YWNrPVtdO3ZhciBwdD1mdW5jdGlvbih0LGUsbixyLGksYSxvLHMpe3RoaXMudGFnPXQsdGhpcy5kYXRhPWUsdGhpcy5jaGlsZHJlbj1uLHRoaXMudGV4dD1yLHRoaXMuZWxtPWksdGhpcy5ucz12b2lkIDAsdGhpcy5jb250ZXh0PWEsdGhpcy5mbkNvbnRleHQ9dm9pZCAwLHRoaXMuZm5PcHRpb25zPXZvaWQgMCx0aGlzLmZuU2NvcGVJZD12b2lkIDAsdGhpcy5rZXk9ZSYmZS5rZXksdGhpcy5jb21wb25lbnRPcHRpb25zPW8sdGhpcy5jb21wb25lbnRJbnN0YW5jZT12b2lkIDAsdGhpcy5wYXJlbnQ9dm9pZCAwLHRoaXMucmF3PSExLHRoaXMuaXNTdGF0aWM9ITEsdGhpcy5pc1Jvb3RJbnNlcnQ9ITAsdGhpcy5pc0NvbW1lbnQ9ITEsdGhpcy5pc0Nsb25lZD0hMSx0aGlzLmlzT25jZT0hMSx0aGlzLmFzeW5jRmFjdG9yeT1zLHRoaXMuYXN5bmNNZXRhPXZvaWQgMCx0aGlzLmlzQXN5bmNQbGFjZWhvbGRlcj0hMX0sdnQ9e2NoaWxkOntjb25maWd1cmFibGU6ITB9fTt2dC5jaGlsZC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb21wb25lbnRJbnN0YW5jZX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocHQucHJvdG90eXBlLHZ0KTt2YXIgZ3Q9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9IiIpO3ZhciBlPW5ldyBwdDtyZXR1cm4gZS50ZXh0PXQsZS5pc0NvbW1lbnQ9ITAsZX07ZnVuY3Rpb24gbXQodCl7cmV0dXJuIG5ldyBwdCh2b2lkIDAsdm9pZCAwLHZvaWQgMCxTdHJpbmcodCkpfWZ1bmN0aW9uIGJ0KHQpe3ZhciBlPW5ldyBwdCh0LnRhZyx0LmRhdGEsdC5jaGlsZHJlbiYmdC5jaGlsZHJlbi5zbGljZSgpLHQudGV4dCx0LmVsbSx0LmNvbnRleHQsdC5jb21wb25lbnRPcHRpb25zLHQuYXN5bmNGYWN0b3J5KTtyZXR1cm4gZS5ucz10Lm5zLGUuaXNTdGF0aWM9dC5pc1N0YXRpYyxlLmtleT10LmtleSxlLmlzQ29tbWVudD10LmlzQ29tbWVudCxlLmZuQ29udGV4dD10LmZuQ29udGV4dCxlLmZuT3B0aW9ucz10LmZuT3B0aW9ucyxlLmZuU2NvcGVJZD10LmZuU2NvcGVJZCxlLmFzeW5jTWV0YT10LmFzeW5jTWV0YSxlLmlzQ2xvbmVkPSEwLGV9dmFyIHl0PUFycmF5LnByb3RvdHlwZSxfdD1PYmplY3QuY3JlYXRlKHl0KTtbInB1c2giLCJwb3AiLCJzaGlmdCIsInVuc2hpZnQiLCJzcGxpY2UiLCJzb3J0IiwicmV2ZXJzZSJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXl0W3RdO0goX3QsdCwoZnVuY3Rpb24oKXt2YXIgbj1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7d2hpbGUoci0tKW5bcl09YXJndW1lbnRzW3JdO3ZhciBpLGE9ZS5hcHBseSh0aGlzLG4pLG89dGhpcy5fX29iX187c3dpdGNoKHQpe2Nhc2UicHVzaCI6Y2FzZSJ1bnNoaWZ0IjppPW47YnJlYWs7Y2FzZSJzcGxpY2UiOmk9bi5zbGljZSgyKTticmVha31yZXR1cm4gaSYmby5vYnNlcnZlQXJyYXkoaSksby5kZXAubm90aWZ5KCksYX0pKX0pKTt2YXIgd3Q9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoX3QpLHh0PSEwO2Z1bmN0aW9uIFN0KHQpe3h0PXR9dmFyIFR0PWZ1bmN0aW9uKHQpe3RoaXMudmFsdWU9dCx0aGlzLmRlcD1uZXcgZnQsdGhpcy52bUNvdW50PTAsSCh0LCJfX29iX18iLHRoaXMpLEFycmF5LmlzQXJyYXkodCk/KHE/ZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfSh0LF90KTpmdW5jdGlvbih0LGUsbil7Zm9yKHZhciByPTAsaT1uLmxlbmd0aDtyPGk7cisrKXt2YXIgYT1uW3JdO0godCxhLGVbYV0pfX0odCxfdCx3dCksdGhpcy5vYnNlcnZlQXJyYXkodCkpOnRoaXMud2Fsayh0KX07ZnVuY3Rpb24gQ3QodCxlKXt2YXIgbjtpZihjKHQpJiYhKHQgaW5zdGFuY2VvZiBwdCkpcmV0dXJuIF8odCwiX19vYl9fIikmJnQuX19vYl9fIGluc3RhbmNlb2YgVHQ/bj10Ll9fb2JfXzp4dCYmIWl0KCkmJihBcnJheS5pc0FycmF5KHQpfHxsKHQpKSYmT2JqZWN0LmlzRXh0ZW5zaWJsZSh0KSYmIXQuX2lzVnVlJiYobj1uZXcgVHQodCkpLGUmJm4mJm4udm1Db3VudCsrLG59ZnVuY3Rpb24ga3QodCxlLG4scixpKXt2YXIgYT1uZXcgZnQsbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSk7aWYoIW98fCExIT09by5jb25maWd1cmFibGUpe3ZhciBzPW8mJm8uZ2V0LGM9byYmby5zZXQ7cyYmIWN8fDIhPT1hcmd1bWVudHMubGVuZ3RofHwobj10W2VdKTt2YXIgdT0haSYmQ3Qobik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIGU9cz9zLmNhbGwodCk6bjtyZXR1cm4gZnQuU2hhcmVkT2JqZWN0LnRhcmdldCYmKGEuZGVwZW5kKCksdSYmKHUuZGVwLmRlcGVuZCgpLEFycmF5LmlzQXJyYXkoZSkmJkl0KGUpKSksZX0sc2V0OmZ1bmN0aW9uKGUpe3ZhciByPXM/cy5jYWxsKHQpOm47ZT09PXJ8fGUhPT1lJiZyIT09cnx8cyYmIWN8fChjP2MuY2FsbCh0LGUpOm49ZSx1PSFpJiZDdChlKSxhLm5vdGlmeSgpKX19KX19ZnVuY3Rpb24gT3QodCxlLG4pe2lmKEFycmF5LmlzQXJyYXkodCkmJmQoZSkpcmV0dXJuIHQubGVuZ3RoPU1hdGgubWF4KHQubGVuZ3RoLGUpLHQuc3BsaWNlKGUsMSxuKSxuO2lmKGUgaW4gdCYmIShlIGluIE9iamVjdC5wcm90b3R5cGUpKXJldHVybiB0W2VdPW4sbjt2YXIgcj10Ll9fb2JfXztyZXR1cm4gdC5faXNWdWV8fHImJnIudm1Db3VudD9uOnI/KGt0KHIudmFsdWUsZSxuKSxyLmRlcC5ub3RpZnkoKSxuKToodFtlXT1uLG4pfWZ1bmN0aW9uIEV0KHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSYmZChlKSl0LnNwbGljZShlLDEpO2Vsc2V7dmFyIG49dC5fX29iX187dC5faXNWdWV8fG4mJm4udm1Db3VudHx8Xyh0LGUpJiYoZGVsZXRlIHRbZV0sbiYmbi5kZXAubm90aWZ5KCkpfX1mdW5jdGlvbiBJdCh0KXtmb3IodmFyIGU9dm9pZCAwLG49MCxyPXQubGVuZ3RoO248cjtuKyspZT10W25dLGUmJmUuX19vYl9fJiZlLl9fb2JfXy5kZXAuZGVwZW5kKCksQXJyYXkuaXNBcnJheShlKSYmSXQoZSl9VHQucHJvdG90eXBlLndhbGs9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPU9iamVjdC5rZXlzKHQpLG49MDtuPGUubGVuZ3RoO24rKylrdCh0LGVbbl0pfSxUdC5wcm90b3R5cGUub2JzZXJ2ZUFycmF5PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKylDdCh0W2VdKX07dmFyIFB0PUQub3B0aW9uTWVyZ2VTdHJhdGVnaWVzO2Z1bmN0aW9uIE10KHQsZSl7aWYoIWUpcmV0dXJuIHQ7Zm9yKHZhciBuLHIsaSxhPWN0P1JlZmxlY3Qub3duS2V5cyhlKTpPYmplY3Qua2V5cyhlKSxvPTA7bzxhLmxlbmd0aDtvKyspbj1hW29dLCJfX29iX18iIT09biYmKHI9dFtuXSxpPWVbbl0sXyh0LG4pP3IhPT1pJiZsKHIpJiZsKGkpJiZNdChyLGkpOk90KHQsbixpKSk7cmV0dXJuIHR9ZnVuY3Rpb24gQXQodCxlLG4pe3JldHVybiBuP2Z1bmN0aW9uKCl7dmFyIHI9ImZ1bmN0aW9uIj09PXR5cGVvZiBlP2UuY2FsbChuLG4pOmUsaT0iZnVuY3Rpb24iPT09dHlwZW9mIHQ/dC5jYWxsKG4sbik6dDtyZXR1cm4gcj9NdChyLGkpOml9OmU/dD9mdW5jdGlvbigpe3JldHVybiBNdCgiZnVuY3Rpb24iPT09dHlwZW9mIGU/ZS5jYWxsKHRoaXMsdGhpcyk6ZSwiZnVuY3Rpb24iPT09dHlwZW9mIHQ/dC5jYWxsKHRoaXMsdGhpcyk6dCl9OmU6dH1mdW5jdGlvbiAkdCh0LGUpe3ZhciBuPWU/dD90LmNvbmNhdChlKTpBcnJheS5pc0FycmF5KGUpP2U6W2VdOnQ7cmV0dXJuIG4/ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MDtuPHQubGVuZ3RoO24rKyktMT09PWUuaW5kZXhPZih0W25dKSYmZS5wdXNoKHRbbl0pO3JldHVybiBlfShuKTpufWZ1bmN0aW9uIEx0KHQsZSxuLHIpe3ZhciBpPU9iamVjdC5jcmVhdGUodHx8bnVsbCk7cmV0dXJuIGU/SShpLGUpOml9UHQuZGF0YT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG4/QXQodCxlLG4pOmUmJiJmdW5jdGlvbiIhPT10eXBlb2YgZT90OkF0KHQsZSl9LEIuZm9yRWFjaCgoZnVuY3Rpb24odCl7UHRbdF09JHR9KSksTi5mb3JFYWNoKChmdW5jdGlvbih0KXtQdFt0KyJzIl09THR9KSksUHQud2F0Y2g9ZnVuY3Rpb24odCxlLG4scil7aWYodD09PWV0JiYodD12b2lkIDApLGU9PT1ldCYmKGU9dm9pZCAwKSwhZSlyZXR1cm4gT2JqZWN0LmNyZWF0ZSh0fHxudWxsKTtpZighdClyZXR1cm4gZTt2YXIgaT17fTtmb3IodmFyIGEgaW4gSShpLHQpLGUpe3ZhciBvPWlbYV0scz1lW2FdO28mJiFBcnJheS5pc0FycmF5KG8pJiYobz1bb10pLGlbYV09bz9vLmNvbmNhdChzKTpBcnJheS5pc0FycmF5KHMpP3M6W3NdfXJldHVybiBpfSxQdC5wcm9wcz1QdC5tZXRob2RzPVB0LmluamVjdD1QdC5jb21wdXRlZD1mdW5jdGlvbih0LGUsbixyKXtpZighdClyZXR1cm4gZTt2YXIgaT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBJKGksdCksZSYmSShpLGUpLGl9LFB0LnByb3ZpZGU9QXQ7dmFyIGp0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/dDplfTtmdW5jdGlvbiBSdCh0LGUsbil7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBlJiYoZT1lLm9wdGlvbnMpLGZ1bmN0aW9uKHQsZSl7dmFyIG49dC5wcm9wcztpZihuKXt2YXIgcixpLGEsbz17fTtpZihBcnJheS5pc0FycmF5KG4pKXtyPW4ubGVuZ3RoO3doaWxlKHItLSlpPW5bcl0sInN0cmluZyI9PT10eXBlb2YgaSYmKGE9UyhpKSxvW2FdPXt0eXBlOm51bGx9KX1lbHNlIGlmKGwobikpZm9yKHZhciBzIGluIG4paT1uW3NdLGE9UyhzKSxvW2FdPWwoaSk/aTp7dHlwZTppfTtlbHNlIDA7dC5wcm9wcz1vfX0oZSksZnVuY3Rpb24odCxlKXt2YXIgbj10LmluamVjdDtpZihuKXt2YXIgcj10LmluamVjdD17fTtpZihBcnJheS5pc0FycmF5KG4pKWZvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXJbbltpXV09e2Zyb206bltpXX07ZWxzZSBpZihsKG4pKWZvcih2YXIgYSBpbiBuKXt2YXIgbz1uW2FdO3JbYV09bChvKT9JKHtmcm9tOmF9LG8pOntmcm9tOm99fWVsc2UgMH19KGUpLGZ1bmN0aW9uKHQpe3ZhciBlPXQuZGlyZWN0aXZlcztpZihlKWZvcih2YXIgbiBpbiBlKXt2YXIgcj1lW25dOyJmdW5jdGlvbiI9PT10eXBlb2YgciYmKGVbbl09e2JpbmQ6cix1cGRhdGU6cn0pfX0oZSksIWUuX2Jhc2UmJihlLmV4dGVuZHMmJih0PVJ0KHQsZS5leHRlbmRzLG4pKSxlLm1peGlucykpZm9yKHZhciByPTAsaT1lLm1peGlucy5sZW5ndGg7cjxpO3IrKyl0PVJ0KHQsZS5taXhpbnNbcl0sbik7dmFyIGEsbz17fTtmb3IoYSBpbiB0KXMoYSk7Zm9yKGEgaW4gZSlfKHQsYSl8fHMoYSk7ZnVuY3Rpb24gcyhyKXt2YXIgaT1QdFtyXXx8anQ7b1tyXT1pKHRbcl0sZVtyXSxuLHIpfXJldHVybiBvfWZ1bmN0aW9uIE50KHQsZSxuLHIpe2lmKCJzdHJpbmciPT09dHlwZW9mIG4pe3ZhciBpPXRbZV07aWYoXyhpLG4pKXJldHVybiBpW25dO3ZhciBhPVMobik7aWYoXyhpLGEpKXJldHVybiBpW2FdO3ZhciBvPVQoYSk7aWYoXyhpLG8pKXJldHVybiBpW29dO3ZhciBzPWlbbl18fGlbYV18fGlbb107cmV0dXJuIHN9fWZ1bmN0aW9uIEJ0KHQsZSxuLHIpe3ZhciBpPWVbdF0sYT0hXyhuLHQpLG89blt0XSxzPVd0KEJvb2xlYW4saS50eXBlKTtpZihzPi0xKWlmKGEmJiFfKGksImRlZmF1bHQiKSlvPSExO2Vsc2UgaWYoIiI9PT1vfHxvPT09ayh0KSl7dmFyIGM9V3QoU3RyaW5nLGkudHlwZSk7KGM8MHx8czxjKSYmKG89ITApfWlmKHZvaWQgMD09PW8pe289ZnVuY3Rpb24odCxlLG4pe2lmKCFfKGUsImRlZmF1bHQiKSlyZXR1cm47dmFyIHI9ZS5kZWZhdWx0OzA7aWYodCYmdC4kb3B0aW9ucy5wcm9wc0RhdGEmJnZvaWQgMD09PXQuJG9wdGlvbnMucHJvcHNEYXRhW25dJiZ2b2lkIDAhPT10Ll9wcm9wc1tuXSlyZXR1cm4gdC5fcHJvcHNbbl07cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiByJiYiRnVuY3Rpb24iIT09RHQoZS50eXBlKT9yLmNhbGwodCk6cn0ocixpLHQpO3ZhciB1PXh0O1N0KCEwKSxDdChvKSxTdCh1KX1yZXR1cm4gb31mdW5jdGlvbiBEdCh0KXt2YXIgZT10JiZ0LnRvU3RyaW5nKCkubWF0Y2goL15ccypmdW5jdGlvbiAoXHcrKS8pO3JldHVybiBlP2VbMV06IiJ9ZnVuY3Rpb24gRnQodCxlKXtyZXR1cm4gRHQodCk9PT1EdChlKX1mdW5jdGlvbiBXdCh0LGUpe2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiBGdChlLHQpPzA6LTE7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKWlmKEZ0KGVbbl0sdCkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gSHQodCxlLG4pe2R0KCk7dHJ5e2lmKGUpe3ZhciByPWU7d2hpbGUocj1yLiRwYXJlbnQpe3ZhciBpPXIuJG9wdGlvbnMuZXJyb3JDYXB0dXJlZDtpZihpKWZvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKXRyeXt2YXIgbz0hMT09PWlbYV0uY2FsbChyLHQsZSxuKTtpZihvKXJldHVybn1jYXRjaChVaSl7VXQoVWksciwiZXJyb3JDYXB0dXJlZCBob29rIil9fX1VdCh0LGUsbil9ZmluYWxseXtodCgpfX1mdW5jdGlvbiBWdCh0LGUsbixyLGkpe3ZhciBhO3RyeXthPW4/dC5hcHBseShlLG4pOnQuY2FsbChlKSxhJiYhYS5faXNWdWUmJmgoYSkmJiFhLl9oYW5kbGVkJiYoYS5jYXRjaCgoZnVuY3Rpb24odCl7cmV0dXJuIEh0KHQscixpKyIgKFByb21pc2UvYXN5bmMpIil9KSksYS5faGFuZGxlZD0hMCl9Y2F0Y2goVWkpe0h0KFVpLHIsaSl9cmV0dXJuIGF9ZnVuY3Rpb24gVXQodCxlLG4pe2lmKEQuZXJyb3JIYW5kbGVyKXRyeXtyZXR1cm4gRC5lcnJvckhhbmRsZXIuY2FsbChudWxsLHQsZSxuKX1jYXRjaChVaSl7VWkhPT10JiZxdChVaSxudWxsLCJjb25maWcuZXJyb3JIYW5kbGVyIil9cXQodCxlLG4pfWZ1bmN0aW9uIHF0KHQsZSxyKXtpZigheiYmIVl8fCJ1bmRlZmluZWQiPT09dHlwZW9mIG4pdGhyb3cgdDtuLmVycm9yKHQpfXZhciB6dCxZdD0hMSxYdD1bXSxHdD0hMTtmdW5jdGlvbiBRdCgpe0d0PSExO3ZhciB0PVh0LnNsaWNlKDApO1h0Lmxlbmd0aD0wO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0oKX1pZigidW5kZWZpbmVkIiE9PXR5cGVvZiBQcm9taXNlJiZvdChQcm9taXNlKSl7dmFyIEp0PVByb21pc2UucmVzb2x2ZSgpO3p0PWZ1bmN0aW9uKCl7SnQudGhlbihRdCksWiYmc2V0VGltZW91dChNKX0sWXQ9ITB9ZWxzZSBpZihRfHwidW5kZWZpbmVkIj09PXR5cGVvZiBNdXRhdGlvbk9ic2VydmVyfHwhb3QoTXV0YXRpb25PYnNlcnZlcikmJiJbb2JqZWN0IE11dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcl0iIT09TXV0YXRpb25PYnNlcnZlci50b1N0cmluZygpKXp0PSJ1bmRlZmluZWQiIT09dHlwZW9mIHNldEltbWVkaWF0ZSYmb3Qoc2V0SW1tZWRpYXRlKT9mdW5jdGlvbigpe3NldEltbWVkaWF0ZShRdCl9OmZ1bmN0aW9uKCl7c2V0VGltZW91dChRdCwwKX07ZWxzZXt2YXIgS3Q9MSxadD1uZXcgTXV0YXRpb25PYnNlcnZlcihRdCksdGU9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKEt0KSk7WnQub2JzZXJ2ZSh0ZSx7Y2hhcmFjdGVyRGF0YTohMH0pLHp0PWZ1bmN0aW9uKCl7S3Q9KEt0KzEpJTIsdGUuZGF0YT1TdHJpbmcoS3QpfSxZdD0hMH1mdW5jdGlvbiBlZSh0LGUpe3ZhciBuO2lmKFh0LnB1c2goKGZ1bmN0aW9uKCl7aWYodCl0cnl7dC5jYWxsKGUpfWNhdGNoKFVpKXtIdChVaSxlLCJuZXh0VGljayIpfWVsc2UgbiYmbihlKX0pKSxHdHx8KEd0PSEwLHp0KCkpLCF0JiYidW5kZWZpbmVkIiE9PXR5cGVvZiBQcm9taXNlKXJldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCl7bj10fSkpfXZhciBuZT1uZXcgc3Q7ZnVuY3Rpb24gcmUodCl7KGZ1bmN0aW9uIHQoZSxuKXt2YXIgcixpLGE9QXJyYXkuaXNBcnJheShlKTtpZighYSYmIWMoZSl8fE9iamVjdC5pc0Zyb3plbihlKXx8ZSBpbnN0YW5jZW9mIHB0KXJldHVybjtpZihlLl9fb2JfXyl7dmFyIG89ZS5fX29iX18uZGVwLmlkO2lmKG4uaGFzKG8pKXJldHVybjtuLmFkZChvKX1pZihhKXtyPWUubGVuZ3RoO3doaWxlKHItLSl0KGVbcl0sbil9ZWxzZXtpPU9iamVjdC5rZXlzKGUpLHI9aS5sZW5ndGg7d2hpbGUoci0tKXQoZVtpW3JdXSxuKX19KSh0LG5lKSxuZS5jbGVhcigpfXZhciBpZT13KChmdW5jdGlvbih0KXt2YXIgZT0iJiI9PT10LmNoYXJBdCgwKTt0PWU/dC5zbGljZSgxKTp0O3ZhciBuPSJ+Ij09PXQuY2hhckF0KDApO3Q9bj90LnNsaWNlKDEpOnQ7dmFyIHI9IiEiPT09dC5jaGFyQXQoMCk7cmV0dXJuIHQ9cj90LnNsaWNlKDEpOnQse25hbWU6dCxvbmNlOm4sY2FwdHVyZTpyLHBhc3NpdmU6ZX19KSk7ZnVuY3Rpb24gYWUodCxlKXtmdW5jdGlvbiBuKCl7dmFyIHQ9YXJndW1lbnRzLHI9bi5mbnM7aWYoIUFycmF5LmlzQXJyYXkocikpcmV0dXJuIFZ0KHIsbnVsbCxhcmd1bWVudHMsZSwidi1vbiBoYW5kbGVyIik7Zm9yKHZhciBpPXIuc2xpY2UoKSxhPTA7YTxpLmxlbmd0aDthKyspVnQoaVthXSxudWxsLHQsZSwidi1vbiBoYW5kbGVyIil9cmV0dXJuIG4uZm5zPXQsbn1mdW5jdGlvbiBvZSh0LGUsbixyLGEscyl7dmFyIGMsdSxsLGY7Zm9yKGMgaW4gdCl1PXRbY10sbD1lW2NdLGY9aWUoYyksaSh1KXx8KGkobCk/KGkodS5mbnMpJiYodT10W2NdPWFlKHUscykpLG8oZi5vbmNlKSYmKHU9dFtjXT1hKGYubmFtZSx1LGYuY2FwdHVyZSkpLG4oZi5uYW1lLHUsZi5jYXB0dXJlLGYucGFzc2l2ZSxmLnBhcmFtcykpOnUhPT1sJiYobC5mbnM9dSx0W2NdPWwpKTtmb3IoYyBpbiBlKWkodFtjXSkmJihmPWllKGMpLHIoZi5uYW1lLGVbY10sZi5jYXB0dXJlKSl9ZnVuY3Rpb24gc2UodCxlLG4pe3ZhciByO3QgaW5zdGFuY2VvZiBwdCYmKHQ9dC5kYXRhLmhvb2t8fCh0LmRhdGEuaG9vaz17fSkpO3ZhciBzPXRbZV07ZnVuY3Rpb24gYygpe24uYXBwbHkodGhpcyxhcmd1bWVudHMpLGIoci5mbnMsYyl9aShzKT9yPWFlKFtjXSk6YShzLmZucykmJm8ocy5tZXJnZWQpPyhyPXMsci5mbnMucHVzaChjKSk6cj1hZShbcyxjXSksci5tZXJnZWQ9ITAsdFtlXT1yfWZ1bmN0aW9uIGNlKHQsZSxuLHIpe3ZhciBvPWUub3B0aW9ucy5tcE9wdGlvbnMmJmUub3B0aW9ucy5tcE9wdGlvbnMucHJvcGVydGllcztpZihpKG8pKXJldHVybiBuO3ZhciBzPWUub3B0aW9ucy5tcE9wdGlvbnMuZXh0ZXJuYWxDbGFzc2VzfHxbXSxjPXQuYXR0cnMsdT10LnByb3BzO2lmKGEoYyl8fGEodSkpZm9yKHZhciBsIGluIG8pe3ZhciBmPWsobCksZD11ZShuLHUsbCxmLCEwKXx8dWUobixjLGwsZiwhMSk7ZCYmbltsXSYmLTEhPT1zLmluZGV4T2YoZikmJnJbUyhuW2xdKV0mJihuW2xdPXJbUyhuW2xdKV0pfXJldHVybiBufWZ1bmN0aW9uIHVlKHQsZSxuLHIsaSl7aWYoYShlKSl7aWYoXyhlLG4pKXJldHVybiB0W25dPWVbbl0saXx8ZGVsZXRlIGVbbl0sITA7aWYoXyhlLHIpKXJldHVybiB0W25dPWVbcl0saXx8ZGVsZXRlIGVbcl0sITB9cmV0dXJuITF9ZnVuY3Rpb24gbGUodCl7cmV0dXJuIHModCk/W210KHQpXTpBcnJheS5pc0FycmF5KHQpP2Z1bmN0aW9uIHQoZSxuKXt2YXIgcixjLHUsbCxmPVtdO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspYz1lW3JdLGkoYyl8fCJib29sZWFuIj09PXR5cGVvZiBjfHwodT1mLmxlbmd0aC0xLGw9Zlt1XSxBcnJheS5pc0FycmF5KGMpP2MubGVuZ3RoPjAmJihjPXQoYywobnx8IiIpKyJfIityKSxmZShjWzBdKSYmZmUobCkmJihmW3VdPW10KGwudGV4dCtjWzBdLnRleHQpLGMuc2hpZnQoKSksZi5wdXNoLmFwcGx5KGYsYykpOnMoYyk/ZmUobCk/Zlt1XT1tdChsLnRleHQrYyk6IiIhPT1jJiZmLnB1c2gobXQoYykpOmZlKGMpJiZmZShsKT9mW3VdPW10KGwudGV4dCtjLnRleHQpOihvKGUuX2lzVkxpc3QpJiZhKGMudGFnKSYmaShjLmtleSkmJmEobikmJihjLmtleT0iX192bGlzdCIrbisiXyIrcisiX18iKSxmLnB1c2goYykpKTtyZXR1cm4gZn0odCk6dm9pZCAwfWZ1bmN0aW9uIGZlKHQpe3JldHVybiBhKHQpJiZhKHQudGV4dCkmJmZ1bmN0aW9uKHQpe3JldHVybiExPT09dH0odC5pc0NvbW1lbnQpfWZ1bmN0aW9uIGRlKHQsZSl7aWYodCl7Zm9yKHZhciBuPU9iamVjdC5jcmVhdGUobnVsbCkscj1jdD9SZWZsZWN0Lm93bktleXModCk6T2JqZWN0LmtleXModCksaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldO2lmKCJfX29iX18iIT09YSl7dmFyIG89dFthXS5mcm9tLHM9ZTt3aGlsZShzKXtpZihzLl9wcm92aWRlZCYmXyhzLl9wcm92aWRlZCxvKSl7blthXT1zLl9wcm92aWRlZFtvXTticmVha31zPXMuJHBhcmVudH1pZighcylpZigiZGVmYXVsdCJpbiB0W2FdKXt2YXIgYz10W2FdLmRlZmF1bHQ7blthXT0iZnVuY3Rpb24iPT09dHlwZW9mIGM/Yy5jYWxsKGUpOmN9ZWxzZSAwfX1yZXR1cm4gbn19ZnVuY3Rpb24gaGUodCxlKXtpZighdHx8IXQubGVuZ3RoKXJldHVybnt9O2Zvcih2YXIgbj17fSxyPTAsaT10Lmxlbmd0aDtyPGk7cisrKXt2YXIgYT10W3JdLG89YS5kYXRhO2lmKG8mJm8uYXR0cnMmJm8uYXR0cnMuc2xvdCYmZGVsZXRlIG8uYXR0cnMuc2xvdCxhLmNvbnRleHQhPT1lJiZhLmZuQ29udGV4dCE9PWV8fCFvfHxudWxsPT1vLnNsb3QpYS5hc3luY01ldGEmJmEuYXN5bmNNZXRhLmRhdGEmJiJwYWdlIj09PWEuYXN5bmNNZXRhLmRhdGEuc2xvdD8oblsicGFnZSJdfHwoblsicGFnZSJdPVtdKSkucHVzaChhKToobi5kZWZhdWx0fHwobi5kZWZhdWx0PVtdKSkucHVzaChhKTtlbHNle3ZhciBzPW8uc2xvdCxjPW5bc118fChuW3NdPVtdKTsidGVtcGxhdGUiPT09YS50YWc/Yy5wdXNoLmFwcGx5KGMsYS5jaGlsZHJlbnx8W10pOmMucHVzaChhKX19Zm9yKHZhciB1IGluIG4pblt1XS5ldmVyeShwZSkmJmRlbGV0ZSBuW3VdO3JldHVybiBufWZ1bmN0aW9uIHBlKHQpe3JldHVybiB0LmlzQ29tbWVudCYmIXQuYXN5bmNGYWN0b3J5fHwiICI9PT10LnRleHR9ZnVuY3Rpb24gdmUodCxlLG4pe3ZhciBpLGE9T2JqZWN0LmtleXMoZSkubGVuZ3RoPjAsbz10PyEhdC4kc3RhYmxlOiFhLHM9dCYmdC4ka2V5O2lmKHQpe2lmKHQuX25vcm1hbGl6ZWQpcmV0dXJuIHQuX25vcm1hbGl6ZWQ7aWYobyYmbiYmbiE9PXImJnM9PT1uLiRrZXkmJiFhJiYhbi4kaGFzTm9ybWFsKXJldHVybiBuO2Zvcih2YXIgYyBpbiBpPXt9LHQpdFtjXSYmIiQiIT09Y1swXSYmKGlbY109Z2UoZSxjLHRbY10pKX1lbHNlIGk9e307Zm9yKHZhciB1IGluIGUpdSBpbiBpfHwoaVt1XT1tZShlLHUpKTtyZXR1cm4gdCYmT2JqZWN0LmlzRXh0ZW5zaWJsZSh0KSYmKHQuX25vcm1hbGl6ZWQ9aSksSChpLCIkc3RhYmxlIixvKSxIKGksIiRrZXkiLHMpLEgoaSwiJGhhc05vcm1hbCIsYSksaX1mdW5jdGlvbiBnZSh0LGUsbil7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoP24uYXBwbHkobnVsbCxhcmd1bWVudHMpOm4oe30pO3JldHVybiB0PXQmJiJvYmplY3QiPT09dHlwZW9mIHQmJiFBcnJheS5pc0FycmF5KHQpP1t0XTpsZSh0KSx0JiYoMD09PXQubGVuZ3RofHwxPT09dC5sZW5ndGgmJnRbMF0uaXNDb21tZW50KT92b2lkIDA6dH07cmV0dXJuIG4ucHJveHkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse2dldDpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSkscn1mdW5jdGlvbiBtZSh0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0W2VdfX1mdW5jdGlvbiBiZSh0LGUpe3ZhciBuLHIsaSxvLHM7aWYoQXJyYXkuaXNBcnJheSh0KXx8InN0cmluZyI9PT10eXBlb2YgdClmb3Iobj1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspbltyXT1lKHRbcl0scixyLHIpO2Vsc2UgaWYoIm51bWJlciI9PT10eXBlb2YgdClmb3Iobj1uZXcgQXJyYXkodCkscj0wO3I8dDtyKyspbltyXT1lKHIrMSxyLHIscik7ZWxzZSBpZihjKHQpKWlmKGN0JiZ0W1N5bWJvbC5pdGVyYXRvcl0pe249W107dmFyIHU9dFtTeW1ib2wuaXRlcmF0b3JdKCksbD11Lm5leHQoKTt3aGlsZSghbC5kb25lKW4ucHVzaChlKGwudmFsdWUsbi5sZW5ndGgscixyKyspKSxsPXUubmV4dCgpfWVsc2UgZm9yKG89T2JqZWN0LmtleXModCksbj1uZXcgQXJyYXkoby5sZW5ndGgpLHI9MCxpPW8ubGVuZ3RoO3I8aTtyKyspcz1vW3JdLG5bcl09ZSh0W3NdLHMscixyKTtyZXR1cm4gYShuKXx8KG49W10pLG4uX2lzVkxpc3Q9ITAsbn1mdW5jdGlvbiB5ZSh0LGUsbixyKXt2YXIgaSxhPXRoaXMuJHNjb3BlZFNsb3RzW3RdO2E/KG49bnx8e30sciYmKG49SShJKHt9LHIpLG4pKSxpPWEobix0aGlzLG4uX2kpfHxlKTppPXRoaXMuJHNsb3RzW3RdfHxlO3ZhciBvPW4mJm4uc2xvdDtyZXR1cm4gbz90aGlzLiRjcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIse3Nsb3Q6b30saSk6aX1mdW5jdGlvbiBfZSh0KXtyZXR1cm4gTnQodGhpcy4kb3B0aW9ucywiZmlsdGVycyIsdCl8fCR9ZnVuY3Rpb24gd2UodCxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT8tMT09PXQuaW5kZXhPZihlKTp0IT09ZX1mdW5jdGlvbiB4ZSh0LGUsbixyLGkpe3ZhciBhPUQua2V5Q29kZXNbZV18fG47cmV0dXJuIGkmJnImJiFELmtleUNvZGVzW2VdP3dlKGkscik6YT93ZShhLHQpOnI/ayhyKSE9PWU6dm9pZCAwfWZ1bmN0aW9uIFNlKHQsZSxuLHIsaSl7aWYobilpZihjKG4pKXt2YXIgYTtBcnJheS5pc0FycmF5KG4pJiYobj1QKG4pKTt2YXIgbz1mdW5jdGlvbihvKXtpZigiY2xhc3MiPT09b3x8InN0eWxlIj09PW98fG0obykpYT10O2Vsc2V7dmFyIHM9dC5hdHRycyYmdC5hdHRycy50eXBlO2E9cnx8RC5tdXN0VXNlUHJvcChlLHMsbyk/dC5kb21Qcm9wc3x8KHQuZG9tUHJvcHM9e30pOnQuYXR0cnN8fCh0LmF0dHJzPXt9KX12YXIgYz1TKG8pLHU9ayhvKTtpZighKGMgaW4gYSkmJiEodSBpbiBhKSYmKGFbb109bltvXSxpKSl7dmFyIGw9dC5vbnx8KHQub249e30pO2xbInVwZGF0ZToiK29dPWZ1bmN0aW9uKHQpe25bb109dH19fTtmb3IodmFyIHMgaW4gbilvKHMpfWVsc2U7cmV0dXJuIHR9ZnVuY3Rpb24gVGUodCxlKXt2YXIgbj10aGlzLl9zdGF0aWNUcmVlc3x8KHRoaXMuX3N0YXRpY1RyZWVzPVtdKSxyPW5bdF07cmV0dXJuIHImJiFlfHwocj1uW3RdPXRoaXMuJG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zW3RdLmNhbGwodGhpcy5fcmVuZGVyUHJveHksbnVsbCx0aGlzKSxrZShyLCJfX3N0YXRpY19fIit0LCExKSkscn1mdW5jdGlvbiBDZSh0LGUsbil7cmV0dXJuIGtlKHQsIl9fb25jZV9fIitlKyhuPyJfIituOiIiKSwhMCksdH1mdW5jdGlvbiBrZSh0LGUsbil7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdJiYic3RyaW5nIiE9PXR5cGVvZiB0W3JdJiZPZSh0W3JdLGUrIl8iK3Isbik7ZWxzZSBPZSh0LGUsbil9ZnVuY3Rpb24gT2UodCxlLG4pe3QuaXNTdGF0aWM9ITAsdC5rZXk9ZSx0LmlzT25jZT1ufWZ1bmN0aW9uIEVlKHQsZSl7aWYoZSlpZihsKGUpKXt2YXIgbj10Lm9uPXQub24/SSh7fSx0Lm9uKTp7fTtmb3IodmFyIHIgaW4gZSl7dmFyIGk9bltyXSxhPWVbcl07bltyXT1pP1tdLmNvbmNhdChpLGEpOmF9fWVsc2U7cmV0dXJuIHR9ZnVuY3Rpb24gSWUodCxlLG4scil7ZT1lfHx7JHN0YWJsZTohbn07Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV07QXJyYXkuaXNBcnJheShhKT9JZShhLGUsbik6YSYmKGEucHJveHkmJihhLmZuLnByb3h5PSEwKSxlW2Eua2V5XT1hLmZuKX1yZXR1cm4gciYmKGUuJGtleT1yKSxlfWZ1bmN0aW9uIFBlKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKz0yKXt2YXIgcj1lW25dOyJzdHJpbmciPT09dHlwZW9mIHImJnImJih0W2Vbbl1dPWVbbisxXSl9cmV0dXJuIHR9ZnVuY3Rpb24gTWUodCxlKXtyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiB0P2UrdDp0fWZ1bmN0aW9uIEFlKHQpe3QuX289Q2UsdC5fbj12LHQuX3M9cCx0Ll9sPWJlLHQuX3Q9eWUsdC5fcT1MLHQuX2k9aix0Ll9tPVRlLHQuX2Y9X2UsdC5faz14ZSx0Ll9iPVNlLHQuX3Y9bXQsdC5fZT1ndCx0Ll91PUllLHQuX2c9RWUsdC5fZD1QZSx0Ll9wPU1lfWZ1bmN0aW9uICRlKHQsZSxuLGksYSl7dmFyIHMsYz10aGlzLHU9YS5vcHRpb25zO18oaSwiX3VpZCIpPyhzPU9iamVjdC5jcmVhdGUoaSkscy5fb3JpZ2luYWw9aSk6KHM9aSxpPWkuX29yaWdpbmFsKTt2YXIgbD1vKHUuX2NvbXBpbGVkKSxmPSFsO3RoaXMuZGF0YT10LHRoaXMucHJvcHM9ZSx0aGlzLmNoaWxkcmVuPW4sdGhpcy5wYXJlbnQ9aSx0aGlzLmxpc3RlbmVycz10Lm9ufHxyLHRoaXMuaW5qZWN0aW9ucz1kZSh1LmluamVjdCxpKSx0aGlzLnNsb3RzPWZ1bmN0aW9uKCl7cmV0dXJuIGMuJHNsb3RzfHx2ZSh0LnNjb3BlZFNsb3RzLGMuJHNsb3RzPWhlKG4saSkpLGMuJHNsb3RzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywic2NvcGVkU2xvdHMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB2ZSh0LnNjb3BlZFNsb3RzLHRoaXMuc2xvdHMoKSl9fSksbCYmKHRoaXMuJG9wdGlvbnM9dSx0aGlzLiRzbG90cz10aGlzLnNsb3RzKCksdGhpcy4kc2NvcGVkU2xvdHM9dmUodC5zY29wZWRTbG90cyx0aGlzLiRzbG90cykpLHUuX3Njb3BlSWQ/dGhpcy5fYz1mdW5jdGlvbih0LGUsbixyKXt2YXIgYT1GZShzLHQsZSxuLHIsZik7cmV0dXJuIGEmJiFBcnJheS5pc0FycmF5KGEpJiYoYS5mblNjb3BlSWQ9dS5fc2NvcGVJZCxhLmZuQ29udGV4dD1pKSxhfTp0aGlzLl9jPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBGZShzLHQsZSxuLHIsZil9fWZ1bmN0aW9uIExlKHQsZSxuLHIsaSl7dmFyIGE9YnQodCk7cmV0dXJuIGEuZm5Db250ZXh0PW4sYS5mbk9wdGlvbnM9cixlLnNsb3QmJigoYS5kYXRhfHwoYS5kYXRhPXt9KSkuc2xvdD1lLnNsb3QpLGF9ZnVuY3Rpb24gamUodCxlKXtmb3IodmFyIG4gaW4gZSl0W1MobildPWVbbl19QWUoJGUucHJvdG90eXBlKTt2YXIgUmU9e2luaXQ6ZnVuY3Rpb24odCxlKXtpZih0LmNvbXBvbmVudEluc3RhbmNlJiYhdC5jb21wb25lbnRJbnN0YW5jZS5faXNEZXN0cm95ZWQmJnQuZGF0YS5rZWVwQWxpdmUpe3ZhciBuPXQ7UmUucHJlcGF0Y2gobixuKX1lbHNle3ZhciByPXQuY29tcG9uZW50SW5zdGFuY2U9ZnVuY3Rpb24odCxlKXt2YXIgbj17X2lzQ29tcG9uZW50OiEwLF9wYXJlbnRWbm9kZTp0LHBhcmVudDplfSxyPXQuZGF0YS5pbmxpbmVUZW1wbGF0ZTthKHIpJiYobi5yZW5kZXI9ci5yZW5kZXIsbi5zdGF0aWNSZW5kZXJGbnM9ci5zdGF0aWNSZW5kZXJGbnMpO3JldHVybiBuZXcgdC5jb21wb25lbnRPcHRpb25zLkN0b3Iobil9KHQsUWUpO3IuJG1vdW50KGU/dC5lbG06dm9pZCAwLGUpfX0scHJlcGF0Y2g6ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmNvbXBvbmVudE9wdGlvbnMsaT1lLmNvbXBvbmVudEluc3RhbmNlPXQuY29tcG9uZW50SW5zdGFuY2U7KGZ1bmN0aW9uKHQsZSxuLGksYSl7MDt2YXIgbz1pLmRhdGEuc2NvcGVkU2xvdHMscz10LiRzY29wZWRTbG90cyxjPSEhKG8mJiFvLiRzdGFibGV8fHMhPT1yJiYhcy4kc3RhYmxlfHxvJiZ0LiRzY29wZWRTbG90cy4ka2V5IT09by4ka2V5KSx1PSEhKGF8fHQuJG9wdGlvbnMuX3JlbmRlckNoaWxkcmVufHxjKTt0LiRvcHRpb25zLl9wYXJlbnRWbm9kZT1pLHQuJHZub2RlPWksdC5fdm5vZGUmJih0Ll92bm9kZS5wYXJlbnQ9aSk7aWYodC4kb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW49YSx0LiRhdHRycz1pLmRhdGEuYXR0cnN8fHIsdC4kbGlzdGVuZXJzPW58fHIsZSYmdC4kb3B0aW9ucy5wcm9wcyl7U3QoITEpO2Zvcih2YXIgbD10Ll9wcm9wcyxmPXQuJG9wdGlvbnMuX3Byb3BLZXlzfHxbXSxkPTA7ZDxmLmxlbmd0aDtkKyspe3ZhciBoPWZbZF0scD10LiRvcHRpb25zLnByb3BzO2xbaF09QnQoaCxwLGUsdCl9U3QoITApLHQuJG9wdGlvbnMucHJvcHNEYXRhPWV9dC5fJHVwZGF0ZVByb3BlcnRpZXMmJnQuXyR1cGRhdGVQcm9wZXJ0aWVzKHQpLG49bnx8cjt2YXIgdj10LiRvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnM7dC4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzPW4sR2UodCxuLHYpLHUmJih0LiRzbG90cz1oZShhLGkuY29udGV4dCksdC4kZm9yY2VVcGRhdGUoKSk7MH0pKGksbi5wcm9wc0RhdGEsbi5saXN0ZW5lcnMsZSxuLmNoaWxkcmVuKX0saW5zZXJ0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuY29udGV4dCxuPXQuY29tcG9uZW50SW5zdGFuY2U7bi5faXNNb3VudGVkfHwodG4obiwib25TZXJ2aWNlQ3JlYXRlZCIpLHRuKG4sIm9uU2VydmljZUF0dGFjaGVkIiksbi5faXNNb3VudGVkPSEwLHRuKG4sIm1vdW50ZWQiKSksdC5kYXRhLmtlZXBBbGl2ZSYmKGUuX2lzTW91bnRlZD9mdW5jdGlvbih0KXt0Ll9pbmFjdGl2ZT0hMSxubi5wdXNoKHQpfShuKTpaZShuLCEwKSl9LGRlc3Ryb3k6ZnVuY3Rpb24odCl7dmFyIGU9dC5jb21wb25lbnRJbnN0YW5jZTtlLl9pc0Rlc3Ryb3llZHx8KHQuZGF0YS5rZWVwQWxpdmU/ZnVuY3Rpb24gdChlLG4pe2lmKG4mJihlLl9kaXJlY3RJbmFjdGl2ZT0hMCxLZShlKSkpcmV0dXJuO2lmKCFlLl9pbmFjdGl2ZSl7ZS5faW5hY3RpdmU9ITA7Zm9yKHZhciByPTA7cjxlLiRjaGlsZHJlbi5sZW5ndGg7cisrKXQoZS4kY2hpbGRyZW5bcl0pO3RuKGUsImRlYWN0aXZhdGVkIil9fShlLCEwKTplLiRkZXN0cm95KCkpfX0sTmU9T2JqZWN0LmtleXMoUmUpO2Z1bmN0aW9uIEJlKHQsZSxuLHMsdSl7aWYoIWkodCkpe3ZhciBsPW4uJG9wdGlvbnMuX2Jhc2U7aWYoYyh0KSYmKHQ9bC5leHRlbmQodCkpLCJmdW5jdGlvbiI9PT10eXBlb2YgdCl7dmFyIGY7aWYoaSh0LmNpZCkmJihmPXQsdD1mdW5jdGlvbih0LGUpe2lmKG8odC5lcnJvcikmJmEodC5lcnJvckNvbXApKXJldHVybiB0LmVycm9yQ29tcDtpZihhKHQucmVzb2x2ZWQpKXJldHVybiB0LnJlc29sdmVkO3ZhciBuPUhlO24mJmEodC5vd25lcnMpJiYtMT09PXQub3duZXJzLmluZGV4T2YobikmJnQub3duZXJzLnB1c2gobik7aWYobyh0LmxvYWRpbmcpJiZhKHQubG9hZGluZ0NvbXApKXJldHVybiB0LmxvYWRpbmdDb21wO2lmKG4mJiFhKHQub3duZXJzKSl7dmFyIHI9dC5vd25lcnM9W25dLHM9ITAsdT1udWxsLGw9bnVsbDtuLiRvbigiaG9vazpkZXN0cm95ZWQiLChmdW5jdGlvbigpe3JldHVybiBiKHIsbil9KSk7dmFyIGY9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAsbj1yLmxlbmd0aDtlPG47ZSsrKXJbZV0uJGZvcmNlVXBkYXRlKCk7dCYmKHIubGVuZ3RoPTAsbnVsbCE9PXUmJihjbGVhclRpbWVvdXQodSksdT1udWxsKSxudWxsIT09bCYmKGNsZWFyVGltZW91dChsKSxsPW51bGwpKX0sZD1SKChmdW5jdGlvbihuKXt0LnJlc29sdmVkPVZlKG4sZSkscz9yLmxlbmd0aD0wOmYoITApfSkpLHA9UigoZnVuY3Rpb24oZSl7YSh0LmVycm9yQ29tcCkmJih0LmVycm9yPSEwLGYoITApKX0pKSx2PXQoZCxwKTtyZXR1cm4gYyh2KSYmKGgodik/aSh0LnJlc29sdmVkKSYmdi50aGVuKGQscCk6aCh2LmNvbXBvbmVudCkmJih2LmNvbXBvbmVudC50aGVuKGQscCksYSh2LmVycm9yKSYmKHQuZXJyb3JDb21wPVZlKHYuZXJyb3IsZSkpLGEodi5sb2FkaW5nKSYmKHQubG9hZGluZ0NvbXA9VmUodi5sb2FkaW5nLGUpLDA9PT12LmRlbGF5P3QubG9hZGluZz0hMDp1PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dT1udWxsLGkodC5yZXNvbHZlZCkmJmkodC5lcnJvcikmJih0LmxvYWRpbmc9ITAsZighMSkpfSksdi5kZWxheXx8MjAwKSksYSh2LnRpbWVvdXQpJiYobD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2w9bnVsbCxpKHQucmVzb2x2ZWQpJiZwKG51bGwpfSksdi50aW1lb3V0KSkpKSxzPSExLHQubG9hZGluZz90LmxvYWRpbmdDb21wOnQucmVzb2x2ZWR9fShmLGwpLHZvaWQgMD09PXQpKXJldHVybiBmdW5jdGlvbih0LGUsbixyLGkpe3ZhciBhPWd0KCk7cmV0dXJuIGEuYXN5bmNGYWN0b3J5PXQsYS5hc3luY01ldGE9e2RhdGE6ZSxjb250ZXh0Om4sY2hpbGRyZW46cix0YWc6aX0sYX0oZixlLG4scyx1KTtlPWV8fHt9LFNuKHQpLGEoZS5tb2RlbCkmJmZ1bmN0aW9uKHQsZSl7dmFyIG49dC5tb2RlbCYmdC5tb2RlbC5wcm9wfHwidmFsdWUiLHI9dC5tb2RlbCYmdC5tb2RlbC5ldmVudHx8ImlucHV0IjsoZS5hdHRyc3x8KGUuYXR0cnM9e30pKVtuXT1lLm1vZGVsLnZhbHVlO3ZhciBpPWUub258fChlLm9uPXt9KSxvPWlbcl0scz1lLm1vZGVsLmNhbGxiYWNrO2Eobyk/KEFycmF5LmlzQXJyYXkobyk/LTE9PT1vLmluZGV4T2Yocyk6byE9PXMpJiYoaVtyXT1bc10uY29uY2F0KG8pKTppW3JdPXN9KHQub3B0aW9ucyxlKTt2YXIgZD1mdW5jdGlvbih0LGUsbixyKXt2YXIgbz1lLm9wdGlvbnMucHJvcHM7aWYoaShvKSlyZXR1cm4gY2UodCxlLHt9LHIpO3ZhciBzPXt9LGM9dC5hdHRycyx1PXQucHJvcHM7aWYoYShjKXx8YSh1KSlmb3IodmFyIGwgaW4gbyl7dmFyIGY9ayhsKTt1ZShzLHUsbCxmLCEwKXx8dWUocyxjLGwsZiwhMSl9cmV0dXJuIGNlKHQsZSxzLHIpfShlLHQsMCxuKTtpZihvKHQub3B0aW9ucy5mdW5jdGlvbmFsKSlyZXR1cm4gZnVuY3Rpb24odCxlLG4saSxvKXt2YXIgcz10Lm9wdGlvbnMsYz17fSx1PXMucHJvcHM7aWYoYSh1KSlmb3IodmFyIGwgaW4gdSljW2xdPUJ0KGwsdSxlfHxyKTtlbHNlIGEobi5hdHRycykmJmplKGMsbi5hdHRycyksYShuLnByb3BzKSYmamUoYyxuLnByb3BzKTt2YXIgZj1uZXcgJGUobixjLG8saSx0KSxkPXMucmVuZGVyLmNhbGwobnVsbCxmLl9jLGYpO2lmKGQgaW5zdGFuY2VvZiBwdClyZXR1cm4gTGUoZCxuLGYucGFyZW50LHMsZik7aWYoQXJyYXkuaXNBcnJheShkKSl7Zm9yKHZhciBoPWxlKGQpfHxbXSxwPW5ldyBBcnJheShoLmxlbmd0aCksdj0wO3Y8aC5sZW5ndGg7disrKXBbdl09TGUoaFt2XSxuLGYucGFyZW50LHMsZik7cmV0dXJuIHB9fSh0LGQsZSxuLHMpO3ZhciBwPWUub247aWYoZS5vbj1lLm5hdGl2ZU9uLG8odC5vcHRpb25zLmFic3RyYWN0KSl7dmFyIHY9ZS5zbG90O2U9e30sdiYmKGUuc2xvdD12KX0oZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuaG9va3x8KHQuaG9vaz17fSksbj0wO248TmUubGVuZ3RoO24rKyl7dmFyIHI9TmVbbl0saT1lW3JdLGE9UmVbcl07aT09PWF8fGkmJmkuX21lcmdlZHx8KGVbcl09aT9EZShhLGkpOmEpfX0pKGUpO3ZhciBnPXQub3B0aW9ucy5uYW1lfHx1LG09bmV3IHB0KCJ2dWUtY29tcG9uZW50LSIrdC5jaWQrKGc/Ii0iK2c6IiIpLGUsdm9pZCAwLHZvaWQgMCx2b2lkIDAsbix7Q3Rvcjp0LHByb3BzRGF0YTpkLGxpc3RlbmVyczpwLHRhZzp1LGNoaWxkcmVuOnN9LGYpO3JldHVybiBtfX19ZnVuY3Rpb24gRGUodCxlKXt2YXIgbj1mdW5jdGlvbihuLHIpe3QobixyKSxlKG4scil9O3JldHVybiBuLl9tZXJnZWQ9ITAsbn1mdW5jdGlvbiBGZSh0LGUsbixyLHUsbCl7cmV0dXJuKEFycmF5LmlzQXJyYXkobil8fHMobikpJiYodT1yLHI9bixuPXZvaWQgMCksbyhsKSYmKHU9MiksZnVuY3Rpb24odCxlLG4scixzKXtpZihhKG4pJiZhKG4uX19vYl9fKSlyZXR1cm4gZ3QoKTthKG4pJiZhKG4uaXMpJiYoZT1uLmlzKTtpZighZSlyZXR1cm4gZ3QoKTswO0FycmF5LmlzQXJyYXkocikmJiJmdW5jdGlvbiI9PT10eXBlb2YgclswXSYmKG49bnx8e30sbi5zY29wZWRTbG90cz17ZGVmYXVsdDpyWzBdfSxyLmxlbmd0aD0wKTsyPT09cz9yPWxlKHIpOjE9PT1zJiYocj1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpZihBcnJheS5pc0FycmF5KHRbZV0pKXJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLHQpO3JldHVybiB0fShyKSk7dmFyIHUsbDtpZigic3RyaW5nIj09PXR5cGVvZiBlKXt2YXIgZjtsPXQuJHZub2RlJiZ0LiR2bm9kZS5uc3x8RC5nZXRUYWdOYW1lc3BhY2UoZSksdT1ELmlzUmVzZXJ2ZWRUYWcoZSk/bmV3IHB0KEQucGFyc2VQbGF0Zm9ybVRhZ05hbWUoZSksbixyLHZvaWQgMCx2b2lkIDAsdCk6biYmbi5wcmV8fCFhKGY9TnQodC4kb3B0aW9ucywiY29tcG9uZW50cyIsZSkpP25ldyBwdChlLG4scix2b2lkIDAsdm9pZCAwLHQpOkJlKGYsbix0LHIsZSl9ZWxzZSB1PUJlKGUsbix0LHIpO3JldHVybiBBcnJheS5pc0FycmF5KHUpP3U6YSh1KT8oYShsKSYmZnVuY3Rpb24gdChlLG4scil7ZS5ucz1uLCJmb3JlaWduT2JqZWN0Ij09PWUudGFnJiYobj12b2lkIDAscj0hMCk7aWYoYShlLmNoaWxkcmVuKSlmb3IodmFyIHM9MCxjPWUuY2hpbGRyZW4ubGVuZ3RoO3M8YztzKyspe3ZhciB1PWUuY2hpbGRyZW5bc107YSh1LnRhZykmJihpKHUubnMpfHxvKHIpJiYic3ZnIiE9PXUudGFnKSYmdCh1LG4scil9fSh1LGwpLGEobikmJmZ1bmN0aW9uKHQpe2ModC5zdHlsZSkmJnJlKHQuc3R5bGUpO2ModC5jbGFzcykmJnJlKHQuY2xhc3MpfShuKSx1KTpndCgpfSh0LGUsbixyLHUpfXZhciBXZSxIZT1udWxsO2Z1bmN0aW9uIFZlKHQsZSl7cmV0dXJuKHQuX19lc01vZHVsZXx8Y3QmJiJNb2R1bGUiPT09dFtTeW1ib2wudG9TdHJpbmdUYWddKSYmKHQ9dC5kZWZhdWx0KSxjKHQpP2UuZXh0ZW5kKHQpOnR9ZnVuY3Rpb24gVWUodCl7cmV0dXJuIHQuaXNDb21tZW50JiZ0LmFzeW5jRmFjdG9yeX1mdW5jdGlvbiBxZSh0KXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgbj10W2VdO2lmKGEobikmJihhKG4uY29tcG9uZW50T3B0aW9ucyl8fFVlKG4pKSlyZXR1cm4gbn19ZnVuY3Rpb24gemUodCxlKXtXZS4kb24odCxlKX1mdW5jdGlvbiBZZSh0LGUpe1dlLiRvZmYodCxlKX1mdW5jdGlvbiBYZSh0LGUpe3ZhciBuPVdlO3JldHVybiBmdW5jdGlvbiByKCl7dmFyIGk9ZS5hcHBseShudWxsLGFyZ3VtZW50cyk7bnVsbCE9PWkmJm4uJG9mZih0LHIpfX1mdW5jdGlvbiBHZSh0LGUsbil7V2U9dCxvZShlLG58fHt9LHplLFllLFhlLHQpLFdlPXZvaWQgMH12YXIgUWU9bnVsbDtmdW5jdGlvbiBKZSh0KXt2YXIgZT1RZTtyZXR1cm4gUWU9dCxmdW5jdGlvbigpe1FlPWV9fWZ1bmN0aW9uIEtlKHQpe3doaWxlKHQmJih0PXQuJHBhcmVudCkpaWYodC5faW5hY3RpdmUpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gWmUodCxlKXtpZihlKXtpZih0Ll9kaXJlY3RJbmFjdGl2ZT0hMSxLZSh0KSlyZXR1cm59ZWxzZSBpZih0Ll9kaXJlY3RJbmFjdGl2ZSlyZXR1cm47aWYodC5faW5hY3RpdmV8fG51bGw9PT10Ll9pbmFjdGl2ZSl7dC5faW5hY3RpdmU9ITE7Zm9yKHZhciBuPTA7bjx0LiRjaGlsZHJlbi5sZW5ndGg7bisrKVplKHQuJGNoaWxkcmVuW25dKTt0bih0LCJhY3RpdmF0ZWQiKX19ZnVuY3Rpb24gdG4odCxlKXtkdCgpO3ZhciBuPXQuJG9wdGlvbnNbZV0scj1lKyIgaG9vayI7aWYobilmb3IodmFyIGk9MCxhPW4ubGVuZ3RoO2k8YTtpKyspVnQobltpXSx0LG51bGwsdCxyKTt0Ll9oYXNIb29rRXZlbnQmJnQuJGVtaXQoImhvb2s6IitlKSxodCgpfXZhciBlbj1bXSxubj1bXSxybj17fSxhbj0hMSxvbj0hMSxzbj0wO3ZhciBjbj0wLHVuPURhdGUubm93O2lmKHomJiFRKXt2YXIgbG49d2luZG93LnBlcmZvcm1hbmNlO2xuJiYiZnVuY3Rpb24iPT09dHlwZW9mIGxuLm5vdyYmdW4oKT5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKS50aW1lU3RhbXAmJih1bj1mdW5jdGlvbigpe3JldHVybiBsbi5ub3coKX0pfWZ1bmN0aW9uIGZuKCl7dmFyIHQsZTtmb3IoY249dW4oKSxvbj0hMCxlbi5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LmlkLWUuaWR9KSksc249MDtzbjxlbi5sZW5ndGg7c24rKyl0PWVuW3NuXSx0LmJlZm9yZSYmdC5iZWZvcmUoKSxlPXQuaWQscm5bZV09bnVsbCx0LnJ1bigpO3ZhciBuPW5uLnNsaWNlKCkscj1lbi5zbGljZSgpOyhmdW5jdGlvbigpe3NuPWVuLmxlbmd0aD1ubi5sZW5ndGg9MCxybj17fSxhbj1vbj0hMX0pKCksZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXS5faW5hY3RpdmU9ITAsWmUodFtlXSwhMCl9KG4pLGZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO3doaWxlKGUtLSl7dmFyIG49dFtlXSxyPW4udm07ci5fd2F0Y2hlcj09PW4mJnIuX2lzTW91bnRlZCYmIXIuX2lzRGVzdHJveWVkJiZ0bihyLCJ1cGRhdGVkIil9fShyKSxhdCYmRC5kZXZ0b29scyYmYXQuZW1pdCgiZmx1c2giKX12YXIgZG49MCxobj1mdW5jdGlvbih0LGUsbixyLGkpe3RoaXMudm09dCxpJiYodC5fd2F0Y2hlcj10aGlzKSx0Ll93YXRjaGVycy5wdXNoKHRoaXMpLHI/KHRoaXMuZGVlcD0hIXIuZGVlcCx0aGlzLnVzZXI9ISFyLnVzZXIsdGhpcy5sYXp5PSEhci5sYXp5LHRoaXMuc3luYz0hIXIuc3luYyx0aGlzLmJlZm9yZT1yLmJlZm9yZSk6dGhpcy5kZWVwPXRoaXMudXNlcj10aGlzLmxhenk9dGhpcy5zeW5jPSExLHRoaXMuY2I9bix0aGlzLmlkPSsrZG4sdGhpcy5hY3RpdmU9ITAsdGhpcy5kaXJ0eT10aGlzLmxhenksdGhpcy5kZXBzPVtdLHRoaXMubmV3RGVwcz1bXSx0aGlzLmRlcElkcz1uZXcgc3QsdGhpcy5uZXdEZXBJZHM9bmV3IHN0LHRoaXMuZXhwcmVzc2lvbj0iIiwiZnVuY3Rpb24iPT09dHlwZW9mIGU/dGhpcy5nZXR0ZXI9ZToodGhpcy5nZXR0ZXI9ZnVuY3Rpb24odCl7aWYoIVYudGVzdCh0KSl7dmFyIGU9dC5zcGxpdCgiLiIpO3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7aWYoIXQpcmV0dXJuO3Q9dFtlW25dXX1yZXR1cm4gdH19fShlKSx0aGlzLmdldHRlcnx8KHRoaXMuZ2V0dGVyPU0pKSx0aGlzLnZhbHVlPXRoaXMubGF6eT92b2lkIDA6dGhpcy5nZXQoKX07aG4ucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3ZhciB0O2R0KHRoaXMpO3ZhciBlPXRoaXMudm07dHJ5e3Q9dGhpcy5nZXR0ZXIuY2FsbChlLGUpfWNhdGNoKFVpKXtpZighdGhpcy51c2VyKXRocm93IFVpO0h0KFVpLGUsJ2dldHRlciBmb3Igd2F0Y2hlciAiJyt0aGlzLmV4cHJlc3Npb24rJyInKX1maW5hbGx5e3RoaXMuZGVlcCYmcmUodCksaHQoKSx0aGlzLmNsZWFudXBEZXBzKCl9cmV0dXJuIHR9LGhuLnByb3RvdHlwZS5hZGREZXA9ZnVuY3Rpb24odCl7dmFyIGU9dC5pZDt0aGlzLm5ld0RlcElkcy5oYXMoZSl8fCh0aGlzLm5ld0RlcElkcy5hZGQoZSksdGhpcy5uZXdEZXBzLnB1c2godCksdGhpcy5kZXBJZHMuaGFzKGUpfHx0LmFkZFN1Yih0aGlzKSl9LGhuLnByb3RvdHlwZS5jbGVhbnVwRGVwcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZGVwcy5sZW5ndGg7d2hpbGUodC0tKXt2YXIgZT10aGlzLmRlcHNbdF07dGhpcy5uZXdEZXBJZHMuaGFzKGUuaWQpfHxlLnJlbW92ZVN1Yih0aGlzKX12YXIgbj10aGlzLmRlcElkczt0aGlzLmRlcElkcz10aGlzLm5ld0RlcElkcyx0aGlzLm5ld0RlcElkcz1uLHRoaXMubmV3RGVwSWRzLmNsZWFyKCksbj10aGlzLmRlcHMsdGhpcy5kZXBzPXRoaXMubmV3RGVwcyx0aGlzLm5ld0RlcHM9bix0aGlzLm5ld0RlcHMubGVuZ3RoPTB9LGhuLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXt0aGlzLmxhenk/dGhpcy5kaXJ0eT0hMDp0aGlzLnN5bmM/dGhpcy5ydW4oKTpmdW5jdGlvbih0KXt2YXIgZT10LmlkO2lmKG51bGw9PXJuW2VdKXtpZihybltlXT0hMCxvbil7dmFyIG49ZW4ubGVuZ3RoLTE7d2hpbGUobj5zbiYmZW5bbl0uaWQ+dC5pZCluLS07ZW4uc3BsaWNlKG4rMSwwLHQpfWVsc2UgZW4ucHVzaCh0KTthbnx8KGFuPSEwLGVlKGZuKSl9fSh0aGlzKX0saG4ucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe2lmKHRoaXMuYWN0aXZlKXt2YXIgdD10aGlzLmdldCgpO2lmKHQhPT10aGlzLnZhbHVlfHxjKHQpfHx0aGlzLmRlZXApe3ZhciBlPXRoaXMudmFsdWU7aWYodGhpcy52YWx1ZT10LHRoaXMudXNlcil0cnl7dGhpcy5jYi5jYWxsKHRoaXMudm0sdCxlKX1jYXRjaChVaSl7SHQoVWksdGhpcy52bSwnY2FsbGJhY2sgZm9yIHdhdGNoZXIgIicrdGhpcy5leHByZXNzaW9uKyciJyl9ZWxzZSB0aGlzLmNiLmNhbGwodGhpcy52bSx0LGUpfX19LGhuLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbigpe3RoaXMudmFsdWU9dGhpcy5nZXQoKSx0aGlzLmRpcnR5PSExfSxobi5wcm90b3R5cGUuZGVwZW5kPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5kZXBzLmxlbmd0aDt3aGlsZSh0LS0pdGhpcy5kZXBzW3RdLmRlcGVuZCgpfSxobi5wcm90b3R5cGUudGVhcmRvd249ZnVuY3Rpb24oKXtpZih0aGlzLmFjdGl2ZSl7dGhpcy52bS5faXNCZWluZ0Rlc3Ryb3llZHx8Yih0aGlzLnZtLl93YXRjaGVycyx0aGlzKTt2YXIgdD10aGlzLmRlcHMubGVuZ3RoO3doaWxlKHQtLSl0aGlzLmRlcHNbdF0ucmVtb3ZlU3ViKHRoaXMpO3RoaXMuYWN0aXZlPSExfX07dmFyIHBuPXtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6TSxzZXQ6TX07ZnVuY3Rpb24gdm4odCxlLG4pe3BuLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzW2VdW25dfSxwbi5zZXQ9ZnVuY3Rpb24odCl7dGhpc1tlXVtuXT10fSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxuLHBuKX1mdW5jdGlvbiBnbih0KXt0Ll93YXRjaGVycz1bXTt2YXIgZT10LiRvcHRpb25zO2UucHJvcHMmJmZ1bmN0aW9uKHQsZSl7dmFyIG49dC4kb3B0aW9ucy5wcm9wc0RhdGF8fHt9LHI9dC5fcHJvcHM9e30saT10LiRvcHRpb25zLl9wcm9wS2V5cz1bXSxhPSF0LiRwYXJlbnQ7YXx8U3QoITEpO3ZhciBvPWZ1bmN0aW9uKGEpe2kucHVzaChhKTt2YXIgbz1CdChhLGUsbix0KTtrdChyLGEsbyksYSBpbiB0fHx2bih0LCJfcHJvcHMiLGEpfTtmb3IodmFyIHMgaW4gZSlvKHMpO1N0KCEwKX0odCxlLnByb3BzKSxlLm1ldGhvZHMmJmZ1bmN0aW9uKHQsZSl7dC4kb3B0aW9ucy5wcm9wcztmb3IodmFyIG4gaW4gZSl0W25dPSJmdW5jdGlvbiIhPT10eXBlb2YgZVtuXT9NOk8oZVtuXSx0KX0odCxlLm1ldGhvZHMpLGUuZGF0YT9mdW5jdGlvbih0KXt2YXIgZT10LiRvcHRpb25zLmRhdGE7ZT10Ll9kYXRhPSJmdW5jdGlvbiI9PT10eXBlb2YgZT9mdW5jdGlvbih0LGUpe2R0KCk7dHJ5e3JldHVybiB0LmNhbGwoZSxlKX1jYXRjaChVaSl7cmV0dXJuIEh0KFVpLGUsImRhdGEoKSIpLHt9fWZpbmFsbHl7aHQoKX19KGUsdCk6ZXx8e30sbChlKXx8KGU9e30pO3ZhciBuPU9iamVjdC5rZXlzKGUpLHI9dC4kb3B0aW9ucy5wcm9wcyxpPSh0LiRvcHRpb25zLm1ldGhvZHMsbi5sZW5ndGgpO3doaWxlKGktLSl7dmFyIGE9bltpXTswLHImJl8ocixhKXx8VyhhKXx8dm4odCwiX2RhdGEiLGEpfUN0KGUsITApfSh0KTpDdCh0Ll9kYXRhPXt9LCEwKSxlLmNvbXB1dGVkJiZmdW5jdGlvbih0LGUpe3ZhciBuPXQuX2NvbXB1dGVkV2F0Y2hlcnM9T2JqZWN0LmNyZWF0ZShudWxsKSxyPWl0KCk7Zm9yKHZhciBpIGluIGUpe3ZhciBhPWVbaV0sbz0iZnVuY3Rpb24iPT09dHlwZW9mIGE/YTphLmdldDswLHJ8fChuW2ldPW5ldyBobih0LG98fE0sTSxtbikpLGkgaW4gdHx8Ym4odCxpLGEpfX0odCxlLmNvbXB1dGVkKSxlLndhdGNoJiZlLndhdGNoIT09ZXQmJmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpe3ZhciByPWVbbl07aWYoQXJyYXkuaXNBcnJheShyKSlmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKyl3bih0LG4scltpXSk7ZWxzZSB3bih0LG4scil9fSh0LGUud2F0Y2gpfXZhciBtbj17bGF6eTohMH07ZnVuY3Rpb24gYm4odCxlLG4pe3ZhciByPSFpdCgpOyJmdW5jdGlvbiI9PT10eXBlb2Ygbj8ocG4uZ2V0PXI/eW4oZSk6X24obikscG4uc2V0PU0pOihwbi5nZXQ9bi5nZXQ/ciYmITEhPT1uLmNhY2hlP3luKGUpOl9uKG4uZ2V0KTpNLHBuLnNldD1uLnNldHx8TSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxwbil9ZnVuY3Rpb24geW4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fY29tcHV0ZWRXYXRjaGVycyYmdGhpcy5fY29tcHV0ZWRXYXRjaGVyc1t0XTtpZihlKXJldHVybiBlLmRpcnR5JiZlLmV2YWx1YXRlKCksZnQuU2hhcmVkT2JqZWN0LnRhcmdldCYmZS5kZXBlbmQoKSxlLnZhbHVlfX1mdW5jdGlvbiBfbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5jYWxsKHRoaXMsdGhpcyl9fWZ1bmN0aW9uIHduKHQsZSxuLHIpe3JldHVybiBsKG4pJiYocj1uLG49bi5oYW5kbGVyKSwic3RyaW5nIj09PXR5cGVvZiBuJiYobj10W25dKSx0LiR3YXRjaChlLG4scil9dmFyIHhuPTA7ZnVuY3Rpb24gU24odCl7dmFyIGU9dC5vcHRpb25zO2lmKHQuc3VwZXIpe3ZhciBuPVNuKHQuc3VwZXIpLHI9dC5zdXBlck9wdGlvbnM7aWYobiE9PXIpe3Quc3VwZXJPcHRpb25zPW47dmFyIGk9ZnVuY3Rpb24odCl7dmFyIGUsbj10Lm9wdGlvbnMscj10LnNlYWxlZE9wdGlvbnM7Zm9yKHZhciBpIGluIG4pbltpXSE9PXJbaV0mJihlfHwoZT17fSksZVtpXT1uW2ldKTtyZXR1cm4gZX0odCk7aSYmSSh0LmV4dGVuZE9wdGlvbnMsaSksZT10Lm9wdGlvbnM9UnQobix0LmV4dGVuZE9wdGlvbnMpLGUubmFtZSYmKGUuY29tcG9uZW50c1tlLm5hbWVdPXQpfX1yZXR1cm4gZX1mdW5jdGlvbiBUbih0KXt0aGlzLl9pbml0KHQpfWZ1bmN0aW9uIENuKHQpe3QuY2lkPTA7dmFyIGU9MTt0LmV4dGVuZD1mdW5jdGlvbih0KXt0PXR8fHt9O3ZhciBuPXRoaXMscj1uLmNpZCxpPXQuX0N0b3J8fCh0Ll9DdG9yPXt9KTtpZihpW3JdKXJldHVybiBpW3JdO3ZhciBhPXQubmFtZXx8bi5vcHRpb25zLm5hbWU7dmFyIG89ZnVuY3Rpb24odCl7dGhpcy5faW5pdCh0KX07cmV0dXJuIG8ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUpLG8ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW8sby5jaWQ9ZSsrLG8ub3B0aW9ucz1SdChuLm9wdGlvbnMsdCksb1sic3VwZXIiXT1uLG8ub3B0aW9ucy5wcm9wcyYmZnVuY3Rpb24odCl7dmFyIGU9dC5vcHRpb25zLnByb3BzO2Zvcih2YXIgbiBpbiBlKXZuKHQucHJvdG90eXBlLCJfcHJvcHMiLG4pfShvKSxvLm9wdGlvbnMuY29tcHV0ZWQmJmZ1bmN0aW9uKHQpe3ZhciBlPXQub3B0aW9ucy5jb21wdXRlZDtmb3IodmFyIG4gaW4gZSlibih0LnByb3RvdHlwZSxuLGVbbl0pfShvKSxvLmV4dGVuZD1uLmV4dGVuZCxvLm1peGluPW4ubWl4aW4sby51c2U9bi51c2UsTi5mb3JFYWNoKChmdW5jdGlvbih0KXtvW3RdPW5bdF19KSksYSYmKG8ub3B0aW9ucy5jb21wb25lbnRzW2FdPW8pLG8uc3VwZXJPcHRpb25zPW4ub3B0aW9ucyxvLmV4dGVuZE9wdGlvbnM9dCxvLnNlYWxlZE9wdGlvbnM9SSh7fSxvLm9wdGlvbnMpLGlbcl09byxvfX1mdW5jdGlvbiBrbih0KXtyZXR1cm4gdCYmKHQuQ3Rvci5vcHRpb25zLm5hbWV8fHQudGFnKX1mdW5jdGlvbiBPbih0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QuaW5kZXhPZihlKT4tMToic3RyaW5nIj09PXR5cGVvZiB0P3Quc3BsaXQoIiwiKS5pbmRleE9mKGUpPi0xOiEhZih0KSYmdC50ZXN0KGUpfWZ1bmN0aW9uIEVuKHQsZSl7dmFyIG49dC5jYWNoZSxyPXQua2V5cyxpPXQuX3Zub2RlO2Zvcih2YXIgYSBpbiBuKXt2YXIgbz1uW2FdO2lmKG8pe3ZhciBzPWtuKG8uY29tcG9uZW50T3B0aW9ucyk7cyYmIWUocykmJkluKG4sYSxyLGkpfX19ZnVuY3Rpb24gSW4odCxlLG4scil7dmFyIGk9dFtlXTshaXx8ciYmaS50YWc9PT1yLnRhZ3x8aS5jb21wb25lbnRJbnN0YW5jZS4kZGVzdHJveSgpLHRbZV09bnVsbCxiKG4sZSl9KGZ1bmN0aW9uKHQpe3QucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7ZS5fdWlkPXhuKyssZS5faXNWdWU9ITAsdCYmdC5faXNDb21wb25lbnQ/ZnVuY3Rpb24odCxlKXt2YXIgbj10LiRvcHRpb25zPU9iamVjdC5jcmVhdGUodC5jb25zdHJ1Y3Rvci5vcHRpb25zKSxyPWUuX3BhcmVudFZub2RlO24ucGFyZW50PWUucGFyZW50LG4uX3BhcmVudFZub2RlPXI7dmFyIGk9ci5jb21wb25lbnRPcHRpb25zO24ucHJvcHNEYXRhPWkucHJvcHNEYXRhLG4uX3BhcmVudExpc3RlbmVycz1pLmxpc3RlbmVycyxuLl9yZW5kZXJDaGlsZHJlbj1pLmNoaWxkcmVuLG4uX2NvbXBvbmVudFRhZz1pLnRhZyxlLnJlbmRlciYmKG4ucmVuZGVyPWUucmVuZGVyLG4uc3RhdGljUmVuZGVyRm5zPWUuc3RhdGljUmVuZGVyRm5zKX0oZSx0KTplLiRvcHRpb25zPVJ0KFNuKGUuY29uc3RydWN0b3IpLHR8fHt9LGUpLGUuX3JlbmRlclByb3h5PWUsZS5fc2VsZj1lLGZ1bmN0aW9uKHQpe3ZhciBlPXQuJG9wdGlvbnMsbj1lLnBhcmVudDtpZihuJiYhZS5hYnN0cmFjdCl7d2hpbGUobi4kb3B0aW9ucy5hYnN0cmFjdCYmbi4kcGFyZW50KW49bi4kcGFyZW50O24uJGNoaWxkcmVuLnB1c2godCl9dC4kcGFyZW50PW4sdC4kcm9vdD1uP24uJHJvb3Q6dCx0LiRjaGlsZHJlbj1bXSx0LiRyZWZzPXt9LHQuX3dhdGNoZXI9bnVsbCx0Ll9pbmFjdGl2ZT1udWxsLHQuX2RpcmVjdEluYWN0aXZlPSExLHQuX2lzTW91bnRlZD0hMSx0Ll9pc0Rlc3Ryb3llZD0hMSx0Ll9pc0JlaW5nRGVzdHJveWVkPSExfShlKSxmdW5jdGlvbih0KXt0Ll9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0Ll9oYXNIb29rRXZlbnQ9ITE7dmFyIGU9dC4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO2UmJkdlKHQsZSl9KGUpLGZ1bmN0aW9uKHQpe3QuX3Zub2RlPW51bGwsdC5fc3RhdGljVHJlZXM9bnVsbDt2YXIgZT10LiRvcHRpb25zLG49dC4kdm5vZGU9ZS5fcGFyZW50Vm5vZGUsaT1uJiZuLmNvbnRleHQ7dC4kc2xvdHM9aGUoZS5fcmVuZGVyQ2hpbGRyZW4saSksdC4kc2NvcGVkU2xvdHM9cix0Ll9jPWZ1bmN0aW9uKGUsbixyLGkpe3JldHVybiBGZSh0LGUsbixyLGksITEpfSx0LiRjcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGUsbixyLGkpe3JldHVybiBGZSh0LGUsbixyLGksITApfTt2YXIgYT1uJiZuLmRhdGE7a3QodCwiJGF0dHJzIixhJiZhLmF0dHJzfHxyLG51bGwsITApLGt0KHQsIiRsaXN0ZW5lcnMiLGUuX3BhcmVudExpc3RlbmVyc3x8cixudWxsLCEwKX0oZSksdG4oZSwiYmVmb3JlQ3JlYXRlIiksIWUuXyRmYWxsYmFjayYmZnVuY3Rpb24odCl7dmFyIGU9ZGUodC4kb3B0aW9ucy5pbmplY3QsdCk7ZSYmKFN0KCExKSxPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihuKXtrdCh0LG4sZVtuXSl9KSksU3QoITApKX0oZSksZ24oZSksIWUuXyRmYWxsYmFjayYmZnVuY3Rpb24odCl7dmFyIGU9dC4kb3B0aW9ucy5wcm92aWRlO2UmJih0Ll9wcm92aWRlZD0iZnVuY3Rpb24iPT09dHlwZW9mIGU/ZS5jYWxsKHQpOmUpfShlKSwhZS5fJGZhbGxiYWNrJiZ0bihlLCJjcmVhdGVkIiksZS4kb3B0aW9ucy5lbCYmZS4kbW91bnQoZS4kb3B0aW9ucy5lbCl9fSkoVG4pLGZ1bmN0aW9uKHQpe3ZhciBlPXtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGF0YX19LG49e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wcm9wc319O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiJGRhdGEiLGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiJHByb3BzIixuKSx0LnByb3RvdHlwZS4kc2V0PU90LHQucHJvdG90eXBlLiRkZWxldGU9RXQsdC5wcm90b3R5cGUuJHdhdGNoPWZ1bmN0aW9uKHQsZSxuKXtpZihsKGUpKXJldHVybiB3bih0aGlzLHQsZSxuKTtuPW58fHt9LG4udXNlcj0hMDt2YXIgcj1uZXcgaG4odGhpcyx0LGUsbik7aWYobi5pbW1lZGlhdGUpdHJ5e2UuY2FsbCh0aGlzLHIudmFsdWUpfWNhdGNoKGkpe0h0KGksdGhpcywnY2FsbGJhY2sgZm9yIGltbWVkaWF0ZSB3YXRjaGVyICInK3IuZXhwcmVzc2lvbisnIicpfXJldHVybiBmdW5jdGlvbigpe3IudGVhcmRvd24oKX19fShUbiksZnVuY3Rpb24odCl7dmFyIGU9L15ob29rOi87dC5wcm90b3R5cGUuJG9uPWZ1bmN0aW9uKHQsbil7dmFyIHI9dGhpcztpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgaT0wLGE9dC5sZW5ndGg7aTxhO2krKylyLiRvbih0W2ldLG4pO2Vsc2Uoci5fZXZlbnRzW3RdfHwoci5fZXZlbnRzW3RdPVtdKSkucHVzaChuKSxlLnRlc3QodCkmJihyLl9oYXNIb29rRXZlbnQ9ITApO3JldHVybiByfSx0LnByb3RvdHlwZS4kb25jZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7ZnVuY3Rpb24gcigpe24uJG9mZih0LHIpLGUuYXBwbHkobixhcmd1bWVudHMpfXJldHVybiByLmZuPWUsbi4kb24odCxyKSxufSx0LnByb3RvdHlwZS4kb2ZmPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbi5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksbjtpZihBcnJheS5pc0FycmF5KHQpKXtmb3IodmFyIHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspbi4kb2ZmKHRbcl0sZSk7cmV0dXJuIG59dmFyIGEsbz1uLl9ldmVudHNbdF07aWYoIW8pcmV0dXJuIG47aWYoIWUpcmV0dXJuIG4uX2V2ZW50c1t0XT1udWxsLG47dmFyIHM9by5sZW5ndGg7d2hpbGUocy0tKWlmKGE9b1tzXSxhPT09ZXx8YS5mbj09PWUpe28uc3BsaWNlKHMsMSk7YnJlYWt9cmV0dXJuIG59LHQucHJvdG90eXBlLiRlbWl0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1lLl9ldmVudHNbdF07aWYobil7bj1uLmxlbmd0aD4xP0Uobik6bjtmb3IodmFyIHI9RShhcmd1bWVudHMsMSksaT0nZXZlbnQgaGFuZGxlciBmb3IgIicrdCsnIicsYT0wLG89bi5sZW5ndGg7YTxvO2ErKylWdChuW2FdLGUscixlLGkpfXJldHVybiBlfX0oVG4pLGZ1bmN0aW9uKHQpe3QucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLHI9bi4kZWwsaT1uLl92bm9kZSxhPUplKG4pO24uX3Zub2RlPXQsbi4kZWw9aT9uLl9fcGF0Y2hfXyhpLHQpOm4uX19wYXRjaF9fKG4uJGVsLHQsZSwhMSksYSgpLHImJihyLl9fdnVlX189bnVsbCksbi4kZWwmJihuLiRlbC5fX3Z1ZV9fPW4pLG4uJHZub2RlJiZuLiRwYXJlbnQmJm4uJHZub2RlPT09bi4kcGFyZW50Ll92bm9kZSYmKG4uJHBhcmVudC4kZWw9bi4kZWwpfSx0LnByb3RvdHlwZS4kZm9yY2VVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl93YXRjaGVyJiZ0aGlzLl93YXRjaGVyLnVwZGF0ZSgpfSx0LnByb3RvdHlwZS4kZGVzdHJveT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXQuX2lzQmVpbmdEZXN0cm95ZWQpe3RuKHQsImJlZm9yZURlc3Ryb3kiKSx0Ll9pc0JlaW5nRGVzdHJveWVkPSEwO3ZhciBlPXQuJHBhcmVudDshZXx8ZS5faXNCZWluZ0Rlc3Ryb3llZHx8dC4kb3B0aW9ucy5hYnN0cmFjdHx8YihlLiRjaGlsZHJlbix0KSx0Ll93YXRjaGVyJiZ0Ll93YXRjaGVyLnRlYXJkb3duKCk7dmFyIG49dC5fd2F0Y2hlcnMubGVuZ3RoO3doaWxlKG4tLSl0Ll93YXRjaGVyc1tuXS50ZWFyZG93bigpO3QuX2RhdGEuX19vYl9fJiZ0Ll9kYXRhLl9fb2JfXy52bUNvdW50LS0sdC5faXNEZXN0cm95ZWQ9ITAsdC5fX3BhdGNoX18odC5fdm5vZGUsbnVsbCksdG4odCwiZGVzdHJveWVkIiksdC4kb2ZmKCksdC4kZWwmJih0LiRlbC5fX3Z1ZV9fPW51bGwpLHQuJHZub2RlJiYodC4kdm5vZGUucGFyZW50PW51bGwpfX19KFRuKSxmdW5jdGlvbih0KXtBZSh0LnByb3RvdHlwZSksdC5wcm90b3R5cGUuJG5leHRUaWNrPWZ1bmN0aW9uKHQpe3JldHVybiBlZSh0LHRoaXMpfSx0LnByb3RvdHlwZS5fcmVuZGVyPWZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLG49ZS4kb3B0aW9ucyxyPW4ucmVuZGVyLGk9bi5fcGFyZW50Vm5vZGU7aSYmKGUuJHNjb3BlZFNsb3RzPXZlKGkuZGF0YS5zY29wZWRTbG90cyxlLiRzbG90cyxlLiRzY29wZWRTbG90cykpLGUuJHZub2RlPWk7dHJ5e0hlPWUsdD1yLmNhbGwoZS5fcmVuZGVyUHJveHksZS4kY3JlYXRlRWxlbWVudCl9Y2F0Y2goVWkpe0h0KFVpLGUsInJlbmRlciIpLHQ9ZS5fdm5vZGV9ZmluYWxseXtIZT1udWxsfXJldHVybiBBcnJheS5pc0FycmF5KHQpJiYxPT09dC5sZW5ndGgmJih0PXRbMF0pLHQgaW5zdGFuY2VvZiBwdHx8KHQ9Z3QoKSksdC5wYXJlbnQ9aSx0fX0oVG4pO3ZhciBQbj1bU3RyaW5nLFJlZ0V4cCxBcnJheV0sTW49e25hbWU6ImtlZXAtYWxpdmUiLGFic3RyYWN0OiEwLHByb3BzOntpbmNsdWRlOlBuLGV4Y2x1ZGU6UG4sbWF4OltTdHJpbmcsTnVtYmVyXX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY2FjaGU9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmtleXM9W119LGRlc3Ryb3llZDpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzLmNhY2hlKUluKHRoaXMuY2FjaGUsdCx0aGlzLmtleXMpfSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiR3YXRjaCgiaW5jbHVkZSIsKGZ1bmN0aW9uKGUpe0VuKHQsKGZ1bmN0aW9uKHQpe3JldHVybiBPbihlLHQpfSkpfSkpLHRoaXMuJHdhdGNoKCJleGNsdWRlIiwoZnVuY3Rpb24oZSl7RW4odCwoZnVuY3Rpb24odCl7cmV0dXJuIU9uKGUsdCl9KSl9KSl9LHJlbmRlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJHNsb3RzLmRlZmF1bHQsZT1xZSh0KSxuPWUmJmUuY29tcG9uZW50T3B0aW9ucztpZihuKXt2YXIgcj1rbihuKSxpPXRoaXMuaW5jbHVkZSxhPXRoaXMuZXhjbHVkZTtpZihpJiYoIXJ8fCFPbihpLHIpKXx8YSYmciYmT24oYSxyKSlyZXR1cm4gZTt2YXIgbz10aGlzLmNhY2hlLHM9dGhpcy5rZXlzLGM9bnVsbD09ZS5rZXk/bi5DdG9yLmNpZCsobi50YWc/Ijo6IituLnRhZzoiIik6ZS5rZXk7b1tjXT8oZS5jb21wb25lbnRJbnN0YW5jZT1vW2NdLmNvbXBvbmVudEluc3RhbmNlLGIocyxjKSxzLnB1c2goYykpOihvW2NdPWUscy5wdXNoKGMpLHRoaXMubWF4JiZzLmxlbmd0aD5wYXJzZUludCh0aGlzLm1heCkmJkluKG8sc1swXSxzLHRoaXMuX3Zub2RlKSksZS5kYXRhLmtlZXBBbGl2ZT0hMH1yZXR1cm4gZXx8dCYmdFswXX19LEFuPXtLZWVwQWxpdmU6TW59OyhmdW5jdGlvbih0KXt2YXIgZT17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIER9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiY29uZmlnIixlKSx0LnV0aWw9e3dhcm46dXQsZXh0ZW5kOkksbWVyZ2VPcHRpb25zOlJ0LGRlZmluZVJlYWN0aXZlOmt0fSx0LnNldD1PdCx0LmRlbGV0ZT1FdCx0Lm5leHRUaWNrPWVlLHQub2JzZXJ2YWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gQ3QodCksdH0sdC5vcHRpb25zPU9iamVjdC5jcmVhdGUobnVsbCksTi5mb3JFYWNoKChmdW5jdGlvbihlKXt0Lm9wdGlvbnNbZSsicyJdPU9iamVjdC5jcmVhdGUobnVsbCl9KSksdC5vcHRpb25zLl9iYXNlPXQsSSh0Lm9wdGlvbnMuY29tcG9uZW50cyxBbiksZnVuY3Rpb24odCl7dC51c2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5faW5zdGFsbGVkUGx1Z2luc3x8KHRoaXMuX2luc3RhbGxlZFBsdWdpbnM9W10pO2lmKGUuaW5kZXhPZih0KT4tMSlyZXR1cm4gdGhpczt2YXIgbj1FKGFyZ3VtZW50cywxKTtyZXR1cm4gbi51bnNoaWZ0KHRoaXMpLCJmdW5jdGlvbiI9PT10eXBlb2YgdC5pbnN0YWxsP3QuaW5zdGFsbC5hcHBseSh0LG4pOiJmdW5jdGlvbiI9PT10eXBlb2YgdCYmdC5hcHBseShudWxsLG4pLGUucHVzaCh0KSx0aGlzfX0odCksZnVuY3Rpb24odCl7dC5taXhpbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zPVJ0KHRoaXMub3B0aW9ucyx0KSx0aGlzfX0odCksQ24odCksZnVuY3Rpb24odCl7Ti5mb3JFYWNoKChmdW5jdGlvbihlKXt0W2VdPWZ1bmN0aW9uKHQsbil7cmV0dXJuIG4/KCJjb21wb25lbnQiPT09ZSYmbChuKSYmKG4ubmFtZT1uLm5hbWV8fHQsbj10aGlzLm9wdGlvbnMuX2Jhc2UuZXh0ZW5kKG4pKSwiZGlyZWN0aXZlIj09PWUmJiJmdW5jdGlvbiI9PT10eXBlb2YgbiYmKG49e2JpbmQ6bix1cGRhdGU6bn0pLHRoaXMub3B0aW9uc1tlKyJzIl1bdF09bixuKTp0aGlzLm9wdGlvbnNbZSsicyJdW3RdfX0pKX0odCl9KShUbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KFRuLnByb3RvdHlwZSwiJGlzU2VydmVyIix7Z2V0Oml0fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFRuLnByb3RvdHlwZSwiJHNzckNvbnRleHQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kdm5vZGUmJnRoaXMuJHZub2RlLnNzckNvbnRleHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFRuLCJGdW5jdGlvbmFsUmVuZGVyQ29udGV4dCIse3ZhbHVlOiRlfSksVG4udmVyc2lvbj0iMi42LjExIjt2YXIgJG49Zygic3R5bGUsY2xhc3MiKSxMbj1nKCJpbnB1dCx0ZXh0YXJlYSxvcHRpb24sc2VsZWN0LHByb2dyZXNzIiksam49ZygiY29udGVudGVkaXRhYmxlLGRyYWdnYWJsZSxzcGVsbGNoZWNrIiksUm49ZygiZXZlbnRzLGNhcmV0LHR5cGluZyxwbGFpbnRleHQtb25seSIpLE5uPWcoImFsbG93ZnVsbHNjcmVlbixhc3luYyxhdXRvZm9jdXMsYXV0b3BsYXksY2hlY2tlZCxjb21wYWN0LGNvbnRyb2xzLGRlY2xhcmUsZGVmYXVsdCxkZWZhdWx0Y2hlY2tlZCxkZWZhdWx0bXV0ZWQsZGVmYXVsdHNlbGVjdGVkLGRlZmVyLGRpc2FibGVkLGVuYWJsZWQsZm9ybW5vdmFsaWRhdGUsaGlkZGVuLGluZGV0ZXJtaW5hdGUsaW5lcnQsaXNtYXAsaXRlbXNjb3BlLGxvb3AsbXVsdGlwbGUsbXV0ZWQsbm9ocmVmLG5vcmVzaXplLG5vc2hhZGUsbm92YWxpZGF0ZSxub3dyYXAsb3BlbixwYXVzZW9uZXhpdCxyZWFkb25seSxyZXF1aXJlZCxyZXZlcnNlZCxzY29wZWQsc2VhbWxlc3Msc2VsZWN0ZWQsc29ydGFibGUsdHJhbnNsYXRlLHRydWVzcGVlZCx0eXBlbXVzdG1hdGNoLHZpc2libGUiKSxCbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsRG49ZnVuY3Rpb24odCl7cmV0dXJuIjoiPT09dC5jaGFyQXQoNSkmJiJ4bGluayI9PT10LnNsaWNlKDAsNSl9LEZuPWZ1bmN0aW9uKHQpe3JldHVybiBEbih0KT90LnNsaWNlKDYsdC5sZW5ndGgpOiIifSxXbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dHx8ITE9PT10fTtmdW5jdGlvbiBIbih0KXt2YXIgZT10LmRhdGEsbj10LHI9dDt3aGlsZShhKHIuY29tcG9uZW50SW5zdGFuY2UpKXI9ci5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUsciYmci5kYXRhJiYoZT1WbihyLmRhdGEsZSkpO3doaWxlKGEobj1uLnBhcmVudCkpbiYmbi5kYXRhJiYoZT1WbihlLG4uZGF0YSkpO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKGEodCl8fGEoZSkpcmV0dXJuIFVuKHQscW4oZSkpO3JldHVybiIifShlLnN0YXRpY0NsYXNzLGUuY2xhc3MpfWZ1bmN0aW9uIFZuKHQsZSl7cmV0dXJue3N0YXRpY0NsYXNzOlVuKHQuc3RhdGljQ2xhc3MsZS5zdGF0aWNDbGFzcyksY2xhc3M6YSh0LmNsYXNzKT9bdC5jbGFzcyxlLmNsYXNzXTplLmNsYXNzfX1mdW5jdGlvbiBVbih0LGUpe3JldHVybiB0P2U/dCsiICIrZTp0OmV8fCIifWZ1bmN0aW9uIHFuKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPSIiLHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspYShlPXFuKHRbcl0pKSYmIiIhPT1lJiYobiYmKG4rPSIgIiksbis9ZSk7cmV0dXJuIG59KHQpOmModCk/ZnVuY3Rpb24odCl7dmFyIGU9IiI7Zm9yKHZhciBuIGluIHQpdFtuXSYmKGUmJihlKz0iICIpLGUrPW4pO3JldHVybiBlfSh0KToic3RyaW5nIj09PXR5cGVvZiB0P3Q6IiJ9dmFyIHpuPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixtYXRoOiJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIn0sWW49ZygiaHRtbCxib2R5LGJhc2UsaGVhZCxsaW5rLG1ldGEsc3R5bGUsdGl0bGUsYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGZvb3RlcixoZWFkZXIsaDEsaDIsaDMsaDQsaDUsaDYsaGdyb3VwLG5hdixzZWN0aW9uLGRpdixkZCxkbCxkdCxmaWdjYXB0aW9uLGZpZ3VyZSxwaWN0dXJlLGhyLGltZyxsaSxtYWluLG9sLHAscHJlLHVsLGEsYixhYmJyLGJkaSxiZG8sYnIsY2l0ZSxjb2RlLGRhdGEsZGZuLGVtLGksa2JkLG1hcmsscSxycCxydCxydGMscnVieSxzLHNhbXAsc21hbGwsc3BhbixzdHJvbmcsc3ViLHN1cCx0aW1lLHUsdmFyLHdicixhcmVhLGF1ZGlvLG1hcCx0cmFjayx2aWRlbyxlbWJlZCxvYmplY3QscGFyYW0sc291cmNlLGNhbnZhcyxzY3JpcHQsbm9zY3JpcHQsZGVsLGlucyxjYXB0aW9uLGNvbCxjb2xncm91cCx0YWJsZSx0aGVhZCx0Ym9keSx0ZCx0aCx0cixidXR0b24sZGF0YWxpc3QsZmllbGRzZXQsZm9ybSxpbnB1dCxsYWJlbCxsZWdlbmQsbWV0ZXIsb3B0Z3JvdXAsb3B0aW9uLG91dHB1dCxwcm9ncmVzcyxzZWxlY3QsdGV4dGFyZWEsZGV0YWlscyxkaWFsb2csbWVudSxtZW51aXRlbSxzdW1tYXJ5LGNvbnRlbnQsZWxlbWVudCxzaGFkb3csdGVtcGxhdGUsYmxvY2txdW90ZSxpZnJhbWUsdGZvb3QiKSxYbj1nKCJzdmcsYW5pbWF0ZSxjaXJjbGUsY2xpcHBhdGgsY3Vyc29yLGRlZnMsZGVzYyxlbGxpcHNlLGZpbHRlcixmb250LWZhY2UsZm9yZWlnbk9iamVjdCxnLGdseXBoLGltYWdlLGxpbmUsbWFya2VyLG1hc2ssbWlzc2luZy1nbHlwaCxwYXRoLHBhdHRlcm4scG9seWdvbixwb2x5bGluZSxyZWN0LHN3aXRjaCxzeW1ib2wsdGV4dCx0ZXh0cGF0aCx0c3Bhbix1c2UsdmlldyIsITApLEduPWZ1bmN0aW9uKHQpe3JldHVybiBZbih0KXx8WG4odCl9O3ZhciBRbj1PYmplY3QuY3JlYXRlKG51bGwpO3ZhciBKbj1nKCJ0ZXh0LG51bWJlcixwYXNzd29yZCxzZWFyY2gsZW1haWwsdGVsLHVybCIpO3ZhciBLbj1PYmplY3QuZnJlZXplKHtjcmVhdGVFbGVtZW50OmZ1bmN0aW9uKHQsZSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KTtyZXR1cm4ic2VsZWN0IiE9PXR8fGUuZGF0YSYmZS5kYXRhLmF0dHJzJiZ2b2lkIDAhPT1lLmRhdGEuYXR0cnMubXVsdGlwbGUmJm4uc2V0QXR0cmlidXRlKCJtdWx0aXBsZSIsIm11bHRpcGxlIiksbn0sY3JlYXRlRWxlbWVudE5TOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh6blt0XSxlKX0sY3JlYXRlVGV4dE5vZGU6ZnVuY3Rpb24odCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQpfSxjcmVhdGVDb21tZW50OmZ1bmN0aW9uKHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVDb21tZW50KHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCxlLG4pe3QuaW5zZXJ0QmVmb3JlKGUsbil9LHJlbW92ZUNoaWxkOmZ1bmN0aW9uKHQsZSl7dC5yZW1vdmVDaGlsZChlKX0sYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24odCxlKXt0LmFwcGVuZENoaWxkKGUpfSxwYXJlbnROb2RlOmZ1bmN0aW9uKHQpe3JldHVybiB0LnBhcmVudE5vZGV9LG5leHRTaWJsaW5nOmZ1bmN0aW9uKHQpe3JldHVybiB0Lm5leHRTaWJsaW5nfSx0YWdOYW1lOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRhZ05hbWV9LHNldFRleHRDb250ZW50OmZ1bmN0aW9uKHQsZSl7dC50ZXh0Q29udGVudD1lfSxzZXRTdHlsZVNjb3BlOmZ1bmN0aW9uKHQsZSl7dC5zZXRBdHRyaWJ1dGUoZSwiIil9fSksWm49e2NyZWF0ZTpmdW5jdGlvbih0LGUpe3RyKGUpfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXt0LmRhdGEucmVmIT09ZS5kYXRhLnJlZiYmKHRyKHQsITApLHRyKGUpKX0sZGVzdHJveTpmdW5jdGlvbih0KXt0cih0LCEwKX19O2Z1bmN0aW9uIHRyKHQsZSl7dmFyIG49dC5kYXRhLnJlZjtpZihhKG4pKXt2YXIgcj10LmNvbnRleHQsaT10LmNvbXBvbmVudEluc3RhbmNlfHx0LmVsbSxvPXIuJHJlZnM7ZT9BcnJheS5pc0FycmF5KG9bbl0pP2Iob1tuXSxpKTpvW25dPT09aSYmKG9bbl09dm9pZCAwKTp0LmRhdGEucmVmSW5Gb3I/QXJyYXkuaXNBcnJheShvW25dKT9vW25dLmluZGV4T2YoaSk8MCYmb1tuXS5wdXNoKGkpOm9bbl09W2ldOm9bbl09aX19dmFyIGVyPW5ldyBwdCgiIix7fSxbXSksbnI9WyJjcmVhdGUiLCJhY3RpdmF0ZSIsInVwZGF0ZSIsInJlbW92ZSIsImRlc3Ryb3kiXTtmdW5jdGlvbiBycih0LGUpe3JldHVybiB0LmtleT09PWUua2V5JiYodC50YWc9PT1lLnRhZyYmdC5pc0NvbW1lbnQ9PT1lLmlzQ29tbWVudCYmYSh0LmRhdGEpPT09YShlLmRhdGEpJiZmdW5jdGlvbih0LGUpe2lmKCJpbnB1dCIhPT10LnRhZylyZXR1cm4hMDt2YXIgbixyPWEobj10LmRhdGEpJiZhKG49bi5hdHRycykmJm4udHlwZSxpPWEobj1lLmRhdGEpJiZhKG49bi5hdHRycykmJm4udHlwZTtyZXR1cm4gcj09PWl8fEpuKHIpJiZKbihpKX0odCxlKXx8byh0LmlzQXN5bmNQbGFjZWhvbGRlcikmJnQuYXN5bmNGYWN0b3J5PT09ZS5hc3luY0ZhY3RvcnkmJmkoZS5hc3luY0ZhY3RvcnkuZXJyb3IpKX1mdW5jdGlvbiBpcih0LGUsbil7dmFyIHIsaSxvPXt9O2ZvcihyPWU7cjw9bjsrK3IpaT10W3JdLmtleSxhKGkpJiYob1tpXT1yKTtyZXR1cm4gb312YXIgYXI9e2NyZWF0ZTpvcix1cGRhdGU6b3IsZGVzdHJveTpmdW5jdGlvbih0KXtvcih0LGVyKX19O2Z1bmN0aW9uIG9yKHQsZSl7KHQuZGF0YS5kaXJlY3RpdmVzfHxlLmRhdGEuZGlyZWN0aXZlcykmJmZ1bmN0aW9uKHQsZSl7dmFyIG4scixpLGE9dD09PWVyLG89ZT09PWVyLHM9Y3IodC5kYXRhLmRpcmVjdGl2ZXMsdC5jb250ZXh0KSxjPWNyKGUuZGF0YS5kaXJlY3RpdmVzLGUuY29udGV4dCksdT1bXSxsPVtdO2ZvcihuIGluIGMpcj1zW25dLGk9Y1tuXSxyPyhpLm9sZFZhbHVlPXIudmFsdWUsaS5vbGRBcmc9ci5hcmcsbHIoaSwidXBkYXRlIixlLHQpLGkuZGVmJiZpLmRlZi5jb21wb25lbnRVcGRhdGVkJiZsLnB1c2goaSkpOihscihpLCJiaW5kIixlLHQpLGkuZGVmJiZpLmRlZi5pbnNlcnRlZCYmdS5wdXNoKGkpKTtpZih1Lmxlbmd0aCl7dmFyIGY9ZnVuY3Rpb24oKXtmb3IodmFyIG49MDtuPHUubGVuZ3RoO24rKylscih1W25dLCJpbnNlcnRlZCIsZSx0KX07YT9zZShlLCJpbnNlcnQiLGYpOmYoKX1sLmxlbmd0aCYmc2UoZSwicG9zdHBhdGNoIiwoZnVuY3Rpb24oKXtmb3IodmFyIG49MDtuPGwubGVuZ3RoO24rKylscihsW25dLCJjb21wb25lbnRVcGRhdGVkIixlLHQpfSkpO2lmKCFhKWZvcihuIGluIHMpY1tuXXx8bHIoc1tuXSwidW5iaW5kIix0LHQsbyl9KHQsZSl9dmFyIHNyPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gY3IodCxlKXt2YXIgbixyLGk9T2JqZWN0LmNyZWF0ZShudWxsKTtpZighdClyZXR1cm4gaTtmb3Iobj0wO248dC5sZW5ndGg7bisrKXI9dFtuXSxyLm1vZGlmaWVyc3x8KHIubW9kaWZpZXJzPXNyKSxpW3VyKHIpXT1yLHIuZGVmPU50KGUuJG9wdGlvbnMsImRpcmVjdGl2ZXMiLHIubmFtZSk7cmV0dXJuIGl9ZnVuY3Rpb24gdXIodCl7cmV0dXJuIHQucmF3TmFtZXx8dC5uYW1lKyIuIitPYmplY3Qua2V5cyh0Lm1vZGlmaWVyc3x8e30pLmpvaW4oIi4iKX1mdW5jdGlvbiBscih0LGUsbixyLGkpe3ZhciBhPXQuZGVmJiZ0LmRlZltlXTtpZihhKXRyeXthKG4uZWxtLHQsbixyLGkpfWNhdGNoKFVpKXtIdChVaSxuLmNvbnRleHQsImRpcmVjdGl2ZSAiK3QubmFtZSsiICIrZSsiIGhvb2siKX19dmFyIGZyPVtabixhcl07ZnVuY3Rpb24gZHIodCxlKXtpZighaSh0LmRhdGEud3hzUHJvcHMpfHwhaShlLmRhdGEud3hzUHJvcHMpKXt2YXIgbj10LiR3eHNXYXRjaGVzLHI9T2JqZWN0LmtleXMoZS5kYXRhLnd4c1Byb3BzKTtpZihufHxyLmxlbmd0aCl7bnx8KG49e30pO3ZhciBhPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKHIpe2Vbcl0mJihuW3Rbcl1dPWVbcl0sZGVsZXRlIGVbcl0pfSkpLG59KGUuZGF0YS53eHNQcm9wcyxlLmRhdGEuYXR0cnMpLG89ZS5jb250ZXh0O2UuJHd4c1dhdGNoZXM9e30sT2JqZWN0LmtleXMoYSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9dDtlLmNvbnRleHQud3hzUHJvcHMmJihyPSJ3eHNQcm9wcy4iK3QpLGUuJHd4c1dhdGNoZXNbdF09blt0XXx8ZS5jb250ZXh0LiR3YXRjaChyLChmdW5jdGlvbihuLHIpe3ZhciBpPWUuZWxtLl9fdnVlX198fGUuZWxtO2FbdF0obixyLG8uJGdldENvbXBvbmVudERlc2NyaXB0b3IobywhMCksaS4kZ2V0Q29tcG9uZW50RGVzY3JpcHRvciYmaS4kZ2V0Q29tcG9uZW50RGVzY3JpcHRvcihpLCExKSl9KSx7aW1tZWRpYXRlOiEwLGRlZXA6ITB9KX0pKSxPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlLiR3eHNXYXRjaGVzW3RdfHwoblt0XSgpLGRlbGV0ZSBuW3RdKX0pKX19fXZhciBocj17Y3JlYXRlOmRyLHVwZGF0ZTpkcn07ZnVuY3Rpb24gcHIodCxlKXt2YXIgbj1lLmNvbXBvbmVudE9wdGlvbnM7aWYoKCFhKG4pfHwhMSE9PW4uQ3Rvci5vcHRpb25zLmluaGVyaXRBdHRycykmJighaSh0LmRhdGEuYXR0cnMpfHwhaShlLmRhdGEuYXR0cnMpKSl7dmFyIHIsbyxzLGM9ZS5lbG0sdT10LmRhdGEuYXR0cnN8fHt9LGw9ZS5kYXRhLmF0dHJzfHx7fTtmb3IociBpbiBhKGwuX19vYl9fKSYmKGw9ZS5kYXRhLmF0dHJzPUkoe30sbCkpLGwpbz1sW3JdLHM9dVtyXSxzIT09byYmdnIoYyxyLG8pO2ZvcihyIGluKFF8fEspJiZsLnZhbHVlIT09dS52YWx1ZSYmdnIoYywidmFsdWUiLGwudmFsdWUpLHUpaShsW3JdKSYmKERuKHIpP2MucmVtb3ZlQXR0cmlidXRlTlMoQm4sRm4ocikpOmpuKHIpfHxjLnJlbW92ZUF0dHJpYnV0ZShyKSl9fWZ1bmN0aW9uIHZyKHQsZSxuKXt0LnRhZ05hbWUuaW5kZXhPZigiLSIpPi0xP2dyKHQsZSxuKTpObihlKT9XbihuKT90LnJlbW92ZUF0dHJpYnV0ZShlKToobj0iYWxsb3dmdWxsc2NyZWVuIj09PWUmJiJFTUJFRCI9PT10LnRhZ05hbWU/InRydWUiOmUsdC5zZXRBdHRyaWJ1dGUoZSxuKSk6am4oZSk/dC5zZXRBdHRyaWJ1dGUoZSxmdW5jdGlvbih0LGUpe3JldHVybiBXbihlKXx8ImZhbHNlIj09PWU/ImZhbHNlIjoiY29udGVudGVkaXRhYmxlIj09PXQmJlJuKGUpP2U6InRydWUifShlLG4pKTpEbihlKT9XbihuKT90LnJlbW92ZUF0dHJpYnV0ZU5TKEJuLEZuKGUpKTp0LnNldEF0dHJpYnV0ZU5TKEJuLGUsbik6Z3IodCxlLG4pfWZ1bmN0aW9uIGdyKHQsZSxuKXtpZihXbihuKSl0LnJlbW92ZUF0dHJpYnV0ZShlKTtlbHNle2lmKFEmJiFKJiYiVEVYVEFSRUEiPT09dC50YWdOYW1lJiYicGxhY2Vob2xkZXIiPT09ZSYmIiIhPT1uJiYhdC5fX2llcGgpe3ZhciByPWZ1bmN0aW9uKGUpe2Uuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnB1dCIscil9O3QuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHIpLHQuX19pZXBoPSEwfXQuc2V0QXR0cmlidXRlKGUsbil9fXZhciBtcj17Y3JlYXRlOnByLHVwZGF0ZTpwcn07ZnVuY3Rpb24gYnIodCxlKXt2YXIgbj1lLmVsbSxyPWUuZGF0YSxvPXQuZGF0YTtpZighKGkoci5zdGF0aWNDbGFzcykmJmkoci5jbGFzcykmJihpKG8pfHxpKG8uc3RhdGljQ2xhc3MpJiZpKG8uY2xhc3MpKSYmaShuLl9fd3hzQWRkQ2xhc3MpJiZpKG4uX193eHNSZW1vdmVDbGFzcykpKXt2YXIgcz1IbihlKSxjPW4uX3RyYW5zaXRpb25DbGFzc2VzO2lmKGEoYykmJihzPVVuKHMscW4oYykpKSxBcnJheS5pc0FycmF5KG4uX193eHNSZW1vdmVDbGFzcykmJm4uX193eHNSZW1vdmVDbGFzcy5sZW5ndGgpe3ZhciB1PXMuc3BsaXQoL1xzKy8pO24uX193eHNSZW1vdmVDbGFzcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT11LmZpbmRJbmRleCgoZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT10fSkpOy0xIT09ZSYmdS5zcGxpY2UoZSwxKX0pKSxzPXUuam9pbigiICIpLG4uX193eHNSZW1vdmVDbGFzcy5sZW5ndGg9MH1pZihuLl9fd3hzQWRkQ2xhc3Mpe3ZhciBsPXMuc3BsaXQoL1xzKy8pLmNvbmNhdChuLl9fd3hzQWRkQ2xhc3Muc3BsaXQoL1xzKy8pKSxmPU9iamVjdC5jcmVhdGUobnVsbCk7bC5mb3JFYWNoKChmdW5jdGlvbih0KXt0JiYoZlt0XT0xKX0pKSxzPU9iamVjdC5rZXlzKGYpLmpvaW4oIiAiKX12YXIgZD1lLmNvbnRleHQsaD1kLiRvcHRpb25zLm1wT3B0aW9ucyYmZC4kb3B0aW9ucy5tcE9wdGlvbnMuZXh0ZXJuYWxDbGFzc2VzO0FycmF5LmlzQXJyYXkoaCkmJmguZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9ZFtTKHQpXTtlJiYocz1zLnJlcGxhY2UodCxlKSl9KSkscyE9PW4uX3ByZXZDbGFzcyYmKG4uc2V0QXR0cmlidXRlKCJjbGFzcyIscyksbi5fcHJldkNsYXNzPXMpfX12YXIgeXIsX3I9e2NyZWF0ZTpicix1cGRhdGU6YnJ9O2Z1bmN0aW9uIHdyKHQsZSxuKXt2YXIgcj15cjtyZXR1cm4gZnVuY3Rpb24gaSgpe3ZhciBhPWUuYXBwbHkobnVsbCxhcmd1bWVudHMpO251bGwhPT1hJiZUcih0LGksbixyKX19dmFyIHhyPVl0JiYhKHR0JiZOdW1iZXIodHRbMV0pPD01Myk7ZnVuY3Rpb24gU3IodCxlLG4scil7aWYoeHIpe3ZhciBpPWNuLGE9ZTtlPWEuX3dyYXBwZXI9ZnVuY3Rpb24odCl7aWYodC50YXJnZXQ9PT10LmN1cnJlbnRUYXJnZXR8fHQudGltZVN0YW1wPj1pfHx0LnRpbWVTdGFtcDw9MHx8dC50YXJnZXQub3duZXJEb2N1bWVudCE9PWRvY3VtZW50KXJldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19eXIuYWRkRXZlbnRMaXN0ZW5lcih0LGUsbnQ/e2NhcHR1cmU6bixwYXNzaXZlOnJ9Om4pfWZ1bmN0aW9uIFRyKHQsZSxuLHIpeyhyfHx5cikucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGUuX3dyYXBwZXJ8fGUsbil9ZnVuY3Rpb24gQ3IodCxlKXtpZighaSh0LmRhdGEub24pfHwhaShlLmRhdGEub24pKXt2YXIgbj1lLmRhdGEub258fHt9LHI9dC5kYXRhLm9ufHx7fTt5cj1lLmVsbSxmdW5jdGlvbih0KXtpZihhKHRbIl9fciJdKSl7dmFyIGU9UT8iY2hhbmdlIjoiaW5wdXQiO3RbZV09W10uY29uY2F0KHRbIl9fciJdLHRbZV18fFtdKSxkZWxldGUgdFsiX19yIl19YSh0WyJfX2MiXSkmJih0LmNoYW5nZT1bXS5jb25jYXQodFsiX19jIl0sdC5jaGFuZ2V8fFtdKSxkZWxldGUgdFsiX19jIl0pfShuKSxvZShuLHIsU3IsVHIsd3IsZS5jb250ZXh0KSx5cj12b2lkIDB9fXZhciBrcixPcj17Y3JlYXRlOkNyLHVwZGF0ZTpDcn07ZnVuY3Rpb24gRXIodCxlKXtpZighaSh0LmRhdGEuZG9tUHJvcHMpfHwhaShlLmRhdGEuZG9tUHJvcHMpKXt2YXIgbixyLG89ZS5lbG0scz10LmRhdGEuZG9tUHJvcHN8fHt9LGM9ZS5kYXRhLmRvbVByb3BzfHx7fTtmb3IobiBpbiBhKGMuX19vYl9fKSYmKGM9ZS5kYXRhLmRvbVByb3BzPUkoe30sYykpLHMpbiBpbiBjfHwob1tuXT0iIik7Zm9yKG4gaW4gYyl7aWYocj1jW25dLCJ0ZXh0Q29udGVudCI9PT1ufHwiaW5uZXJIVE1MIj09PW4pe2lmKGUuY2hpbGRyZW4mJihlLmNoaWxkcmVuLmxlbmd0aD0wKSxyPT09c1tuXSljb250aW51ZTsxPT09by5jaGlsZE5vZGVzLmxlbmd0aCYmby5yZW1vdmVDaGlsZChvLmNoaWxkTm9kZXNbMF0pfWlmKCJ2YWx1ZSI9PT1uJiYiUFJPR1JFU1MiIT09by50YWdOYW1lKXtvLl92YWx1ZT1yO3ZhciB1PWkocik/IiI6U3RyaW5nKHIpO0lyKG8sdSkmJihvLnZhbHVlPXUpfWVsc2UgaWYoImlubmVySFRNTCI9PT1uJiZYbihvLnRhZ05hbWUpJiZpKG8uaW5uZXJIVE1MKSl7a3I9a3J8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGtyLmlubmVySFRNTD0iPHN2Zz4iK3IrIjwvc3ZnPiI7dmFyIGw9a3IuZmlyc3RDaGlsZDt3aGlsZShvLmZpcnN0Q2hpbGQpby5yZW1vdmVDaGlsZChvLmZpcnN0Q2hpbGQpO3doaWxlKGwuZmlyc3RDaGlsZClvLmFwcGVuZENoaWxkKGwuZmlyc3RDaGlsZCl9ZWxzZSBpZihyIT09c1tuXSl0cnl7b1tuXT1yfWNhdGNoKFVpKXt9fX19ZnVuY3Rpb24gSXIodCxlKXtyZXR1cm4hdC5jb21wb3NpbmcmJigiT1BUSU9OIj09PXQudGFnTmFtZXx8ZnVuY3Rpb24odCxlKXt2YXIgbj0hMDt0cnl7bj1kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dH1jYXRjaChVaSl7fXJldHVybiBuJiZ0LnZhbHVlIT09ZX0odCxlKXx8ZnVuY3Rpb24odCxlKXt2YXIgbj10LnZhbHVlLHI9dC5fdk1vZGlmaWVycztpZihhKHIpKXtpZihyLm51bWJlcilyZXR1cm4gdihuKSE9PXYoZSk7aWYoci50cmltKXJldHVybiBuLnRyaW0oKSE9PWUudHJpbSgpfXJldHVybiBuIT09ZX0odCxlKSl9dmFyIFByPXtjcmVhdGU6RXIsdXBkYXRlOkVyfSxNcj13KChmdW5jdGlvbih0KXt2YXIgZT17fSxuPS86KC4rKS87cmV0dXJuIHQuc3BsaXQoLzsoPyFbXihdKlwpKS9nKS5mb3JFYWNoKChmdW5jdGlvbih0KXtpZih0KXt2YXIgcj10LnNwbGl0KG4pO3IubGVuZ3RoPjEmJihlW3JbMF0udHJpbSgpXT1yWzFdLnRyaW0oKSl9fSkpLGV9KSk7ZnVuY3Rpb24gQXIodCl7dmFyIGU9JHIodC5zdHlsZSk7cmV0dXJuIHQuc3RhdGljU3R5bGU/SSh0LnN0YXRpY1N0eWxlLGUpOmV9ZnVuY3Rpb24gJHIodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/UCh0KToic3RyaW5nIj09PXR5cGVvZiB0P01yKHQpOnR9dmFyIExyLGpyPS9eLS0vLFJyPS9ccyohaW1wb3J0YW50JC8sTnI9L1xiKFsrLV0/XGQrKFwuXGQrKT8pW3J8dV1weFxiL2csQnI9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgdD90LnJlcGxhY2UoTnIsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHVuaS51cHgycHgoZSkrInB4In0pKTp0fSxEcj0vdXJsXChccypbJyJdKC4rP1wuKGpwZ3xnaWZ8cG5nKSlbJyJdXHMqXCkvLEZyPS91cmxcKFxzKihbYS16QS1aMC05XC5cLVxfXC9dKz9cLihqcGd8Z2lmfHBuZykpXHMqXCkvLFdyPWZ1bmN0aW9uKHQsZSxuLHIpe2lmKHImJnIuXyRnZXRSZWFsUGF0aCYmbiYmKG49ZnVuY3Rpb24odCxlKXtpZigic3RyaW5nIj09PXR5cGVvZiB0JiYtMSE9PXQuaW5kZXhPZigidXJsKCIpKXt2YXIgbj10Lm1hdGNoKERyKXx8dC5tYXRjaChGcik7biYmMz09PW4ubGVuZ3RoJiYodD10LnJlcGxhY2UoblsxXSxlLl8kZ2V0UmVhbFBhdGgoblsxXSkpKX1yZXR1cm4gdH0obixyKSksanIudGVzdChlKSl0LnN0eWxlLnNldFByb3BlcnR5KGUsbik7ZWxzZSBpZihSci50ZXN0KG4pKXQuc3R5bGUuc2V0UHJvcGVydHkoayhlKSxuLnJlcGxhY2UoUnIsIiIpLCJpbXBvcnRhbnQiKTtlbHNle3ZhciBpPVZyKGUpO2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHZhciBhPTAsbz1uLmxlbmd0aDthPG87YSsrKXQuc3R5bGVbaV09QnIoblthXSk7ZWxzZSB0LnN0eWxlW2ldPUJyKG4pfX0sSHI9WyJXZWJraXQiLCJNb3oiLCJtcyJdLFZyPXcoKGZ1bmN0aW9uKHQpe2lmKExyPUxyfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSx0PVModCksImZpbHRlciIhPT10JiZ0IGluIExyKXJldHVybiB0O2Zvcih2YXIgZT10LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSksbj0wO248SHIubGVuZ3RoO24rKyl7dmFyIHI9SHJbbl0rZTtpZihyIGluIExyKXJldHVybiByfX0pKTtmdW5jdGlvbiBVcih0LGUpe3ZhciBuPWUuZGF0YSxyPXQuZGF0YSxvPWUuZWxtO2lmKCEoaShuLnN0YXRpY1N0eWxlKSYmaShuLnN0eWxlKSYmaShyLnN0YXRpY1N0eWxlKSYmaShyLnN0eWxlKSYmaShvLl9fd3hzU3R5bGUpKSl7dmFyIHMsYyx1PXIuc3RhdGljU3R5bGUsbD1yLm5vcm1hbGl6ZWRTdHlsZXx8ci5zdHlsZXx8e30sZj11fHxsLGQ9JHIoZS5kYXRhLnN0eWxlKXx8e307ZS5kYXRhLm5vcm1hbGl6ZWRTdHlsZT1hKGQuX19vYl9fKT9JKHt9LGQpOmQ7dmFyIGg9ZnVuY3Rpb24odCxlKXt2YXIgbixyPXt9O2lmKGUpe3ZhciBpPXQ7d2hpbGUoaS5jb21wb25lbnRJbnN0YW5jZSlpPWkuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLGkmJmkuZGF0YSYmKG49QXIoaS5kYXRhKSkmJkkocixuKX0obj1Bcih0LmRhdGEpKSYmSShyLG4pO3ZhciBhPXQ7d2hpbGUoYT1hLnBhcmVudClhLmRhdGEmJihuPUFyKGEuZGF0YSkpJiZJKHIsbik7cmV0dXJuIHJ9KGUsITApO2ZvcihjIGluIG8uX193eHNTdHlsZSYmKE9iamVjdC5hc3NpZ24oZS5kYXRhLm5vcm1hbGl6ZWRTdHlsZSxvLl9fd3hzU3R5bGUpLE9iamVjdC5hc3NpZ24oaCxvLl9fd3hzU3R5bGUpKSxmKWkoaFtjXSkmJldyKG8sYywiIik7Zm9yKGMgaW4gaClzPWhbY10scyE9PWZbY10mJldyKG8sYyxudWxsPT1zPyIiOnMsZS5jb250ZXh0KX19dmFyIHFyPXtjcmVhdGU6VXIsdXBkYXRlOlVyfSx6cj0vXHMrLztmdW5jdGlvbiBZcih0LGUpe2lmKGUmJihlPWUudHJpbSgpKSlpZih0LmNsYXNzTGlzdCllLmluZGV4T2YoIiAiKT4tMT9lLnNwbGl0KHpyKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdC5jbGFzc0xpc3QuYWRkKGUpfSkpOnQuY2xhc3NMaXN0LmFkZChlKTtlbHNle3ZhciBuPSIgIisodC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKSsiICI7bi5pbmRleE9mKCIgIitlKyIgIik8MCYmdC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwobitlKS50cmltKCkpfX1mdW5jdGlvbiBYcih0LGUpe2lmKGUmJihlPWUudHJpbSgpKSlpZih0LmNsYXNzTGlzdCllLmluZGV4T2YoIiAiKT4tMT9lLnNwbGl0KHpyKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdC5jbGFzc0xpc3QucmVtb3ZlKGUpfSkpOnQuY2xhc3NMaXN0LnJlbW92ZShlKSx0LmNsYXNzTGlzdC5sZW5ndGh8fHQucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpO2Vsc2V7dmFyIG49IiAiKyh0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpKyIgIixyPSIgIitlKyIgIjt3aGlsZShuLmluZGV4T2Yocik+PTApbj1uLnJlcGxhY2UociwiICIpO249bi50cmltKCksbj90LnNldEF0dHJpYnV0ZSgiY2xhc3MiLG4pOnQucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpfX1mdW5jdGlvbiBHcih0KXtpZih0KXtpZigib2JqZWN0Ij09PXR5cGVvZiB0KXt2YXIgZT17fTtyZXR1cm4hMSE9PXQuY3NzJiZJKGUsUXIodC5uYW1lfHwidiIpKSxJKGUsdCksZX1yZXR1cm4ic3RyaW5nIj09PXR5cGVvZiB0P1FyKHQpOnZvaWQgMH19dmFyIFFyPXcoKGZ1bmN0aW9uKHQpe3JldHVybntlbnRlckNsYXNzOnQrIi1lbnRlciIsZW50ZXJUb0NsYXNzOnQrIi1lbnRlci10byIsZW50ZXJBY3RpdmVDbGFzczp0KyItZW50ZXItYWN0aXZlIixsZWF2ZUNsYXNzOnQrIi1sZWF2ZSIsbGVhdmVUb0NsYXNzOnQrIi1sZWF2ZS10byIsbGVhdmVBY3RpdmVDbGFzczp0KyItbGVhdmUtYWN0aXZlIn19KSksSnI9eiYmIUosS3I9InRyYW5zaXRpb24iLFpyPSJ0cmFuc2l0aW9uZW5kIix0aT0iYW5pbWF0aW9uIixlaT0iYW5pbWF0aW9uZW5kIjtKciYmKHZvaWQgMD09PXdpbmRvdy5vbnRyYW5zaXRpb25lbmQmJnZvaWQgMCE9PXdpbmRvdy5vbndlYmtpdHRyYW5zaXRpb25lbmQmJihLcj0iV2Via2l0VHJhbnNpdGlvbiIsWnI9IndlYmtpdFRyYW5zaXRpb25FbmQiKSx2b2lkIDA9PT13aW5kb3cub25hbmltYXRpb25lbmQmJnZvaWQgMCE9PXdpbmRvdy5vbndlYmtpdGFuaW1hdGlvbmVuZCYmKHRpPSJXZWJraXRBbmltYXRpb24iLGVpPSJ3ZWJraXRBbmltYXRpb25FbmQiKSk7dmFyIG5pPXo/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpzZXRUaW1lb3V0OmZ1bmN0aW9uKHQpe3JldHVybiB0KCl9O2Z1bmN0aW9uIHJpKHQpe25pKChmdW5jdGlvbigpe25pKHQpfSkpfWZ1bmN0aW9uIGlpKHQsZSl7dmFyIG49dC5fdHJhbnNpdGlvbkNsYXNzZXN8fCh0Ll90cmFuc2l0aW9uQ2xhc3Nlcz1bXSk7bi5pbmRleE9mKGUpPDAmJihuLnB1c2goZSksWXIodCxlKSl9ZnVuY3Rpb24gYWkodCxlKXt0Ll90cmFuc2l0aW9uQ2xhc3NlcyYmYih0Ll90cmFuc2l0aW9uQ2xhc3NlcyxlKSxYcih0LGUpfWZ1bmN0aW9uIG9pKHQsZSxuKXt2YXIgcj1jaSh0LGUpLGk9ci50eXBlLGE9ci50aW1lb3V0LG89ci5wcm9wQ291bnQ7aWYoIWkpcmV0dXJuIG4oKTt2YXIgcz0idHJhbnNpdGlvbiI9PT1pP1pyOmVpLGM9MCx1PWZ1bmN0aW9uKCl7dC5yZW1vdmVFdmVudExpc3RlbmVyKHMsbCksbigpfSxsPWZ1bmN0aW9uKGUpe2UudGFyZ2V0PT09dCYmKytjPj1vJiZ1KCl9O3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7YzxvJiZ1KCl9KSxhKzEpLHQuYWRkRXZlbnRMaXN0ZW5lcihzLGwpfXZhciBzaT0vXGIodHJhbnNmb3JtfGFsbCkoLHwkKS87ZnVuY3Rpb24gY2kodCxlKXt2YXIgbixyPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLGk9KHJbS3IrIkRlbGF5Il18fCIiKS5zcGxpdCgiLCAiKSxhPShyW0tyKyJEdXJhdGlvbiJdfHwiIikuc3BsaXQoIiwgIiksbz11aShpLGEpLHM9KHJbdGkrIkRlbGF5Il18fCIiKS5zcGxpdCgiLCAiKSxjPShyW3RpKyJEdXJhdGlvbiJdfHwiIikuc3BsaXQoIiwgIiksdT11aShzLGMpLGw9MCxmPTA7InRyYW5zaXRpb24iPT09ZT9vPjAmJihuPSJ0cmFuc2l0aW9uIixsPW8sZj1hLmxlbmd0aCk6ImFuaW1hdGlvbiI9PT1lP3U+MCYmKG49ImFuaW1hdGlvbiIsbD11LGY9Yy5sZW5ndGgpOihsPU1hdGgubWF4KG8sdSksbj1sPjA/bz51PyJ0cmFuc2l0aW9uIjoiYW5pbWF0aW9uIjpudWxsLGY9bj8idHJhbnNpdGlvbiI9PT1uP2EubGVuZ3RoOmMubGVuZ3RoOjApO3ZhciBkPSJ0cmFuc2l0aW9uIj09PW4mJnNpLnRlc3QocltLcisiUHJvcGVydHkiXSk7cmV0dXJue3R5cGU6bix0aW1lb3V0OmwscHJvcENvdW50OmYsaGFzVHJhbnNmb3JtOmR9fWZ1bmN0aW9uIHVpKHQsZSl7d2hpbGUodC5sZW5ndGg8ZS5sZW5ndGgpdD10LmNvbmNhdCh0KTtyZXR1cm4gTWF0aC5tYXguYXBwbHkobnVsbCxlLm1hcCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gbGkoZSkrbGkodFtuXSl9KSkpfWZ1bmN0aW9uIGxpKHQpe3JldHVybiAxZTMqTnVtYmVyKHQuc2xpY2UoMCwtMSkucmVwbGFjZSgiLCIsIi4iKSl9ZnVuY3Rpb24gZmkodCxlKXt2YXIgbj10LmVsbTthKG4uX2xlYXZlQ2IpJiYobi5fbGVhdmVDYi5jYW5jZWxsZWQ9ITAsbi5fbGVhdmVDYigpKTt2YXIgcj1Hcih0LmRhdGEudHJhbnNpdGlvbik7aWYoIWkocikmJiFhKG4uX2VudGVyQ2IpJiYxPT09bi5ub2RlVHlwZSl7dmFyIG89ci5jc3Mscz1yLnR5cGUsdT1yLmVudGVyQ2xhc3MsbD1yLmVudGVyVG9DbGFzcyxmPXIuZW50ZXJBY3RpdmVDbGFzcyxkPXIuYXBwZWFyQ2xhc3MsaD1yLmFwcGVhclRvQ2xhc3MscD1yLmFwcGVhckFjdGl2ZUNsYXNzLGc9ci5iZWZvcmVFbnRlcixtPXIuZW50ZXIsYj1yLmFmdGVyRW50ZXIseT1yLmVudGVyQ2FuY2VsbGVkLF89ci5iZWZvcmVBcHBlYXIsdz1yLmFwcGVhcix4PXIuYWZ0ZXJBcHBlYXIsUz1yLmFwcGVhckNhbmNlbGxlZCxUPXIuZHVyYXRpb24sQz1RZSxrPVFlLiR2bm9kZTt3aGlsZShrJiZrLnBhcmVudClDPWsuY29udGV4dCxrPWsucGFyZW50O3ZhciBPPSFDLl9pc01vdW50ZWR8fCF0LmlzUm9vdEluc2VydDtpZighT3x8d3x8IiI9PT13KXt2YXIgRT1PJiZkP2Q6dSxJPU8mJnA/cDpmLFA9TyYmaD9oOmwsTT1PJiZffHxnLEE9TyYmImZ1bmN0aW9uIj09PXR5cGVvZiB3P3c6bSwkPU8mJnh8fGIsTD1PJiZTfHx5LGo9dihjKFQpP1QuZW50ZXI6VCk7MDt2YXIgTj0hMSE9PW8mJiFKLEI9cGkoQSksRD1uLl9lbnRlckNiPVIoKGZ1bmN0aW9uKCl7TiYmKGFpKG4sUCksYWkobixJKSksRC5jYW5jZWxsZWQ/KE4mJmFpKG4sRSksTCYmTChuKSk6JCYmJChuKSxuLl9lbnRlckNiPW51bGx9KSk7dC5kYXRhLnNob3d8fHNlKHQsImluc2VydCIsKGZ1bmN0aW9uKCl7dmFyIGU9bi5wYXJlbnROb2RlLHI9ZSYmZS5fcGVuZGluZyYmZS5fcGVuZGluZ1t0LmtleV07ciYmci50YWc9PT10LnRhZyYmci5lbG0uX2xlYXZlQ2ImJnIuZWxtLl9sZWF2ZUNiKCksQSYmQShuLEQpfSkpLE0mJk0obiksTiYmKGlpKG4sRSksaWkobixJKSxyaSgoZnVuY3Rpb24oKXthaShuLEUpLEQuY2FuY2VsbGVkfHwoaWkobixQKSxCfHwoaGkoaik/c2V0VGltZW91dChELGopOm9pKG4scyxEKSkpfSkpKSx0LmRhdGEuc2hvdyYmKGUmJmUoKSxBJiZBKG4sRCkpLE58fEJ8fEQoKX19fWZ1bmN0aW9uIGRpKHQsZSl7dmFyIG49dC5lbG07YShuLl9lbnRlckNiKSYmKG4uX2VudGVyQ2IuY2FuY2VsbGVkPSEwLG4uX2VudGVyQ2IoKSk7dmFyIHI9R3IodC5kYXRhLnRyYW5zaXRpb24pO2lmKGkocil8fDEhPT1uLm5vZGVUeXBlKXJldHVybiBlKCk7aWYoIWEobi5fbGVhdmVDYikpe3ZhciBvPXIuY3NzLHM9ci50eXBlLHU9ci5sZWF2ZUNsYXNzLGw9ci5sZWF2ZVRvQ2xhc3MsZj1yLmxlYXZlQWN0aXZlQ2xhc3MsZD1yLmJlZm9yZUxlYXZlLGg9ci5sZWF2ZSxwPXIuYWZ0ZXJMZWF2ZSxnPXIubGVhdmVDYW5jZWxsZWQsbT1yLmRlbGF5TGVhdmUsYj1yLmR1cmF0aW9uLHk9ITEhPT1vJiYhSixfPXBpKGgpLHc9dihjKGIpP2IubGVhdmU6Yik7MDt2YXIgeD1uLl9sZWF2ZUNiPVIoKGZ1bmN0aW9uKCl7bi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUuX3BlbmRpbmcmJihuLnBhcmVudE5vZGUuX3BlbmRpbmdbdC5rZXldPW51bGwpLHkmJihhaShuLGwpLGFpKG4sZikpLHguY2FuY2VsbGVkPyh5JiZhaShuLHUpLGcmJmcobikpOihlKCkscCYmcChuKSksbi5fbGVhdmVDYj1udWxsfSkpO20/bShTKTpTKCl9ZnVuY3Rpb24gUygpe3guY2FuY2VsbGVkfHwoIXQuZGF0YS5zaG93JiZuLnBhcmVudE5vZGUmJigobi5wYXJlbnROb2RlLl9wZW5kaW5nfHwobi5wYXJlbnROb2RlLl9wZW5kaW5nPXt9KSlbdC5rZXldPXQpLGQmJmQobikseSYmKGlpKG4sdSksaWkobixmKSxyaSgoZnVuY3Rpb24oKXthaShuLHUpLHguY2FuY2VsbGVkfHwoaWkobixsKSxffHwoaGkodyk/c2V0VGltZW91dCh4LHcpOm9pKG4scyx4KSkpfSkpKSxoJiZoKG4seCkseXx8X3x8eCgpKX19ZnVuY3Rpb24gaGkodCl7cmV0dXJuIm51bWJlciI9PT10eXBlb2YgdCYmIWlzTmFOKHQpfWZ1bmN0aW9uIHBpKHQpe2lmKGkodCkpcmV0dXJuITE7dmFyIGU9dC5mbnM7cmV0dXJuIGEoZSk/cGkoQXJyYXkuaXNBcnJheShlKT9lWzBdOmUpOih0Ll9sZW5ndGh8fHQubGVuZ3RoKT4xfWZ1bmN0aW9uIHZpKHQsZSl7ITAhPT1lLmRhdGEuc2hvdyYmZmkoZSl9dmFyIGdpPXo/e2NyZWF0ZTp2aSxhY3RpdmF0ZTp2aSxyZW1vdmU6ZnVuY3Rpb24odCxlKXshMCE9PXQuZGF0YS5zaG93P2RpKHQsZSk6ZSgpfX06e30sbWk9W2hyLG1yLF9yLE9yLFByLHFyLGdpXSxiaT1taS5jb25jYXQoZnIpLHlpPWZ1bmN0aW9uKHQpe3ZhciBlLG4scj17fSxjPXQubW9kdWxlcyx1PXQubm9kZU9wcztmb3IoZT0wO2U8bnIubGVuZ3RoOysrZSlmb3IocltucltlXV09W10sbj0wO248Yy5sZW5ndGg7KytuKWEoY1tuXVtucltlXV0pJiZyW25yW2VdXS5wdXNoKGNbbl1bbnJbZV1dKTtmdW5jdGlvbiBsKHQpe3ZhciBlPXUucGFyZW50Tm9kZSh0KTthKGUpJiZ1LnJlbW92ZUNoaWxkKGUsdCl9ZnVuY3Rpb24gZih0LGUsbixpLHMsYyxsKXtpZihhKHQuZWxtKSYmYShjKSYmKHQ9Y1tsXT1idCh0KSksdC5pc1Jvb3RJbnNlcnQ9IXMsIWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciBzPXQuZGF0YTtpZihhKHMpKXt2YXIgYz1hKHQuY29tcG9uZW50SW5zdGFuY2UpJiZzLmtlZXBBbGl2ZTtpZihhKHM9cy5ob29rKSYmYShzPXMuaW5pdCkmJnModCwhMSksYSh0LmNvbXBvbmVudEluc3RhbmNlKSlyZXR1cm4gZCh0LGUpLGgobix0LmVsbSxpKSxvKGMpJiZmdW5jdGlvbih0LGUsbixpKXt2YXIgbyxzPXQ7d2hpbGUocy5jb21wb25lbnRJbnN0YW5jZSlpZihzPXMuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLGEobz1zLmRhdGEpJiZhKG89by50cmFuc2l0aW9uKSl7Zm9yKG89MDtvPHIuYWN0aXZhdGUubGVuZ3RoOysrbylyLmFjdGl2YXRlW29dKGVyLHMpO2UucHVzaChzKTticmVha31oKG4sdC5lbG0saSl9KHQsZSxuLGkpLCEwfX0odCxlLG4saSkpe3ZhciBmPXQuZGF0YSx2PXQuY2hpbGRyZW4sZz10LnRhZzthKGcpPyh0LmVsbT10Lm5zP3UuY3JlYXRlRWxlbWVudE5TKHQubnMsZyk6dS5jcmVhdGVFbGVtZW50KGcsdCksYih0KSxwKHQsdixlKSxhKGYpJiZtKHQsZSksaChuLHQuZWxtLGkpKTpvKHQuaXNDb21tZW50KT8odC5lbG09dS5jcmVhdGVDb21tZW50KHQudGV4dCksaChuLHQuZWxtLGkpKToodC5lbG09dS5jcmVhdGVUZXh0Tm9kZSh0LnRleHQpLGgobix0LmVsbSxpKSl9fWZ1bmN0aW9uIGQodCxlKXthKHQuZGF0YS5wZW5kaW5nSW5zZXJ0KSYmKGUucHVzaC5hcHBseShlLHQuZGF0YS5wZW5kaW5nSW5zZXJ0KSx0LmRhdGEucGVuZGluZ0luc2VydD1udWxsKSx0LmVsbT10LmNvbXBvbmVudEluc3RhbmNlLiRlbCx2KHQpPyhtKHQsZSksYih0KSk6KHRyKHQpLGUucHVzaCh0KSl9ZnVuY3Rpb24gaCh0LGUsbil7YSh0KSYmKGEobik/dS5wYXJlbnROb2RlKG4pPT09dCYmdS5pbnNlcnRCZWZvcmUodCxlLG4pOnUuYXBwZW5kQ2hpbGQodCxlKSl9ZnVuY3Rpb24gcCh0LGUsbil7aWYoQXJyYXkuaXNBcnJheShlKSl7MDtmb3IodmFyIHI9MDtyPGUubGVuZ3RoOysrcilmKGVbcl0sbix0LmVsbSxudWxsLCEwLGUscil9ZWxzZSBzKHQudGV4dCkmJnUuYXBwZW5kQ2hpbGQodC5lbG0sdS5jcmVhdGVUZXh0Tm9kZShTdHJpbmcodC50ZXh0KSkpfWZ1bmN0aW9uIHYodCl7d2hpbGUodC5jb21wb25lbnRJbnN0YW5jZSl0PXQuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO3JldHVybiBhKHQudGFnKX1mdW5jdGlvbiBtKHQsbil7Zm9yKHZhciBpPTA7aTxyLmNyZWF0ZS5sZW5ndGg7KytpKXIuY3JlYXRlW2ldKGVyLHQpO2U9dC5kYXRhLmhvb2ssYShlKSYmKGEoZS5jcmVhdGUpJiZlLmNyZWF0ZShlcix0KSxhKGUuaW5zZXJ0KSYmbi5wdXNoKHQpKX1mdW5jdGlvbiBiKHQpe3ZhciBlO2lmKGEoZT10LmZuU2NvcGVJZCkpdS5zZXRTdHlsZVNjb3BlKHQuZWxtLGUpO2Vsc2V7dmFyIG49dDt3aGlsZShuKWEoZT1uLmNvbnRleHQpJiZhKGU9ZS4kb3B0aW9ucy5fc2NvcGVJZCkmJnUuc2V0U3R5bGVTY29wZSh0LmVsbSxlKSxuPW4ucGFyZW50fWEoZT1RZSkmJmUhPT10LmNvbnRleHQmJmUhPT10LmZuQ29udGV4dCYmYShlPWUuJG9wdGlvbnMuX3Njb3BlSWQpJiYhUWUuX3Zub2RlLmVsbS5fX3VuaURhdGFzZXQmJnUuc2V0U3R5bGVTY29wZSh0LmVsbSxlKX1mdW5jdGlvbiB5KHQsZSxuLHIsaSxhKXtmb3IoO3I8PWk7KytyKWYobltyXSxhLHQsZSwhMSxuLHIpfWZ1bmN0aW9uIF8odCl7dmFyIGUsbixpPXQuZGF0YTtpZihhKGkpKWZvcihhKGU9aS5ob29rKSYmYShlPWUuZGVzdHJveSkmJmUodCksZT0wO2U8ci5kZXN0cm95Lmxlbmd0aDsrK2Upci5kZXN0cm95W2VdKHQpO2lmKGEoZT10LmNoaWxkcmVuKSlmb3Iobj0wO248dC5jaGlsZHJlbi5sZW5ndGg7KytuKV8odC5jaGlsZHJlbltuXSl9ZnVuY3Rpb24gdyh0LGUsbil7Zm9yKDtlPD1uOysrZSl7dmFyIHI9dFtlXTthKHIpJiYoYShyLnRhZyk/KHgociksXyhyKSk6bChyLmVsbSkpfX1mdW5jdGlvbiB4KHQsZSl7aWYoYShlKXx8YSh0LmRhdGEpKXt2YXIgbixpPXIucmVtb3ZlLmxlbmd0aCsxO2ZvcihhKGUpP2UubGlzdGVuZXJzKz1pOmU9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7MD09PS0tbi5saXN0ZW5lcnMmJmwodCl9cmV0dXJuIG4ubGlzdGVuZXJzPWUsbn0odC5lbG0saSksYShuPXQuY29tcG9uZW50SW5zdGFuY2UpJiZhKG49bi5fdm5vZGUpJiZhKG4uZGF0YSkmJngobixlKSxuPTA7bjxyLnJlbW92ZS5sZW5ndGg7KytuKXIucmVtb3ZlW25dKHQsZSk7YShuPXQuZGF0YS5ob29rKSYmYShuPW4ucmVtb3ZlKT9uKHQsZSk6ZSgpfWVsc2UgbCh0LmVsbSl9ZnVuY3Rpb24gUyh0LGUsbixyKXtmb3IodmFyIGk9bjtpPHI7aSsrKXt2YXIgbz1lW2ldO2lmKGEobykmJnJyKHQsbykpcmV0dXJuIGl9fWZ1bmN0aW9uIFQodCxlLG4scyxjLGwpe2lmKHQhPT1lKXthKGUuZWxtKSYmYShzKSYmKGU9c1tjXT1idChlKSk7dmFyIGQ9ZS5lbG09dC5lbG07aWYobyh0LmlzQXN5bmNQbGFjZWhvbGRlcikpYShlLmFzeW5jRmFjdG9yeS5yZXNvbHZlZCk/Tyh0LmVsbSxlLG4pOmUuaXNBc3luY1BsYWNlaG9sZGVyPSEwO2Vsc2UgaWYobyhlLmlzU3RhdGljKSYmbyh0LmlzU3RhdGljKSYmZS5rZXk9PT10LmtleSYmKG8oZS5pc0Nsb25lZCl8fG8oZS5pc09uY2UpKSllLmNvbXBvbmVudEluc3RhbmNlPXQuY29tcG9uZW50SW5zdGFuY2U7ZWxzZXt2YXIgaCxwPWUuZGF0YTthKHApJiZhKGg9cC5ob29rKSYmYShoPWgucHJlcGF0Y2gpJiZoKHQsZSk7dmFyIGc9dC5jaGlsZHJlbixtPWUuY2hpbGRyZW47aWYoYShwKSYmdihlKSl7Zm9yKGg9MDtoPHIudXBkYXRlLmxlbmd0aDsrK2gpci51cGRhdGVbaF0odCxlKTthKGg9cC5ob29rKSYmYShoPWgudXBkYXRlKSYmaCh0LGUpfWkoZS50ZXh0KT9hKGcpJiZhKG0pP2chPT1tJiZmdW5jdGlvbih0LGUsbixyLG8pe3ZhciBzLGMsbCxkLGg9MCxwPTAsdj1lLmxlbmd0aC0xLGc9ZVswXSxtPWVbdl0sYj1uLmxlbmd0aC0xLF89blswXSx4PW5bYl0sQz0hbzt3aGlsZShoPD12JiZwPD1iKWkoZyk/Zz1lWysraF06aShtKT9tPWVbLS12XTpycihnLF8pPyhUKGcsXyxyLG4scCksZz1lWysraF0sXz1uWysrcF0pOnJyKG0seCk/KFQobSx4LHIsbixiKSxtPWVbLS12XSx4PW5bLS1iXSk6cnIoZyx4KT8oVChnLHgscixuLGIpLEMmJnUuaW5zZXJ0QmVmb3JlKHQsZy5lbG0sdS5uZXh0U2libGluZyhtLmVsbSkpLGc9ZVsrK2hdLHg9blstLWJdKTpycihtLF8pPyhUKG0sXyxyLG4scCksQyYmdS5pbnNlcnRCZWZvcmUodCxtLmVsbSxnLmVsbSksbT1lWy0tdl0sXz1uWysrcF0pOihpKHMpJiYocz1pcihlLGgsdikpLGM9YShfLmtleSk/c1tfLmtleV06UyhfLGUsaCx2KSxpKGMpP2YoXyxyLHQsZy5lbG0sITEsbixwKToobD1lW2NdLHJyKGwsXyk/KFQobCxfLHIsbixwKSxlW2NdPXZvaWQgMCxDJiZ1Lmluc2VydEJlZm9yZSh0LGwuZWxtLGcuZWxtKSk6ZihfLHIsdCxnLmVsbSwhMSxuLHApKSxfPW5bKytwXSk7aD52PyhkPWkobltiKzFdKT9udWxsOm5bYisxXS5lbG0seSh0LGQsbixwLGIscikpOnA+YiYmdyhlLGgsdil9KGQsZyxtLG4sbCk6YShtKT8oYSh0LnRleHQpJiZ1LnNldFRleHRDb250ZW50KGQsIiIpLHkoZCxudWxsLG0sMCxtLmxlbmd0aC0xLG4pKTphKGcpP3coZywwLGcubGVuZ3RoLTEpOmEodC50ZXh0KSYmdS5zZXRUZXh0Q29udGVudChkLCIiKTp0LnRleHQhPT1lLnRleHQmJnUuc2V0VGV4dENvbnRlbnQoZCxlLnRleHQpLGEocCkmJmEoaD1wLmhvb2spJiZhKGg9aC5wb3N0cGF0Y2gpJiZoKHQsZSl9fX1mdW5jdGlvbiBDKHQsZSxuKXtpZihvKG4pJiZhKHQucGFyZW50KSl0LnBhcmVudC5kYXRhLnBlbmRpbmdJbnNlcnQ9ZTtlbHNlIGZvcih2YXIgcj0wO3I8ZS5sZW5ndGg7KytyKWVbcl0uZGF0YS5ob29rLmluc2VydChlW3JdKX12YXIgaz1nKCJhdHRycyxjbGFzcyxzdGF0aWNDbGFzcyxzdGF0aWNTdHlsZSxrZXkiKTtmdW5jdGlvbiBPKHQsZSxuLHIpe3ZhciBpLHM9ZS50YWcsYz1lLmRhdGEsdT1lLmNoaWxkcmVuO2lmKHI9cnx8YyYmYy5wcmUsZS5lbG09dCxvKGUuaXNDb21tZW50KSYmYShlLmFzeW5jRmFjdG9yeSkpcmV0dXJuIGUuaXNBc3luY1BsYWNlaG9sZGVyPSEwLCEwO2lmKGEoYykmJihhKGk9Yy5ob29rKSYmYShpPWkuaW5pdCkmJmkoZSwhMCksYShpPWUuY29tcG9uZW50SW5zdGFuY2UpKSlyZXR1cm4gZChlLG4pLCEwO2lmKGEocykpe2lmKGEodSkpaWYodC5oYXNDaGlsZE5vZGVzKCkpaWYoYShpPWMpJiZhKGk9aS5kb21Qcm9wcykmJmEoaT1pLmlubmVySFRNTCkpe2lmKGkhPT10LmlubmVySFRNTClyZXR1cm4hMX1lbHNle2Zvcih2YXIgbD0hMCxmPXQuZmlyc3RDaGlsZCxoPTA7aDx1Lmxlbmd0aDtoKyspe2lmKCFmfHwhTyhmLHVbaF0sbixyKSl7bD0hMTticmVha31mPWYubmV4dFNpYmxpbmd9aWYoIWx8fGYpcmV0dXJuITF9ZWxzZSBwKGUsdSxuKTtpZihhKGMpKXt2YXIgdj0hMTtmb3IodmFyIGcgaW4gYylpZighayhnKSl7dj0hMCxtKGUsbik7YnJlYWt9IXYmJmNbImNsYXNzIl0mJnJlKGNbImNsYXNzIl0pfX1lbHNlIHQuZGF0YSE9PWUudGV4dCYmKHQuZGF0YT1lLnRleHQpO3JldHVybiEwfXJldHVybiBmdW5jdGlvbih0LGUsbixzKXtpZighaShlKSl7dmFyIGM9ITEsbD1bXTtpZihpKHQpKWM9ITAsZihlLGwpO2Vsc2V7dmFyIGQ9YSh0Lm5vZGVUeXBlKTtpZighZCYmcnIodCxlKSlUKHQsZSxsLG51bGwsbnVsbCxzKTtlbHNle2lmKGQpe2lmKDE9PT10Lm5vZGVUeXBlJiZ0Lmhhc0F0dHJpYnV0ZSgiZGF0YS1zZXJ2ZXItcmVuZGVyZWQiKSYmKHQucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXNlcnZlci1yZW5kZXJlZCIpLG49ITApLG8obikmJk8odCxlLGwpKXJldHVybiBDKGUsbCwhMCksdDt0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgcHQodS50YWdOYW1lKHQpLnRvTG93ZXJDYXNlKCkse30sW10sdm9pZCAwLHQpfSh0KX12YXIgaD10LmVsbSxwPXUucGFyZW50Tm9kZShoKTtpZihmKGUsbCxoLl9sZWF2ZUNiP251bGw6cCx1Lm5leHRTaWJsaW5nKGgpKSxhKGUucGFyZW50KSl7dmFyIGc9ZS5wYXJlbnQsbT12KGUpO3doaWxlKGcpe2Zvcih2YXIgYj0wO2I8ci5kZXN0cm95Lmxlbmd0aDsrK2Ipci5kZXN0cm95W2JdKGcpO2lmKGcuZWxtPWUuZWxtLG0pe2Zvcih2YXIgeT0wO3k8ci5jcmVhdGUubGVuZ3RoOysreSlyLmNyZWF0ZVt5XShlcixnKTt2YXIgeD1nLmRhdGEuaG9vay5pbnNlcnQ7aWYoeC5tZXJnZWQpZm9yKHZhciBTPTE7Uzx4LmZucy5sZW5ndGg7UysrKXguZm5zW1NdKCl9ZWxzZSB0cihnKTtnPWcucGFyZW50fX1hKHApP3coW3RdLDAsMCk6YSh0LnRhZykmJl8odCl9fXJldHVybiBDKGUsbCxjKSxlLmVsbX1hKHQpJiZfKHQpfX0oe25vZGVPcHM6S24sbW9kdWxlczpiaX0pO0omJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsKGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDt0JiZ0LnZtb2RlbCYmT2kodCwiaW5wdXQiKX0pKTt2YXIgX2k9e2luc2VydGVkOmZ1bmN0aW9uKHQsZSxuLHIpeyJzZWxlY3QiPT09bi50YWc/KHIuZWxtJiYhci5lbG0uX3ZPcHRpb25zP3NlKG4sInBvc3RwYXRjaCIsKGZ1bmN0aW9uKCl7X2kuY29tcG9uZW50VXBkYXRlZCh0LGUsbil9KSk6d2kodCxlLG4uY29udGV4dCksdC5fdk9wdGlvbnM9W10ubWFwLmNhbGwodC5vcHRpb25zLFRpKSk6KCJ0ZXh0YXJlYSI9PT1uLnRhZ3x8Sm4odC50eXBlKSkmJih0Ll92TW9kaWZpZXJzPWUubW9kaWZpZXJzLGUubW9kaWZpZXJzLmxhenl8fCh0LmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLENpKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIixraSksdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGtpKSxKJiYodC52bW9kZWw9ITApKSl9LGNvbXBvbmVudFVwZGF0ZWQ6ZnVuY3Rpb24odCxlLG4pe2lmKCJzZWxlY3QiPT09bi50YWcpe3dpKHQsZSxuLmNvbnRleHQpO3ZhciByPXQuX3ZPcHRpb25zLGk9dC5fdk9wdGlvbnM9W10ubWFwLmNhbGwodC5vcHRpb25zLFRpKTtpZihpLnNvbWUoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIUwodCxyW2VdKX0pKSl7dmFyIGE9dC5tdWx0aXBsZT9lLnZhbHVlLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiBTaSh0LGkpfSkpOmUudmFsdWUhPT1lLm9sZFZhbHVlJiZTaShlLnZhbHVlLGkpO2EmJk9pKHQsImNoYW5nZSIpfX19fTtmdW5jdGlvbiB3aSh0LGUsbil7eGkodCxlLG4pLChRfHxLKSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXt4aSh0LGUsbil9KSwwKX1mdW5jdGlvbiB4aSh0LGUsbil7dmFyIHI9ZS52YWx1ZSxpPXQubXVsdGlwbGU7aWYoIWl8fEFycmF5LmlzQXJyYXkocikpe2Zvcih2YXIgYSxvLHM9MCxjPXQub3B0aW9ucy5sZW5ndGg7czxjO3MrKylpZihvPXQub3B0aW9uc1tzXSxpKWE9aihyLFRpKG8pKT4tMSxvLnNlbGVjdGVkIT09YSYmKG8uc2VsZWN0ZWQ9YSk7ZWxzZSBpZihMKFRpKG8pLHIpKXJldHVybiB2b2lkKHQuc2VsZWN0ZWRJbmRleCE9PXMmJih0LnNlbGVjdGVkSW5kZXg9cykpO2l8fCh0LnNlbGVjdGVkSW5kZXg9LTEpfX1mdW5jdGlvbiBTaSh0LGUpe3JldHVybiBlLmV2ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4hTChlLHQpfSkpfWZ1bmN0aW9uIFRpKHQpe3JldHVybiJfdmFsdWUiaW4gdD90Ll92YWx1ZTp0LnZhbHVlfWZ1bmN0aW9uIENpKHQpe3QudGFyZ2V0LmNvbXBvc2luZz0hMH1mdW5jdGlvbiBraSh0KXt0LnRhcmdldC5jb21wb3NpbmcmJih0LnRhcmdldC5jb21wb3Npbmc9ITEsT2kodC50YXJnZXQsImlucHV0IikpfWZ1bmN0aW9uIE9pKHQsZSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkhUTUxFdmVudHMiKTtuLmluaXRFdmVudChlLCEwLCEwKSx0LmRpc3BhdGNoRXZlbnQobil9ZnVuY3Rpb24gRWkodCl7cmV0dXJuIXQuY29tcG9uZW50SW5zdGFuY2V8fHQuZGF0YSYmdC5kYXRhLnRyYW5zaXRpb24/dDpFaSh0LmNvbXBvbmVudEluc3RhbmNlLl92bm9kZSl9dmFyIElpPXtiaW5kOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1lLnZhbHVlO249RWkobik7dmFyIGk9bi5kYXRhJiZuLmRhdGEudHJhbnNpdGlvbixhPXQuX192T3JpZ2luYWxEaXNwbGF5PSJub25lIj09PXQuc3R5bGUuZGlzcGxheT8iIjp0LnN0eWxlLmRpc3BsYXk7ciYmaT8obi5kYXRhLnNob3c9ITAsZmkobiwoZnVuY3Rpb24oKXt0LnN0eWxlLmRpc3BsYXk9YX0pKSk6dC5zdHlsZS5kaXNwbGF5PXI/YToibm9uZSJ9LHVwZGF0ZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9ZS52YWx1ZSxpPWUub2xkVmFsdWU7aWYoIXIhPT0haSl7bj1FaShuKTt2YXIgYT1uLmRhdGEmJm4uZGF0YS50cmFuc2l0aW9uO2E/KG4uZGF0YS5zaG93PSEwLHI/ZmkobiwoZnVuY3Rpb24oKXt0LnN0eWxlLmRpc3BsYXk9dC5fX3ZPcmlnaW5hbERpc3BsYXl9KSk6ZGkobiwoZnVuY3Rpb24oKXt0LnN0eWxlLmRpc3BsYXk9Im5vbmUifSkpKTp0LnN0eWxlLmRpc3BsYXk9cj90Ll9fdk9yaWdpbmFsRGlzcGxheToibm9uZSJ9fSx1bmJpbmQ6ZnVuY3Rpb24odCxlLG4scixpKXtpfHwodC5zdHlsZS5kaXNwbGF5PXQuX192T3JpZ2luYWxEaXNwbGF5KX19LFBpPXttb2RlbDpfaSxzaG93OklpfSxNaT17bmFtZTpTdHJpbmcsYXBwZWFyOkJvb2xlYW4sY3NzOkJvb2xlYW4sbW9kZTpTdHJpbmcsdHlwZTpTdHJpbmcsZW50ZXJDbGFzczpTdHJpbmcsbGVhdmVDbGFzczpTdHJpbmcsZW50ZXJUb0NsYXNzOlN0cmluZyxsZWF2ZVRvQ2xhc3M6U3RyaW5nLGVudGVyQWN0aXZlQ2xhc3M6U3RyaW5nLGxlYXZlQWN0aXZlQ2xhc3M6U3RyaW5nLGFwcGVhckNsYXNzOlN0cmluZyxhcHBlYXJBY3RpdmVDbGFzczpTdHJpbmcsYXBwZWFyVG9DbGFzczpTdHJpbmcsZHVyYXRpb246W051bWJlcixTdHJpbmcsT2JqZWN0XX07ZnVuY3Rpb24gQWkodCl7dmFyIGU9dCYmdC5jb21wb25lbnRPcHRpb25zO3JldHVybiBlJiZlLkN0b3Iub3B0aW9ucy5hYnN0cmFjdD9BaShxZShlLmNoaWxkcmVuKSk6dH1mdW5jdGlvbiAkaSh0KXt2YXIgZT17fSxuPXQuJG9wdGlvbnM7Zm9yKHZhciByIGluIG4ucHJvcHNEYXRhKWVbcl09dFtyXTt2YXIgaT1uLl9wYXJlbnRMaXN0ZW5lcnM7Zm9yKHZhciBhIGluIGkpZVtTKGEpXT1pW2FdO3JldHVybiBlfWZ1bmN0aW9uIExpKHQsZSl7aWYoL1xkLWtlZXAtYWxpdmUkLy50ZXN0KGUudGFnKSlyZXR1cm4gdCgia2VlcC1hbGl2ZSIse3Byb3BzOmUuY29tcG9uZW50T3B0aW9ucy5wcm9wc0RhdGF9KX12YXIgamk9ZnVuY3Rpb24odCl7cmV0dXJuIHQudGFnfHxVZSh0KX0sUmk9ZnVuY3Rpb24odCl7cmV0dXJuInNob3ciPT09dC5uYW1lfSxOaT17bmFtZToidHJhbnNpdGlvbiIscHJvcHM6TWksYWJzdHJhY3Q6ITAscmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLiRzbG90cy5kZWZhdWx0O2lmKG4mJihuPW4uZmlsdGVyKGppKSxuLmxlbmd0aCkpezA7dmFyIHI9dGhpcy5tb2RlOzA7dmFyIGk9blswXTtpZihmdW5jdGlvbih0KXt3aGlsZSh0PXQucGFyZW50KWlmKHQuZGF0YS50cmFuc2l0aW9uKXJldHVybiEwfSh0aGlzLiR2bm9kZSkpcmV0dXJuIGk7dmFyIGE9QWkoaSk7aWYoIWEpcmV0dXJuIGk7aWYodGhpcy5fbGVhdmluZylyZXR1cm4gTGkodCxpKTt2YXIgbz0iX190cmFuc2l0aW9uLSIrdGhpcy5fdWlkKyItIjthLmtleT1udWxsPT1hLmtleT9hLmlzQ29tbWVudD9vKyJjb21tZW50IjpvK2EudGFnOnMoYS5rZXkpPzA9PT1TdHJpbmcoYS5rZXkpLmluZGV4T2Yobyk/YS5rZXk6bythLmtleTphLmtleTt2YXIgYz0oYS5kYXRhfHwoYS5kYXRhPXt9KSkudHJhbnNpdGlvbj0kaSh0aGlzKSx1PXRoaXMuX3Zub2RlLGw9QWkodSk7aWYoYS5kYXRhLmRpcmVjdGl2ZXMmJmEuZGF0YS5kaXJlY3RpdmVzLnNvbWUoUmkpJiYoYS5kYXRhLnNob3c9ITApLGwmJmwuZGF0YSYmIWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUua2V5PT09dC5rZXkmJmUudGFnPT09dC50YWd9KGEsbCkmJiFVZShsKSYmKCFsLmNvbXBvbmVudEluc3RhbmNlfHwhbC5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUuaXNDb21tZW50KSl7dmFyIGY9bC5kYXRhLnRyYW5zaXRpb249SSh7fSxjKTtpZigib3V0LWluIj09PXIpcmV0dXJuIHRoaXMuX2xlYXZpbmc9ITAsc2UoZiwiYWZ0ZXJMZWF2ZSIsKGZ1bmN0aW9uKCl7ZS5fbGVhdmluZz0hMSxlLiRmb3JjZVVwZGF0ZSgpfSkpLExpKHQsaSk7aWYoImluLW91dCI9PT1yKXtpZihVZShhKSlyZXR1cm4gdTt2YXIgZCxoPWZ1bmN0aW9uKCl7ZCgpfTtzZShjLCJhZnRlckVudGVyIixoKSxzZShjLCJlbnRlckNhbmNlbGxlZCIsaCksc2UoZiwiZGVsYXlMZWF2ZSIsKGZ1bmN0aW9uKHQpe2Q9dH0pKX19cmV0dXJuIGl9fX0sQmk9SSh7dGFnOlN0cmluZyxtb3ZlQ2xhc3M6U3RyaW5nfSxNaSk7ZGVsZXRlIEJpLm1vZGU7dmFyIERpPXtwcm9wczpCaSxiZWZvcmVNb3VudDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLl91cGRhdGU7dGhpcy5fdXBkYXRlPWZ1bmN0aW9uKG4scil7dmFyIGk9SmUodCk7dC5fX3BhdGNoX18odC5fdm5vZGUsdC5rZXB0LCExLCEwKSx0Ll92bm9kZT10LmtlcHQsaSgpLGUuY2FsbCh0LG4scil9fSxyZW5kZXI6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudGFnfHx0aGlzLiR2bm9kZS5kYXRhLnRhZ3x8InNwYW4iLG49T2JqZWN0LmNyZWF0ZShudWxsKSxyPXRoaXMucHJldkNoaWxkcmVuPXRoaXMuY2hpbGRyZW4saT10aGlzLiRzbG90cy5kZWZhdWx0fHxbXSxhPXRoaXMuY2hpbGRyZW49W10sbz0kaSh0aGlzKSxzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBjPWlbc107aWYoYy50YWcpaWYobnVsbCE9Yy5rZXkmJjAhPT1TdHJpbmcoYy5rZXkpLmluZGV4T2YoIl9fdmxpc3QiKSlhLnB1c2goYyksbltjLmtleV09YywoYy5kYXRhfHwoYy5kYXRhPXt9KSkudHJhbnNpdGlvbj1vO2Vsc2U7fWlmKHIpe2Zvcih2YXIgdT1bXSxsPVtdLGY9MDtmPHIubGVuZ3RoO2YrKyl7dmFyIGQ9cltmXTtkLmRhdGEudHJhbnNpdGlvbj1vLGQuZGF0YS5wb3M9ZC5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbltkLmtleV0/dS5wdXNoKGQpOmwucHVzaChkKX10aGlzLmtlcHQ9dChlLG51bGwsdSksdGhpcy5yZW1vdmVkPWx9cmV0dXJuIHQoZSxudWxsLGEpfSx1cGRhdGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wcmV2Q2hpbGRyZW4sZT10aGlzLm1vdmVDbGFzc3x8KHRoaXMubmFtZXx8InYiKSsiLW1vdmUiO3QubGVuZ3RoJiZ0aGlzLmhhc01vdmUodFswXS5lbG0sZSkmJih0LmZvckVhY2goRmkpLHQuZm9yRWFjaChXaSksdC5mb3JFYWNoKEhpKSx0aGlzLl9yZWZsb3c9ZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQsdC5mb3JFYWNoKChmdW5jdGlvbih0KXtpZih0LmRhdGEubW92ZWQpe3ZhciBuPXQuZWxtLHI9bi5zdHlsZTtpaShuLGUpLHIudHJhbnNmb3JtPXIuV2Via2l0VHJhbnNmb3JtPXIudHJhbnNpdGlvbkR1cmF0aW9uPSIiLG4uYWRkRXZlbnRMaXN0ZW5lcihacixuLl9tb3ZlQ2I9ZnVuY3Rpb24gdChyKXtyJiZyLnRhcmdldCE9PW58fHImJiEvdHJhbnNmb3JtJC8udGVzdChyLnByb3BlcnR5TmFtZSl8fChuLnJlbW92ZUV2ZW50TGlzdGVuZXIoWnIsdCksbi5fbW92ZUNiPW51bGwsYWkobixlKSl9KX19KSkpfSxtZXRob2RzOntoYXNNb3ZlOmZ1bmN0aW9uKHQsZSl7aWYoIUpyKXJldHVybiExO2lmKHRoaXMuX2hhc01vdmUpcmV0dXJuIHRoaXMuX2hhc01vdmU7dmFyIG49dC5jbG9uZU5vZGUoKTt0Ll90cmFuc2l0aW9uQ2xhc3NlcyYmdC5fdHJhbnNpdGlvbkNsYXNzZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7WHIobix0KX0pKSxZcihuLGUpLG4uc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy4kZWwuYXBwZW5kQ2hpbGQobik7dmFyIHI9Y2kobik7cmV0dXJuIHRoaXMuJGVsLnJlbW92ZUNoaWxkKG4pLHRoaXMuX2hhc01vdmU9ci5oYXNUcmFuc2Zvcm19fX07ZnVuY3Rpb24gRmkodCl7dC5lbG0uX21vdmVDYiYmdC5lbG0uX21vdmVDYigpLHQuZWxtLl9lbnRlckNiJiZ0LmVsbS5fZW50ZXJDYigpfWZ1bmN0aW9uIFdpKHQpe3QuZGF0YS5uZXdQb3M9dC5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9ZnVuY3Rpb24gSGkodCl7dmFyIGU9dC5kYXRhLnBvcyxuPXQuZGF0YS5uZXdQb3Mscj1lLmxlZnQtbi5sZWZ0LGk9ZS50b3Atbi50b3A7aWYocnx8aSl7dC5kYXRhLm1vdmVkPSEwO3ZhciBhPXQuZWxtLnN0eWxlO2EudHJhbnNmb3JtPWEuV2Via2l0VHJhbnNmb3JtPSJ0cmFuc2xhdGUoIityKyJweCwiK2krInB4KSIsYS50cmFuc2l0aW9uRHVyYXRpb249IjBzIn19dmFyIFZpPXtUcmFuc2l0aW9uOk5pLFRyYW5zaXRpb25Hcm91cDpEaX07VG4uY29uZmlnLm11c3RVc2VQcm9wPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4idmFsdWUiPT09biYmTG4odCkmJiJidXR0b24iIT09ZXx8InNlbGVjdGVkIj09PW4mJiJvcHRpb24iPT09dHx8ImNoZWNrZWQiPT09biYmImlucHV0Ij09PXR8fCJtdXRlZCI9PT1uJiYidmlkZW8iPT09dH0sVG4uY29uZmlnLmlzUmVzZXJ2ZWRUYWc9R24sVG4uY29uZmlnLmlzUmVzZXJ2ZWRBdHRyPSRuLFRuLmNvbmZpZy5nZXRUYWdOYW1lc3BhY2U9ZnVuY3Rpb24odCl7cmV0dXJuIFhuKHQpPyJzdmciOiJtYXRoIj09PXQ/Im1hdGgiOnZvaWQgMH0sVG4uY29uZmlnLmlzVW5rbm93bkVsZW1lbnQ9ZnVuY3Rpb24odCl7aWYoIXopcmV0dXJuITA7aWYoR24odCkpcmV0dXJuITE7aWYodD10LnRvTG93ZXJDYXNlKCksbnVsbCE9UW5bdF0pcmV0dXJuIFFuW3RdO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7cmV0dXJuIHQuaW5kZXhPZigiLSIpPi0xP1FuW3RdPWUuY29uc3RydWN0b3I9PT13aW5kb3cuSFRNTFVua25vd25FbGVtZW50fHxlLmNvbnN0cnVjdG9yPT09d2luZG93LkhUTUxFbGVtZW50OlFuW3RdPS9IVE1MVW5rbm93bkVsZW1lbnQvLnRlc3QoZS50b1N0cmluZygpKX0sSShUbi5vcHRpb25zLmRpcmVjdGl2ZXMsUGkpLEkoVG4ub3B0aW9ucy5jb21wb25lbnRzLFZpKSxUbi5wcm90b3R5cGUuX19wYXRjaF9fPXo/eWk6TSxUbi5wcm90b3R5cGUuX19jYWxsX2hvb2s9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2R0KCk7dmFyIHIsaT1uLiRvcHRpb25zW3RdLGE9dCsiIGhvb2siO2lmKGkpZm9yKHZhciBvPTAscz1pLmxlbmd0aDtvPHM7bysrKXI9VnQoaVtvXSxuLGU/W2VdOm51bGwsbixhKTtyZXR1cm4gbi5faGFzSG9va0V2ZW50JiZuLiRlbWl0KCJob29rOiIrdCxlKSxodCgpLHJ9LFRuLnByb3RvdHlwZS4kbW91bnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD10JiZ6P2Z1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT09dHlwZW9mIHQpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCk7cmV0dXJuIGV8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpfXJldHVybiB0fSh0KTp2b2lkIDAsZnVuY3Rpb24odCxlLG4pe3ZhciByO3JldHVybiB0LiRlbD1lLHQuJG9wdGlvbnMucmVuZGVyfHwodC4kb3B0aW9ucy5yZW5kZXI9Z3QpLHRuKHQsImJlZm9yZU1vdW50Iikscj1mdW5jdGlvbigpe3QuX3VwZGF0ZSh0Ll9yZW5kZXIoKSxuKX0sbmV3IGhuKHQscixNLHtiZWZvcmU6ZnVuY3Rpb24oKXt0Ll9pc01vdW50ZWQmJiF0Ll9pc0Rlc3Ryb3llZCYmdG4odCwiYmVmb3JlVXBkYXRlIil9fSwhMCksbj0hMSxudWxsPT10LiR2bm9kZSYmKHRuKHQsIm9uU2VydmljZUNyZWF0ZWQiKSx0bih0LCJvblNlcnZpY2VBdHRhY2hlZCIpLHQuX2lzTW91bnRlZD0hMCx0bih0LCJtb3VudGVkIikpLHR9KHRoaXMsdCxlKX0seiYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtELmRldnRvb2xzJiZhdCYmYXQuZW1pdCgiaW5pdCIsVG4pfSksMCksZVsiZGVmYXVsdCJdPVRufS5jYWxsKHRoaXMsbigiYzhiYSIpLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sZTE2MzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMWEyZCIpLGk9bigiMTYyNiIpLGE9bigiN2IwYiIpLG89bigiZjc3MiIpLHM9bigiZTE3NyIpLGM9bygiSUVfUFJPVE8iKSx1PU9iamVjdCxsPXUucHJvdG90eXBlO3QuZXhwb3J0cz1zP3UuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7dmFyIGU9YSh0KTtpZihyKGUsYykpcmV0dXJuIGVbY107dmFyIG49ZS5jb25zdHJ1Y3RvcjtyZXR1cm4gaShuKSYmZSBpbnN0YW5jZW9mIG4/bi5wcm90b3R5cGU6ZSBpbnN0YW5jZW9mIHU/bDpudWxsfX0sZTE3NzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZDAzOSIpO3QuZXhwb3J0cz0hcigoZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1udWxsLE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgdCkhPT10LnByb3RvdHlwZX0pKX0sZTI1ZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiYzIwZCIpO3Ioe2dsb2JhbDohMCxmb3JjZWQ6cGFyc2VJbnQhPWl9LHtwYXJzZUludDppfSl9LGUyNjA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJmYzZhIiksaT1uKCI0NGQyIiksYT1uKCIzZjhjIiksbz1uKCI2OWYzIikscz1uKCI5YmYyIikuZixjPW4oImM2ZDIiKSx1PW4oIjQ3NTQiKSxsPW4oImM0MzAiKSxmPW4oIjgzYWIiKSxkPW8uc2V0LGg9by5nZXR0ZXJGb3IoIkFycmF5IEl0ZXJhdG9yIik7dC5leHBvcnRzPWMoQXJyYXksIkFycmF5IiwoZnVuY3Rpb24odCxlKXtkKHRoaXMse3R5cGU6IkFycmF5IEl0ZXJhdG9yIix0YXJnZXQ6cih0KSxpbmRleDowLGtpbmQ6ZX0pfSksKGZ1bmN0aW9uKCl7dmFyIHQ9aCh0aGlzKSxlPXQudGFyZ2V0LG49dC5raW5kLHI9dC5pbmRleCsrO3JldHVybiFlfHxyPj1lLmxlbmd0aD8odC50YXJnZXQ9dm9pZCAwLHUodm9pZCAwLCEwKSk6dSgia2V5cyI9PW4/cjoidmFsdWVzIj09bj9lW3JdOltyLGVbcl1dLCExKX0pLCJ2YWx1ZXMiKTt2YXIgcD1hLkFyZ3VtZW50cz1hLkFycmF5O2lmKGkoImtleXMiKSxpKCJ2YWx1ZXMiKSxpKCJlbnRyaWVzIiksIWwmJmYmJiJ2YWx1ZXMiIT09cC5uYW1lKXRyeXtzKHAsIm5hbWUiLHt2YWx1ZToidmFsdWVzIn0pfWNhdGNoKHYpe319LGUzMzA6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjQwZDUiKSxpPUZ1bmN0aW9uLnByb3RvdHlwZSxhPWkuY2FsbCxvPXImJmkuYmluZC5iaW5kKGEsYSk7dC5leHBvcnRzPXI/bzpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseSh0LGFyZ3VtZW50cyl9fX0sZTMzMDE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiMTEwOCIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sZTM5MTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNTc3ZSIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10P2FyZ3VtZW50cy5sZW5ndGg8Mj8iIjplOnIodCl9fSxlNDM5OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyM2U3IiksaT1uKCJkMDM5IiksYT1uKCJmYzZhIiksbz1uKCIwNmNmIikuZixzPW4oIjgzYWIiKSxjPWkoKGZ1bmN0aW9uKCl7bygxKX0pKSx1PSFzfHxjO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDp1LHNoYW06IXN9LHtnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbyhhKHQpLGUpfX0pfSxlNDY3OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLiRlbWl0PWZ1bmN0aW9uKCl7cmV0dXJuIG8oYSwiJGVtaXQiLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpfSxlLiRvZmY9ZnVuY3Rpb24oKXtyZXR1cm4gbyhhLCIkb2ZmIixBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKX0sZS4kb249ZnVuY3Rpb24oKXtyZXR1cm4gbyhhLCIkb24iLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpfSxlLiRvbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG8oYSwiJG9uY2UiLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpfSxuKCJmYjZhIik7dmFyIGk9cihuKCJlMTQzIikpLGE9bmV3IGkuZGVmYXVsdDtmdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gdFtlXS5hcHBseSh0LG4pfX0sZTUwZDpmdW5jdGlvbih0LGUsbil7bigiODE3MiIpLG4oImVmZWMiKSxuKCJhNGQzIiksbigiZTAxYSIpLG4oImQzYjciKSxuKCJkOWUyIiksbigiZDQwMSIpLG4oImE5ZTMiKTt2YXIgcj1uKCI3MDM3IilbImRlZmF1bHQiXTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9PXIodCl8fG51bGw9PT10KXJldHVybiB0O3ZhciBuPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgaT1uLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT09cihpKSlyZXR1cm4gaTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWU/U3RyaW5nOk51bWJlcikodCl9LHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0c1siZGVmYXVsdCJdPXQuZXhwb3J0c30sZTUyYTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCJiZmU2IiksaT1uKCJlMDRjIik7Zm9yKHZhciBhIGluIGkpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiBpW3RdfSkpfShhKTt2YXIgbz1uKCJmMGM1Iikscz1PYmplY3Qob1siYSJdKShpWyJkZWZhdWx0Il0sclsiYiJdLHJbImMiXSwhMSxudWxsLG51bGwsbnVsbCwhMSxyWyJhIl0sdm9pZCAwKTtlWyJkZWZhdWx0Il09cy5leHBvcnRzfSxlNTM4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJiNjIyIik7ZS5mPXJ9LGU1NzQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiOTlhZiIpO3ZhciBpPXIobigiODc1MSIpKSxhPW4oIjYzMWEiKSxvPXtuYW1lOiJQYWdlQm9keSIsbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PWEudGFiQmFyLmhlaWdodHx8IjUwcHgiLGU9Ii51bmktYXBwLS1zaG93dGFiYmFyIHVuaS1wYWdlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAiLmNvbmNhdCh0LCIpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtICIpLmNvbmNhdCh0LCIgLSBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gIikuY29uY2F0KHQsIiAtIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gICAgICAgICAgICAgICAgICB9Iik7ZSs9IlxuIixlKz0nLnVuaS1hcHAtLXNob3d0YWJiYXIgdW5pLXBhZ2Utd3JhcHBlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgY29udGVudDogIiI7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnLmNvbmNhdCh0LCI7XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGMoIikuY29uY2F0KHQsIiArIGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygiKS5jb25jYXQodCwiICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICAgICAgICAgICAgICB9IiksZSs9IlxuIixlKz0nLnVuaS1hcHAtLXNob3d0YWJiYXIgdW5pLXBhZ2UtaGVhZFt1bmktcGFnZS1oZWFkLXR5cGU9ImRlZmF1bHQiXSB+IHVuaS1wYWdlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0NHB4IC0gJy5jb25jYXQodCwiKTtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNDRweCAtIGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC10b3ApIC0gIikuY29uY2F0KHQsIiAtIGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNDRweCAtIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSAtICIpLmNvbmNhdCh0LCIgLSBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xuICAgICAgICAgICAgICAgIH0iKSwoMCxpLmRlZmF1bHQpKGUpfX07ZS5kZWZhdWx0PW99LGU1OGM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyYmE0IiksaT1uKCJmYzZhIiksYT1uKCI1OTI2Iiksbz1uKCIwN2ZhIikscz1uKCJhNjQwIiksYz1NYXRoLm1pbix1PVtdLmxhc3RJbmRleE9mLGw9ISF1JiYxL1sxXS5sYXN0SW5kZXhPZigxLC0wKTwwLGY9cygibGFzdEluZGV4T2YiKSxkPWx8fCFmO3QuZXhwb3J0cz1kP2Z1bmN0aW9uKHQpe2lmKGwpcmV0dXJuIHIodSx0aGlzLGFyZ3VtZW50cyl8fDA7dmFyIGU9aSh0aGlzKSxuPW8oZSkscz1uLTE7Zm9yKGFyZ3VtZW50cy5sZW5ndGg+MSYmKHM9YyhzLGEoYXJndW1lbnRzWzFdKSkpLHM8MCYmKHM9bitzKTtzPj0wO3MtLSlpZihzIGluIGUmJmVbc109PT10KXJldHVybiBzfHwwO3JldHVybi0xfTp1fSxlNWNiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZDA2NiIpLGk9bigiMWEyZCIpLGE9bigiOTExMiIpLG89bigiM2E5YiIpLHM9bigiZDJiYiIpLGM9bigiZTg5MyIpLHU9bigiYWViMCIpLGw9bigiNzE1NiIpLGY9bigiZTM5MSIpLGQ9bigiYWIzNiIpLGg9bigiMGQyNiIpLHA9bigiYjk4MCIpLHY9bigiODNhYiIpLGc9bigiYzQzMCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixtKXt2YXIgYj1tPzI6MSx5PXQuc3BsaXQoIi4iKSxfPXlbeS5sZW5ndGgtMV0sdz1yLmFwcGx5KG51bGwseSk7aWYodyl7dmFyIHg9dy5wcm90b3R5cGU7aWYoIWcmJmkoeCwiY2F1c2UiKSYmZGVsZXRlIHguY2F1c2UsIW4pcmV0dXJuIHc7dmFyIFM9cigiRXJyb3IiKSxUPWUoKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZihtP2U6dCx2b2lkIDApLHI9bT9uZXcgdyh0KTpuZXcgdztyZXR1cm4gdm9pZCAwIT09biYmYShyLCJtZXNzYWdlIixuKSxwJiZhKHIsInN0YWNrIixoKHIuc3RhY2ssMikpLHRoaXMmJm8oeCx0aGlzKSYmbChyLHRoaXMsVCksYXJndW1lbnRzLmxlbmd0aD5iJiZkKHIsYXJndW1lbnRzW2JdKSxyfSkpO2lmKFQucHJvdG90eXBlPXgsIkVycm9yIiE9PV8/cz9zKFQsUyk6YyhULFMse25hbWU6ITB9KTp2JiYic3RhY2tUcmFjZUxpbWl0ImluIHcmJih1KFQsdywic3RhY2tUcmFjZUxpbWl0IiksdShULHcsInByZXBhcmVTdGFja1RyYWNlIikpLGMoVCx3KSwhZyl0cnl7eC5uYW1lIT09XyYmYSh4LCJuYW1lIixfKSx4LmNvbnN0cnVjdG9yPVR9Y2F0Y2goQyl7fXJldHVybiBUfX19LGU2Njc6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybntlcnJvcjohMSx2YWx1ZTp0KCl9fWNhdGNoKGUpe3JldHVybntlcnJvcjohMCx2YWx1ZTplfX19fSxlNmIwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciByPW4oIjFhMzkiKSxpPW4oImQ2MWUiKSxhPW4oIjQ0MDMiKSxvPXtyZXF1ZXN0Q29tcG9uZW50T2JzZXJ2ZXI6ci5yZXF1ZXN0Q29tcG9uZW50T2JzZXJ2ZXIsZGVzdHJveUNvbXBvbmVudE9ic2VydmVyOnIuZGVzdHJveUNvbXBvbmVudE9ic2VydmVyLHJlcXVlc3RNZWRpYVF1ZXJ5T2JzZXJ2ZXI6aS5yZXF1ZXN0TWVkaWFRdWVyeU9ic2VydmVyLGRlc3Ryb3lNZWRpYVF1ZXJ5T2JzZXJ2ZXI6aS5kZXN0cm95TWVkaWFRdWVyeU9ic2VydmVyLHJlcXVlc3RDb21wb25lbnRJbmZvOmEucmVxdWVzdENvbXBvbmVudEluZm99O2UuZGVmYXVsdD1vfSxlNmNmOmZ1bmN0aW9uKHQsZSxuKXtuKCI1ZTdlIiksbigiMTRlNSIpLG4oImNjOTgiKSxuKCIzNTI5IiksbigiZjIyYiIpLG4oIjcxNDkiKX0sZTc0MjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIwYTcxIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxlODkzOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIxYTJkIiksaT1uKCI1NmVmIiksYT1uKCIwNmNmIiksbz1uKCI5YmYyIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHM9aShlKSxjPW8uZix1PWEuZixsPTA7bDxzLmxlbmd0aDtsKyspe3ZhciBmPXNbbF07cih0LGYpfHxuJiZyKG4sZil8fGModCxmLHUoZSxmKSl9fX0sZThiNTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYzZiNiIpO3QuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbih0KXtyZXR1cm4iQXJyYXkiPT1yKHQpfX0sZThjMzpmdW5jdGlvbih0KXt0LmV4cG9ydHM9SlNPTi5wYXJzZSgneyJ1bmkuYXBwLnF1aXQiOiJBcHB1eWV6IMOgIG5vdXZlYXUgcG91ciBxdWl0dGVyIGxcJ2FwcGxpY2F0aW9uIiwidW5pLmFzeW5jLmVycm9yIjoiTGEgY29ubmV4aW9uIGEgZXhwaXLDqSwgY2xpcXVleiBzdXIgbFwnw6ljcmFuIHBvdXIgcsOpZXNzYXllci4iLCJ1bmkuc2hvd0FjdGlvblNoZWV0LmNhbmNlbCI6IkFubnVsZXIiLCJ1bmkuc2hvd1RvYXN0LnVucGFpcmVkIjoiVmV1aWxsZXogbm90ZXIgcXVlIHNob3dUb2FzdCBkb2l0IMOqdHJlIGFzc29jacOpIMOgIGhpZGVUb2FzdCIsInVuaS5zaG93TG9hZGluZy51bnBhaXJlZCI6IlZldWlsbGV6IG5vdGVyIHF1ZSBzaG93TG9hZGluZyBkb2l0IMOqdHJlIGFzc29jacOpIMOgIGhpZGVMb2FkaW5nIiwidW5pLnNob3dNb2RhbC5jYW5jZWwiOiJBbm51bGVyIiwidW5pLnNob3dNb2RhbC5jb25maXJtIjoiT0siLCJ1bmkuY2hvb3NlSW1hZ2UuY2FuY2VsIjoiQW5udWxlciIsInVuaS5jaG9vc2VJbWFnZS5zb3VyY2VUeXBlLmFsYnVtIjoiQWxidW0iLCJ1bmkuY2hvb3NlSW1hZ2Uuc291cmNlVHlwZS5jYW1lcmEiOiJDYW3DqXJhIiwidW5pLmNob29zZVZpZGVvLmNhbmNlbCI6IkFubnVsZXIiLCJ1bmkuY2hvb3NlVmlkZW8uc291cmNlVHlwZS5hbGJ1bSI6IkFsYnVtIiwidW5pLmNob29zZVZpZGVvLnNvdXJjZVR5cGUuY2FtZXJhIjoiQ2Ftw6lyYSIsInVuaS5jaG9vc2VGaWxlLm5vdFVzZXJBY3RpdmF0aW9uIjoiTGEgYm/DrnRlIGRlIGRpYWxvZ3VlIGR1IHPDqWxlY3RldXIgZGUgZmljaGllciBuZSBwZXV0IMOqdHJlIGFmZmljaMOpZSBxdVwnYXZlYyB1bmUgYWN0aXZhdGlvbiBwYXIgbFwndXRpbGlzYXRldXIiLCJ1bmkucHJldmlld0ltYWdlLmNhbmNlbCI6IkFubnVsZXIiLCJ1bmkucHJldmlld0ltYWdlLmJ1dHRvbi5zYXZlIjoiR3VhcmRhciBpbWFnZW4iLCJ1bmkucHJldmlld0ltYWdlLnNhdmUuc3VjY2VzcyI6IkVucmVnaXN0csOpIGF2ZWMgc3VjY8OocyIsInVuaS5wcmV2aWV3SW1hZ2Uuc2F2ZS5mYWlsIjoiw4ljaGVjIGRlIGxhIHNhdXZlZ2FyZGUiLCJ1bmkuc2V0Q2xpcGJvYXJkRGF0YS5zdWNjZXNzIjoiQ29udGVudSBjb3Bpw6kiLCJ1bmkuc2NhbkNvZGUudGl0bGUiOiJDb2RlIGTigJlhbmFseXNlIiwidW5pLnNjYW5Db2RlLmFsYnVtIjoiQWxidW0iLCJ1bmkuc2NhbkNvZGUuZmFpbCI6IkZhbGxvIGRlIHJlY29ub2NpbWllbnRvIiwidW5pLnNjYW5Db2RlLmZsYXNoLm9uIjoiQXBwdXlleiBwb3VyIGFjdGl2ZXIgbFwnw6ljbGFpcmFnZSIsInVuaS5zY2FuQ29kZS5mbGFzaC5vZmYiOiJBcHB1eWV6IHBvdXIgZMOpc2FjdGl2ZXIgbFwnw6ljbGFpcmFnZSIsInVuaS5zdGFydFNvdGVyQXV0aGVudGljYXRpb24uYXV0aENvbnRlbnQiOiJSZWNvbm5haXNzYW5jZSBkZSBsXCdlbXByZWludGUgZGlnaXRhbGUiLCJ1bmkuc3RhcnRTb3RlckF1dGhlbnRpY2F0aW9uLndhaXRpbmdDb250ZW50IjoiTcOpY29ubmFpc3NhYmxlIiwidW5pLnBpY2tlci5kb25lIjoiT0siLCJ1bmkucGlja2VyLmNhbmNlbCI6IkFubnVsZXIiLCJ1bmkudmlkZW8uZGFubXUiOiJEYW5tdSIsInVuaS52aWRlby52b2x1bWUiOiJMZSBWb2x1bWUiLCJ1bmkuYnV0dG9uLmZlZWRiYWNrLnRpdGxlIjoicmV0b3VyIGRcJ2luZm9ybWF0aW9uIiwidW5pLmJ1dHRvbi5mZWVkYmFjay5zZW5kIjoiZW52b3llciIsInVuaS5jaG9vc2VMb2NhdGlvbi5zZWFyY2giOiJUcm91dmUiLCJ1bmkuY2hvb3NlTG9jYXRpb24uY2FuY2VsIjoiQW5udWxlciJ9Jyl9LGU5MWY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IiksaT1uKCI0ZDY0IikuaW5kZXhPZixhPXIuYVR5cGVkQXJyYXksbz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7bygiaW5kZXhPZiIsKGZ1bmN0aW9uKHQpe3JldHVybiBpKGEodGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSl9LGU5NWE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImI2MjIiKSxpPW4oIjNmOGMiKSxhPXIoIml0ZXJhdG9yIiksbz1BcnJheS5wcm90b3R5cGU7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10JiYoaS5BcnJheT09PXR8fG9bYV09PT10KX19LGU5NzE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIG4oInVuaS1hcHAiLHtjbGFzczp7InVuaS1hcHAtLXNob3d0YWJiYXIiOnQuc2hvd1RhYkJhciwidW5pLWFwcC0tbWF4d2lkdGgiOnQuc2hvd01heFdpZHRofX0sW24oImxheW91dCIse3JlZjoibGF5b3V0IixhdHRyczp7InJvdXRlci1rZXkiOnQua2V5LCJrZWVwLWFsaXZlLWluY2x1ZGUiOnQua2VlcEFsaXZlSW5jbHVkZX0sb246e21heFdpZHRoOnQub25NYXhXaWR0aCxsYXlvdXQ6dC5vbkxheW91dH19KSx0Lmhhc1RhYkJhcj9uKCJ0YWItYmFyIix0Ll9iKHtkaXJlY3RpdmVzOlt7bmFtZToic2hvdyIscmF3TmFtZToidi1zaG93Iix2YWx1ZTp0LnNob3dUYWJCYXIsZXhwcmVzc2lvbjoic2hvd1RhYkJhciJ9XSxyZWY6InRhYkJhciJ9LCJ0YWItYmFyIix0LnRhYkJhck9wdGlvbnMsITEpKTp0Ll9lKCksdC4kb3B0aW9ucy5jb21wb25lbnRzLlRvYXN0P24oInRvYXN0Iix0Ll9iKHt9LCJ0b2FzdCIsdC5zaG93VG9hc3QsITEpKTp0Ll9lKCksdC4kb3B0aW9ucy5jb21wb25lbnRzLkFjdGlvblNoZWV0P24oImFjdGlvbi1zaGVldCIsdC5fYih7b246e2Nsb3NlOnQuX29uQWN0aW9uU2hlZXRDbG9zZX19LCJhY3Rpb24tc2hlZXQiLHQuc2hvd0FjdGlvblNoZWV0LCExKSk6dC5fZSgpLHQuJG9wdGlvbnMuY29tcG9uZW50cy5Nb2RhbD9uKCJtb2RhbCIsdC5fYih7b246e2Nsb3NlOnQuX29uTW9kYWxDbG9zZX19LCJtb2RhbCIsdC5zaG93TW9kYWwsITEpKTp0Ll9lKCksdC4kb3B0aW9ucy5jb21wb25lbnRzLlByZXZpZXdJbWFnZT9uKCJwcmV2aWV3LWltYWdlIix0Ll9iKHtvbjp7Y2xvc2U6dC5fb25QcmV2aWV3Q2xvc2V9fSwicHJldmlldy1pbWFnZSIsdC5wcmV2aWV3SW1hZ2UsITEpKTp0Ll9lKCksdC5zeXNDb21wb25lbnRzJiZ0LnN5c0NvbXBvbmVudHMubGVuZ3RoP3QuX2wodC5zeXNDb21wb25lbnRzLChmdW5jdGlvbih0LGUpe3JldHVybiBuKHQse2tleTplLHRhZzoiY29tcG9uZW50In0pfSkpOnQuX2UoKV0sMil9LGk9W119LGU5YzQ6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjIzZTciKSxpPW4oImQwNjYiKSxhPW4oIjJiYTQiKSxvPW4oImM2NWIiKSxzPW4oImUzMzAiKSxjPW4oImQwMzkiKSx1PW4oImU4YjUiKSxsPW4oIjE2MjYiKSxmPW4oIjg2MWQiKSxkPW4oImQ5YjUiKSxoPW4oImYzNmEiKSxwPW4oIjA0ZjgiKSx2PWkoIkpTT04iLCJzdHJpbmdpZnkiKSxnPXMoLy4vLmV4ZWMpLG09cygiIi5jaGFyQXQpLGI9cygiIi5jaGFyQ29kZUF0KSx5PXMoIiIucmVwbGFjZSksXz1zKDEuLnRvU3RyaW5nKSx3PS9bXHVEODAwLVx1REZGRl0vZyx4PS9eW1x1RDgwMC1cdURCRkZdJC8sUz0vXltcdURDMDAtXHVERkZGXSQvLFQ9IXB8fGMoKGZ1bmN0aW9uKCl7dmFyIHQ9aSgiU3ltYm9sIikoKTtyZXR1cm4iW251bGxdIiE9dihbdF0pfHwie30iIT12KHthOnR9KXx8Int9IiE9dihPYmplY3QodCkpfSkpLEM9YygoZnVuY3Rpb24oKXtyZXR1cm4nIlxcdWRmMDZcXHVkODM0IichPT12KCJcdWRmMDZcdWQ4MzQiKXx8JyJcXHVkZWFkIichPT12KCJcdWRlYWQiKX0pKSxrPWZ1bmN0aW9uKHQsZSl7dmFyIG49aChhcmd1bWVudHMpLHI9ZTtpZigoZihlKXx8dm9pZCAwIT09dCkmJiFkKHQpKXJldHVybiB1KGUpfHwoZT1mdW5jdGlvbih0LGUpe2lmKGwocikmJihlPW8ocix0aGlzLHQsZSkpLCFkKGUpKXJldHVybiBlfSksblsxXT1lLGEodixudWxsLG4pfSxPPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1tKG4sZS0xKSxpPW0obixlKzEpO3JldHVybiBnKHgsdCkmJiFnKFMsaSl8fGcoUyx0KSYmIWcoeCxyKT8iXFx1IitfKGIodCwwKSwxNik6dH07diYmcih7dGFyZ2V0OiJKU09OIixzdGF0OiEwLGFyaXR5OjMsZm9yY2VkOlR8fEN9LHtzdHJpbmdpZnk6ZnVuY3Rpb24odCxlLG4pe3ZhciByPWgoYXJndW1lbnRzKSxpPWEoVD9rOnYsbnVsbCxyKTtyZXR1cm4gQyYmInN0cmluZyI9PXR5cGVvZiBpP3koaSx3LE8pOml9fSl9LGVhMjc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZWFiNCIpLGk9bigiZDQxMiIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sZWFiNDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKSxuLmQoZSwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksbi5kKGUsImEiLChmdW5jdGlvbigpe30pKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuJGNyZWF0ZUVsZW1lbnQsZT10aGlzLl9zZWxmLl9jfHx0O3JldHVybiBlKCJ1bmktY2FudmFzIix0aGlzLl9nKHthdHRyczp7ImNhbnZhcy1pZCI6dGhpcy5jYW52YXNJZCwiZGlzYWJsZS1zY3JvbGwiOnRoaXMuZGlzYWJsZVNjcm9sbH19LHRoaXMuX2xpc3RlbmVycyksW2UoImNhbnZhcyIse3JlZjoiY2FudmFzIixhdHRyczp7d2lkdGg6IjMwMCIsaGVpZ2h0OiIxNTAifX0pLGUoImRpdiIse3N0YXRpY1N0eWxlOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDoiMCIsbGVmdDoiMCIsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsb3ZlcmZsb3c6ImhpZGRlbiJ9fSxbdGhpcy5fdCgiZGVmYXVsdCIpXSwyKSxlKCJ2LXVuaS1yZXNpemUtc2Vuc29yIix7cmVmOiJzZW5zb3IiLG9uOntyZXNpemU6dGhpcy5fcmVzaXplfX0pXSwxKX0saT1bXX0sZWFjNTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODYxZCIpLGk9TWF0aC5mbG9vcjt0LmV4cG9ydHM9TnVtYmVyLmlzSW50ZWdlcnx8ZnVuY3Rpb24odCl7cmV0dXJuIXIodCkmJmlzRmluaXRlKHQpJiZpKHQpPT09dH19LGViYjU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcixpLGEsbz1uKCI0YjExIikscz1uKCI4M2FiIiksYz1uKCJkYTg0IiksdT1uKCIxNjI2IiksbD1uKCI4NjFkIiksZj1uKCIxYTJkIiksZD1uKCJmNWRmIiksaD1uKCIwZDUxIikscD1uKCI5MTEyIiksdj1uKCJjYjJkIiksZz1uKCI5YmYyIikuZixtPW4oIjNhOWIiKSxiPW4oImUxNjMiKSx5PW4oImQyYmIiKSxfPW4oImI2MjIiKSx3PW4oIjkwZTMiKSx4PW4oIjY5ZjMiKSxTPXguZW5mb3JjZSxUPXguZ2V0LEM9Yy5JbnQ4QXJyYXksaz1DJiZDLnByb3RvdHlwZSxPPWMuVWludDhDbGFtcGVkQXJyYXksRT1PJiZPLnByb3RvdHlwZSxJPUMmJmIoQyksUD1rJiZiKGspLE09T2JqZWN0LnByb3RvdHlwZSxBPWMuVHlwZUVycm9yLCQ9XygidG9TdHJpbmdUYWciKSxMPXcoIlRZUEVEX0FSUkFZX1RBRyIpLGo9byYmISF5JiYiT3BlcmEiIT09ZChjLm9wZXJhKSxSPSExLE49e0ludDhBcnJheToxLFVpbnQ4QXJyYXk6MSxVaW50OENsYW1wZWRBcnJheToxLEludDE2QXJyYXk6MixVaW50MTZBcnJheToyLEludDMyQXJyYXk6NCxVaW50MzJBcnJheTo0LEZsb2F0MzJBcnJheTo0LEZsb2F0NjRBcnJheTo4fSxCPXtCaWdJbnQ2NEFycmF5OjgsQmlnVWludDY0QXJyYXk6OH0sRD1mdW5jdGlvbih0KXt2YXIgZT1iKHQpO2lmKGwoZSkpe3ZhciBuPVQoZSk7cmV0dXJuIG4mJmYobiwiVHlwZWRBcnJheUNvbnN0cnVjdG9yIik/blsiVHlwZWRBcnJheUNvbnN0cnVjdG9yIl06RChlKX19LEY9ZnVuY3Rpb24odCl7aWYoIWwodCkpcmV0dXJuITE7dmFyIGU9ZCh0KTtyZXR1cm4gZihOLGUpfHxmKEIsZSl9O2ZvcihyIGluIE4paT1jW3JdLGE9aSYmaS5wcm90b3R5cGUsYT9TKGEpWyJUeXBlZEFycmF5Q29uc3RydWN0b3IiXT1pOmo9ITE7Zm9yKHIgaW4gQilpPWNbcl0sYT1pJiZpLnByb3RvdHlwZSxhJiYoUyhhKVsiVHlwZWRBcnJheUNvbnN0cnVjdG9yIl09aSk7aWYoKCFqfHwhdShJKXx8ST09PUZ1bmN0aW9uLnByb3RvdHlwZSkmJihJPWZ1bmN0aW9uKCl7dGhyb3cgQSgiSW5jb3JyZWN0IGludm9jYXRpb24iKX0saikpZm9yKHIgaW4gTiljW3JdJiZ5KGNbcl0sSSk7aWYoKCFqfHwhUHx8UD09PU0pJiYoUD1JLnByb3RvdHlwZSxqKSlmb3IociBpbiBOKWNbcl0mJnkoY1tyXS5wcm90b3R5cGUsUCk7aWYoaiYmYihFKSE9PVAmJnkoRSxQKSxzJiYhZihQLCQpKWZvcihyIGluIFI9ITAsZyhQLCQse2dldDpmdW5jdGlvbigpe3JldHVybiBsKHRoaXMpP3RoaXNbTF06dm9pZCAwfX0pLE4pY1tyXSYmcChjW3JdLEwscik7dC5leHBvcnRzPXtOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTOmosVFlQRURfQVJSQVlfVEFHOlImJkwsYVR5cGVkQXJyYXk6ZnVuY3Rpb24odCl7aWYoRih0KSlyZXR1cm4gdDt0aHJvdyBBKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkiKX0sYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpmdW5jdGlvbih0KXtpZih1KHQpJiYoIXl8fG0oSSx0KSkpcmV0dXJuIHQ7dGhyb3cgQShoKHQpKyIgaXMgbm90IGEgdHlwZWQgYXJyYXkgY29uc3RydWN0b3IiKX0sZXhwb3J0VHlwZWRBcnJheU1ldGhvZDpmdW5jdGlvbih0LGUsbixyKXtpZihzKXtpZihuKWZvcih2YXIgaSBpbiBOKXt2YXIgYT1jW2ldO2lmKGEmJmYoYS5wcm90b3R5cGUsdCkpdHJ5e2RlbGV0ZSBhLnByb3RvdHlwZVt0XX1jYXRjaChvKXt0cnl7YS5wcm90b3R5cGVbdF09ZX1jYXRjaCh1KXt9fX1QW3RdJiYhbnx8dihQLHQsbj9lOmomJmtbdF18fGUscil9fSxleHBvcnRUeXBlZEFycmF5U3RhdGljTWV0aG9kOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpO2lmKHMpe2lmKHkpe2lmKG4pZm9yKHIgaW4gTilpZihpPWNbcl0saSYmZihpLHQpKXRyeXtkZWxldGUgaVt0XX1jYXRjaChhKXt9aWYoSVt0XSYmIW4pcmV0dXJuO3RyeXtyZXR1cm4gdihJLHQsbj9lOmomJklbdF18fGUpfWNhdGNoKGEpe319Zm9yKHIgaW4gTilpPWNbcl0sIWl8fGlbdF0mJiFufHx2KGksdCxlKX19LGdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpELGlzVmlldzpmdW5jdGlvbih0KXtpZighbCh0KSlyZXR1cm4hMTt2YXIgZT1kKHQpO3JldHVybiJEYXRhVmlldyI9PT1lfHxmKE4sZSl8fGYoQixlKX0saXNUeXBlZEFycmF5OkYsVHlwZWRBcnJheTpJLFR5cGVkQXJyYXlQcm90b3R5cGU6UH19LGVjYmY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIHQucmVzcG9uc2l2ZT9uKCJ1bmktbGF5b3V0Iix7Y2xhc3M6eyJ1bmktYXBwLS1zaG93bGF5b3V0Ijp0LnNob3dMYXlvdXQsInVuaS1hcHAtLXNob3d0b3B3aW5kb3ciOnQuc2hvd1RvcFdpbmRvdywidW5pLWFwcC0tc2hvd2xlZnR3aW5kb3ciOnQuc2hvd0xlZnRXaW5kb3csInVuaS1hcHAtLXNob3dyaWdodHdpbmRvdyI6dC5zaG93UmlnaHRXaW5kb3d9fSxbdC50b3BXaW5kb3c/bigidW5pLXRvcC13aW5kb3ciLHtkaXJlY3RpdmVzOlt7bmFtZToic2hvdyIscmF3TmFtZToidi1zaG93Iix2YWx1ZTp0LnNob3dUb3BXaW5kb3d8fHQuYXBpU2hvd1RvcFdpbmRvdyxleHByZXNzaW9uOiJzaG93VG9wV2luZG93IHx8IGFwaVNob3dUb3BXaW5kb3cifV19LFtuKCJkaXYiLHtyZWY6InRvcFdpbmRvdyIsc3RhdGljQ2xhc3M6InVuaS10b3Atd2luZG93IixzdHlsZTp0LnRvcFdpbmRvd1N0eWxlfSxbbigidi11bmktdG9wLXdpbmRvdyIsdC5fYih7cmVmOiJ0b3AiLGF0dHJzOnsibmF2aWdhdGlvbi1iYXItdGl0bGUtdGV4dCI6dC5uYXZpZ2F0aW9uQmFyVGl0bGVUZXh0fSxvbjp7Imhvb2s6bW91bnRlZCI6dC5vblRvcFdpbmRvd0luaXR9fSwidi11bmktdG9wLXdpbmRvdyIsdC5iaW5kV2luZG93LCExKSldLDEpLG4oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdG9wLXdpbmRvdy0tcGxhY2Vob2xkZXIiLHN0eWxlOntoZWlnaHQ6dC50b3BXaW5kb3dIZWlnaHR9fSldKTp0Ll9lKCksbigidW5pLWNvbnRlbnQiLFtuKCJ1bmktbWFpbiIsW24oImtlZXAtYWxpdmUiLHthdHRyczp7aW5jbHVkZTp0LmtlZXBBbGl2ZUluY2x1ZGV9fSxbbigicm91dGVyLXZpZXciLHtrZXk6dC5yb3V0ZXJLZXl9KV0sMSldLDEpLHQubGVmdFdpbmRvdz9uKCJ1bmktbGVmdC13aW5kb3ciLHtkaXJlY3RpdmVzOlt7bmFtZToic2hvdyIscmF3TmFtZToidi1zaG93Iix2YWx1ZTp0LnNob3dMZWZ0V2luZG93fHx0LmFwaVNob3dMZWZ0V2luZG93LGV4cHJlc3Npb246InNob3dMZWZ0V2luZG93IHx8IGFwaVNob3dMZWZ0V2luZG93In1dLHJlZjoibGVmdFdpbmRvdyIsc3R5bGU6dC5sZWZ0V2luZG93U3R5bGUsYXR0cnM6eyJkYXRhLXNob3ciOnQuYXBpU2hvd0xlZnRXaW5kb3d9fSxbdC5hcGlTaG93TGVmdFdpbmRvdz9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLW1hc2siLG9uOntjbGljazpmdW5jdGlvbihlKXt0LmFwaVNob3dMZWZ0V2luZG93PSExfX19KTp0Ll9lKCksbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1sZWZ0LXdpbmRvdyJ9LFtuKCJ2LXVuaS1sZWZ0LXdpbmRvdyIsdC5fYih7cmVmOiJsZWZ0Iixvbjp7Imhvb2s6bW91bnRlZCI6dC5vbkxlZnRXaW5kb3dJbml0fX0sInYtdW5pLWxlZnQtd2luZG93Iix0LmJpbmRXaW5kb3csITEpKV0sMSldKTp0Ll9lKCksdC5yaWdodFdpbmRvdz9uKCJ1bmktcmlnaHQtd2luZG93Iix7ZGlyZWN0aXZlczpbe25hbWU6InNob3ciLHJhd05hbWU6InYtc2hvdyIsdmFsdWU6dC5zaG93UmlnaHRXaW5kb3d8fHQuYXBpU2hvd1JpZ2h0V2luZG93LGV4cHJlc3Npb246InNob3dSaWdodFdpbmRvdyB8fCBhcGlTaG93UmlnaHRXaW5kb3cifV0scmVmOiJyaWdodFdpbmRvdyIsc3R5bGU6dC5yaWdodFdpbmRvd1N0eWxlLGF0dHJzOnsiZGF0YS1zaG93Ijp0LmFwaVNob3dSaWdodFdpbmRvd319LFt0LmFwaVNob3dSaWdodFdpbmRvdz9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLW1hc2siLG9uOntjbGljazpmdW5jdGlvbihlKXt0LmFwaVNob3dSaWdodFdpbmRvdz0hMX19fSk6dC5fZSgpLG4oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktcmlnaHQtd2luZG93In0sW24oInYtdW5pLXJpZ2h0LXdpbmRvdyIsdC5fYih7cmVmOiJyaWdodCIsb246eyJob29rOm1vdW50ZWQiOnQub25SaWdodFdpbmRvd0luaXR9fSwidi11bmktcmlnaHQtd2luZG93Iix0LmJpbmRXaW5kb3csITEpKV0sMSldKTp0Ll9lKCldLDEpXSwxKTpuKCJrZWVwLWFsaXZlIix7YXR0cnM6e2luY2x1ZGU6dC5rZWVwQWxpdmVJbmNsdWRlfX0sW24oInJvdXRlci12aWV3Iix7a2V5OnQucm91dGVyS2V5fSldLDEpfSxpPVtdfSxlZGQwOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIxM2QyIiksaT1uKCI5YmYyIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbi5nZXQmJnIobi5nZXQsZSx7Z2V0dGVyOiEwfSksbi5zZXQmJnIobi5zZXQsZSx7c2V0dGVyOiEwfSksaS5mKHQsZSxuKX19LGVmZDQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIHQuaGFzVGFiQmFyP24oInVuaS10YWJiYXIiLHtkaXJlY3RpdmVzOlt7bmFtZToic2hvdyIscmF3TmFtZToidi1zaG93Iix2YWx1ZTp0LnNob3dUYWJCYXIsZXhwcmVzc2lvbjoic2hvd1RhYkJhciJ9XX0sW24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdGFiYmFyIixzdHlsZTp7ImZsZXgtZGlyZWN0aW9uIjoidmVydGljYWwiPT09dC5kaXJlY3Rpb24/ImNvbHVtbiI6InJvdyIsYmFja2dyb3VuZENvbG9yOnQudGFiQmFyT3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3J9fSxbdC5fbCh0LnRhYkJhck9wdGlvbnMubGlzdCwoZnVuY3Rpb24oZSxyKXtyZXR1cm5bITEhPT1lLnZpc2libGU/bigiZGl2Iix7a2V5OmUucGFnZVBhdGgsc3RhdGljQ2xhc3M6InVuaS10YWJiYXJfX2l0ZW0iLG9uOntjbGljazpmdW5jdGlvbihuKXtyZXR1cm4gdC5fc3dpdGNoVGFiKGUscil9fX0sW24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdGFiYmFyX19iZCJ9LFt0LnNob3dJY29uJiZlLmljb25QYXRoP24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdGFiYmFyX19pY29uIixjbGFzczp7InVuaS10YWJiYXJfX2ljb25fX2RpZmYiOiFlLnRleHR9fSxbbigiaW1nIix7YXR0cnM6e3NyYzp0Ll9nZXRSZWFsUGF0aCh0LnNlbGVjdGVkSW5kZXg9PT1yP2Uuc2VsZWN0ZWRJY29uUGF0aDplLmljb25QYXRoKX19KSxlLnJlZERvdD9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXRhYmJhcl9fcmVkZG90IixjbGFzczp7InVuaS10YWJiYXJfX2JhZGdlIjohIWUuYmFkZ2V9fSxbdC5fdigiXG4gICAgICAgICAgICAgICIrdC5fcyhlLmJhZGdlKSsiXG4gICAgICAgICAgICAiKV0pOnQuX2UoKV0pOnQuX2UoKSxlLnRleHQ/bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS10YWJiYXJfX2xhYmVsIixzdHlsZTp7Y29sb3I6dC5zZWxlY3RlZEluZGV4PT09cj90LnRhYkJhck9wdGlvbnMuc2VsZWN0ZWRDb2xvcjp0LnRhYkJhck9wdGlvbnMuY29sb3IsZm9udFNpemU6dC5zaG93SWNvbiYmZS5pY29uUGF0aD8iMTBweCI6IjE0cHgifX0sW3QuX3YoIlxuICAgICAgICAgICAgIit0Ll9zKGUudGV4dCkrIlxuICAgICAgICAgICAgIiksIWUucmVkRG90fHx0LnNob3dJY29uJiZlLmljb25QYXRoP3QuX2UoKTpuKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXRhYmJhcl9fcmVkZG90IixjbGFzczp7InVuaS10YWJiYXJfX2JhZGdlIjohIWUuYmFkZ2V9fSxbdC5fdigiXG4gICAgICAgICAgICAgICIrdC5fcyhlLmJhZGdlKSsiXG4gICAgICAgICAgICAiKV0pXSk6dC5fZSgpXSldKTp0Ll9lKCldfSkpXSwyKV0pOnQuX2UoKX0saT1bXX0sZWZlYzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMWEyZCIpLGk9bigiY2IyZCIpLGE9bigiNTFlYiIpLG89bigiYjYyMiIpLHM9bygidG9QcmltaXRpdmUiKSxjPURhdGUucHJvdG90eXBlO3IoYyxzKXx8aShjLHMsYSl9LGYwNjk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI1OWVkIiksaT1UeXBlRXJyb3IsYT1mdW5jdGlvbih0KXt2YXIgZSxuO3RoaXMucHJvbWlzZT1uZXcgdCgoZnVuY3Rpb24odCxyKXtpZih2b2lkIDAhPT1lfHx2b2lkIDAhPT1uKXRocm93IGkoIkJhZCBQcm9taXNlIGNvbnN0cnVjdG9yIik7ZT10LG49cn0pKSx0aGlzLnJlc29sdmU9cihlKSx0aGlzLnJlamVjdD1yKG4pfTt0LmV4cG9ydHMuZj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGEodCl9fSxmMGIxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmxpZmVjeWNsZU1peGluPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZXh0ZW5kO3QuZXh0ZW5kPWZ1bmN0aW9uKHQpe3Q9dHx8e307dmFyIG49dC5tZXRob2RzO24mJk9iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKGUpey0xIT09YS5pbmRleE9mKGUpJiYodFtlXT1uW2VdLGRlbGV0ZSBuW2VdKX0pKTt2YXIgcj10LnNldHVwO2lmKHIpe3ZhciBpPSIiO3RyeXtpPXIudG9TdHJpbmcoKX1jYXRjaChvKXt9WyJvblBhZ2VTY3JvbGwiLCJvblJlYWNoQm90dG9tIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7aS5pbmRleE9mKCJ1bmlBcHAuIi5jb25jYXQoZSkpJiYhdFtlXSYmKHRbZV09W2Z1bmN0aW9uKCl7fV0pfSkpfXJldHVybiBlLmNhbGwodGhpcyx0KX07dmFyIG49dC5jb25maWcub3B0aW9uTWVyZ2VTdHJhdGVnaWVzLHI9bi5jcmVhdGVkO2EuZm9yRWFjaCgoZnVuY3Rpb24odCl7blt0XT1yfSkpLG4ubXBPcHRpb25zPWZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuIGU7dmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gcyhuLHQpLGUmJnMobixlKSxufX0sbigiMTRkOSIpLG4oImQzYjciKSxuKCIxNTliIiksbigiYjY0YiIpLG4oImM5NzUiKSxuKCJkNDAxIiksbigiMjVmMCIpO3ZhciBpPXIobigiMjkwOSIpKSxhPVsib25MYXVuY2giLCJvblNob3ciLCJvbkhpZGUiLCJvblVuaU5WaWV3TWVzc2FnZSIsIm9uUGFnZU5vdEZvdW5kIiwib25UaGVtZUNoYW5nZSIsIm9uRXJyb3IiLCJvblVuaGFuZGxlZFJlamVjdGlvbiIsIm9uSW5pdCIsIm9uTG9hZCIsIm9uUmVhZHkiLCJvblVubG9hZCIsIm9uUHVsbERvd25SZWZyZXNoIiwib25SZWFjaEJvdHRvbSIsIm9uVGFiSXRlbVRhcCIsIm9uQWRkVG9GYXZvcml0ZXMiLCJvblNoYXJlVGltZWxpbmUiLCJvblNoYXJlQXBwTWVzc2FnZSIsIm9uUmVzaXplIiwib25QYWdlU2Nyb2xsIiwib25OYXZpZ2F0aW9uQmFyQnV0dG9uVGFwIiwib25CYWNrUHJlc3MiLCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dENoYW5nZWQiLCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dENvbmZpcm1lZCIsIm9uTmF2aWdhdGlvbkJhclNlYXJjaElucHV0Q2xpY2tlZCIsIm9uTmF2aWdhdGlvbkJhclNlYXJjaElucHV0Rm9jdXNDaGFuZ2VkIiwib25QYWdlU2hvdyIsIm9uUGFnZUhpZGUiLCJvblBhZ2VSZXNpemUiLCJvblNlcnZpY2VDcmVhdGVkIiwib25TZXJ2aWNlQXR0YWNoZWQiXSxvPVsiZGF0YSIsInByb3BlcnRpZXMiLCJvcHRpb25zIiwicmVsYXRpb25zIl07ZnVuY3Rpb24gcyh0LGUpe28uZm9yRWFjaCgoZnVuY3Rpb24obil7KGZ1bmN0aW9uKHQsZSxuKXtlW25dJiZPYmplY3QuYXNzaWduKHRbbl18fCh0W25dPXt9KSxlW25dKX0pKHQsZSxuKX0pKSxlLmV4dGVybmFsQ2xhc3NlcyYmZnVuY3Rpb24odCxlKXt0LnB1c2guYXBwbHkodCwoMCxpLmRlZmF1bHQpKGUpKX0odC5leHRlcm5hbENsYXNzZXN8fCh0LmV4dGVybmFsQ2xhc3Nlcz1bXSksZS5leHRlcm5hbENsYXNzZXMpLGUucGF0aCYmKHQucGF0aD1lLnBhdGgpfX0sZjBjNTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxlLG4scixpLGEsbyxzLGMsdSl7dmFyIGwsZj0iZnVuY3Rpb24iPT09dHlwZW9mIHQ/dC5vcHRpb25zOnQ7aWYoYyl7Zi5jb21wb25lbnRzfHwoZi5jb21wb25lbnRzPXt9KTt2YXIgZD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Zvcih2YXIgaCBpbiBjKWQuY2FsbChjLGgpJiYhZC5jYWxsKGYuY29tcG9uZW50cyxoKSYmKGYuY29tcG9uZW50c1toXT1jW2hdKX1pZih1JiYoImZ1bmN0aW9uIj09PXR5cGVvZiB1LmJlZm9yZUNyZWF0ZSYmKHUuYmVmb3JlQ3JlYXRlPVt1LmJlZm9yZUNyZWF0ZV0pLCh1LmJlZm9yZUNyZWF0ZXx8KHUuYmVmb3JlQ3JlYXRlPVtdKSkudW5zaGlmdCgoZnVuY3Rpb24oKXt0aGlzW3UuX19tb2R1bGVdPXRoaXN9KSksKGYubWl4aW5zfHwoZi5taXhpbnM9W10pKS5wdXNoKHUpKSxlJiYoZi5yZW5kZXI9ZSxmLnN0YXRpY1JlbmRlckZucz1uLGYuX2NvbXBpbGVkPSEwKSxyJiYoZi5mdW5jdGlvbmFsPSEwKSxhJiYoZi5fc2NvcGVJZD0iZGF0YS12LSIrYSksbz8obD1mdW5jdGlvbih0KXt0PXR8fHRoaXMuJHZub2RlJiZ0aGlzLiR2bm9kZS5zc3JDb250ZXh0fHx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuJHZub2RlJiZ0aGlzLnBhcmVudC4kdm5vZGUuc3NyQ29udGV4dCx0fHwidW5kZWZpbmVkIj09PXR5cGVvZiBfX1ZVRV9TU1JfQ09OVEVYVF9ffHwodD1fX1ZVRV9TU1JfQ09OVEVYVF9fKSxpJiZpLmNhbGwodGhpcyx0KSx0JiZ0Ll9yZWdpc3RlcmVkQ29tcG9uZW50cyYmdC5fcmVnaXN0ZXJlZENvbXBvbmVudHMuYWRkKG8pfSxmLl9zc3JSZWdpc3Rlcj1sKTppJiYobD1zP2Z1bmN0aW9uKCl7aS5jYWxsKHRoaXMsdGhpcy4kcm9vdC4kb3B0aW9ucy5zaGFkb3dSb290KX06aSksbClpZihmLmZ1bmN0aW9uYWwpe2YuX2luamVjdFN0eWxlcz1sO3ZhciBwPWYucmVuZGVyO2YucmVuZGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGwuY2FsbChlKSxwKHQsZSl9fWVsc2V7dmFyIHY9Zi5iZWZvcmVDcmVhdGU7Zi5iZWZvcmVDcmVhdGU9dj9bXS5jb25jYXQodixsKTpbbF19cmV0dXJue2V4cG9ydHM6dCxvcHRpb25zOmZ9fW4uZChlLCJhIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKX0sZjBjYzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKSxuLmQoZSwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksbi5kKGUsImEiLChmdW5jdGlvbigpe30pKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10LiRjcmVhdGVFbGVtZW50LG49dC5fc2VsZi5fY3x8ZTtyZXR1cm4gbigidW5pLXBhZ2UtaGVhZCIse2F0dHJzOnsidW5pLXBhZ2UtaGVhZC10eXBlIjp0LnR5cGV9fSxbbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWQiLGNsYXNzOnQuaGVhZENsYXNzLHN0eWxlOnt0cmFuc2l0aW9uRHVyYXRpb246dC5kdXJhdGlvbix0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246dC50aW1pbmdGdW5jLGJhY2tncm91bmRDb2xvcjp0LmJnQ29sb3IsY29sb3I6dC50ZXh0Q29sb3J9fSxbbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWQtaGQifSxbbigiZGl2Iix7ZGlyZWN0aXZlczpbe25hbWU6InNob3ciLHJhd05hbWU6InYtc2hvdyIsdmFsdWU6dC5iYWNrQnV0dG9uLGV4cHJlc3Npb246ImJhY2tCdXR0b24ifV0sc3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWQtYnRuIixvbjp7Y2xpY2s6dC5fYmFja319LFtuKCJpIix7c3RhdGljQ2xhc3M6InVuaS1idG4taWNvbiIsc3R5bGU6e2NvbG9yOnQuY29sb3IsZm9udFNpemU6IjI3cHgifX0sW3QuX3YoIu6YgSIpXSldKSxuKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXBhZ2UtaGVhZC1mdCJ9LFt0Ll9sKHQuYnRucywoZnVuY3Rpb24oZSxyKXtyZXR1cm5bImxlZnQiPT09ZS5mbG9hdD9uKCJkaXYiLHtrZXk6cixzdGF0aWNDbGFzczoidW5pLXBhZ2UtaGVhZC1idG4iLGNsYXNzOnsidW5pLXBhZ2UtaGVhZC1idG4tcmVkLWRvdCI6ZS5yZWREb3R8fGUuYmFkZ2VUZXh0LCJ1bmktcGFnZS1oZWFkLWJ0bi1zZWxlY3QiOmUuc2VsZWN0fSxzdHlsZTp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCI9PT10LnR5cGU/ZS5iYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsd2lkdGg6ZS53aWR0aH0sYXR0cnM6eyJiYWRnZS10ZXh0IjplLmJhZGdlVGV4dH19LFtuKCJpIix7c3RhdGljQ2xhc3M6InVuaS1idG4taWNvbiIsc3R5bGU6dC5fZm9ybWF0QnRuU3R5bGUoZSksZG9tUHJvcHM6e2lubmVySFRNTDp0Ll9zKHQuX2Zvcm1hdEJ0bkZvbnRUZXh0KGUpKX0sb246e2NsaWNrOmZ1bmN0aW9uKGUpe3JldHVybiB0Ll9vbkJ0bkNsaWNrKHIpfX19KV0pOnQuX2UoKV19KSldLDIpXSksdC5zZWFyY2hJbnB1dD90Ll9lKCk6bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWQtYmQifSxbbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWRfX3RpdGxlIixzdHlsZTp7Zm9udFNpemU6dC50aXRsZVNpemUsb3BhY2l0eToidHJhbnNwYXJlbnQiPT09dC50eXBlPzA6MX19LFt0LmxvYWRpbmc/bigiaSIse3N0YXRpY0NsYXNzOiJ1bmktbG9hZGluZyJ9KTp0Ll9lKCksIiIhPT10LnRpdGxlSW1hZ2U/bigiaW1nIix7c3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWRfX3RpdGxlX2ltYWdlIixhdHRyczp7c3JjOnQudGl0bGVJbWFnZX19KTpbdC5fdigiXG4gICAgICAgICAgIit0Ll9zKHQudGl0bGVUZXh0KSsiXG4gICAgICAgICIpXV0sMildKSx0LnNlYXJjaElucHV0P24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktcGFnZS1oZWFkLXNlYXJjaCIsc3R5bGU6eyJib3JkZXItcmFkaXVzIjp0LnNlYXJjaElucHV0LmJvcmRlclJhZGl1cywiYmFja2dyb3VuZC1jb2xvciI6dC5zZWFyY2hJbnB1dC5iYWNrZ3JvdW5kQ29sb3J9fSxbbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWQtc2VhcmNoLXBsYWNlaG9sZGVyIixjbGFzczpbInVuaS1wYWdlLWhlYWQtc2VhcmNoLXBsYWNlaG9sZGVyLSIrKHQuZm9jdXN8fHQuc2hvd1BsYWNlaG9sZGVyPyJsZWZ0Ijp0LnNlYXJjaElucHV0LmFsaWduKV0sc3R5bGU6e2NvbG9yOnQuc2VhcmNoSW5wdXQucGxhY2Vob2xkZXJDb2xvcn0sZG9tUHJvcHM6e3RleHRDb250ZW50OnQuX3ModC5zaG93UGxhY2Vob2xkZXJ8fHQuY29tcG9zaW5nPyIiOnQuc2VhcmNoSW5wdXQucGxhY2Vob2xkZXIpfX0pLG4oInYtdW5pLWlucHV0Iix7cmVmOiJpbnB1dCIsc3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWQtc2VhcmNoLWlucHV0IixzdHlsZTp7Y29sb3I6dC5zZWFyY2hJbnB1dC5jb2xvcn0sYXR0cnM6e2ZvY3VzOnQuc2VhcmNoSW5wdXQuYXV0b0ZvY3VzLGRpc2FibGVkOnQuc2VhcmNoSW5wdXQuZGlzYWJsZWQsInBsYWNlaG9sZGVyLXN0eWxlIjoiY29sb3I6Iit0LnNlYXJjaElucHV0LnBsYWNlaG9sZGVyQ29sb3IsImNvbmZpcm0tdHlwZSI6InNlYXJjaCJ9LG9uOntmb2N1czp0Ll9mb2N1cyxibHVyOnQuX2JsdXIsInVwZGF0ZTp2YWx1ZSI6dC5faW5wdXR9LG1vZGVsOnt2YWx1ZTp0LnRleHQsY2FsbGJhY2s6ZnVuY3Rpb24oZSl7dC50ZXh0PWV9LGV4cHJlc3Npb246InRleHQifX0pLHQudGV4dD9uKCJpIix7c3RhdGljQ2xhc3M6InVuaS1pY29uLWNsZWFyIixvbjp7Y2xpY2s6dC5fY2xlYXJJbnB1dH19KTp0Ll9lKCldLDEpOnQuX2UoKSxuKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXBhZ2UtaGVhZC1mdCJ9LFt0Ll9sKHQuYnRucywoZnVuY3Rpb24oZSxyKXtyZXR1cm5bImxlZnQiIT09ZS5mbG9hdD9uKCJkaXYiLHtrZXk6cixzdGF0aWNDbGFzczoidW5pLXBhZ2UtaGVhZC1idG4iLGNsYXNzOnsidW5pLXBhZ2UtaGVhZC1idG4tcmVkLWRvdCI6ZS5yZWREb3R8fGUuYmFkZ2VUZXh0LCJ1bmktcGFnZS1oZWFkLWJ0bi1zZWxlY3QiOmUuc2VsZWN0fSxzdHlsZTp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCI9PT10LnR5cGU/ZS5iYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsd2lkdGg6ZS53aWR0aH0sYXR0cnM6eyJiYWRnZS10ZXh0IjplLmJhZGdlVGV4dH19LFtuKCJpIix7c3RhdGljQ2xhc3M6InVuaS1idG4taWNvbiIsc3R5bGU6dC5fZm9ybWF0QnRuU3R5bGUoZSksZG9tUHJvcHM6e2lubmVySFRNTDp0Ll9zKHQuX2Zvcm1hdEJ0bkZvbnRUZXh0KGUpKX0sb246e2NsaWNrOmZ1bmN0aW9uKGUpe3JldHVybiB0Ll9vbkJ0bkNsaWNrKHIpfX19KV0pOnQuX2UoKV19KSldLDIpXSksInRyYW5zcGFyZW50IiE9PXQudHlwZSYmImZsb2F0IiE9PXQudHlwZT9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXBsYWNlaG9sZGVyIixjbGFzczp7InVuaS1wbGFjZWhvbGRlci10aXRsZVBlbmV0cmF0ZSI6dC50aXRsZVBlbmV0cmF0ZX19KTp0Ll9lKCldKX0saT1bXX0sZjE4MzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiZTMzMCIpLGE9bigiZDAxMiIpLG89bigiODYxZCIpLHM9bigiMWEyZCIpLGM9bigiOWJmMiIpLmYsdT1uKCIyNDFjIiksbD1uKCIwNTdmIiksZj1uKCI0ZmFkIiksZD1uKCI5MGUzIiksaD1uKCJiYjJmIikscD0hMSx2PWQoIm1ldGEiKSxnPTAsbT1mdW5jdGlvbih0KXtjKHQsdix7dmFsdWU6e29iamVjdElEOiJPIitnKyssd2Vha0RhdGE6e319fSl9LGI9dC5leHBvcnRzPXtlbmFibGU6ZnVuY3Rpb24oKXtiLmVuYWJsZT1mdW5jdGlvbigpe30scD0hMDt2YXIgdD11LmYsZT1pKFtdLnNwbGljZSksbj17fTtuW3ZdPTEsdChuKS5sZW5ndGgmJih1LmY9ZnVuY3Rpb24obil7Zm9yKHZhciByPXQobiksaT0wLGE9ci5sZW5ndGg7aTxhO2krKylpZihyW2ldPT09dil7ZShyLGksMSk7YnJlYWt9cmV0dXJuIHJ9LHIoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohMH0se2dldE93blByb3BlcnR5TmFtZXM6bC5mfSkpfSxmYXN0S2V5OmZ1bmN0aW9uKHQsZSl7aWYoIW8odCkpcmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6KCJzdHJpbmciPT10eXBlb2YgdD8iUyI6IlAiKSt0O2lmKCFzKHQsdikpe2lmKCFmKHQpKXJldHVybiJGIjtpZighZSlyZXR1cm4iRSI7bSh0KX1yZXR1cm4gdFt2XS5vYmplY3RJRH0sZ2V0V2Vha0RhdGE6ZnVuY3Rpb24odCxlKXtpZighcyh0LHYpKXtpZighZih0KSlyZXR1cm4hMDtpZighZSlyZXR1cm4hMTttKHQpfXJldHVybiB0W3ZdLndlYWtEYXRhfSxvbkZyZWV6ZTpmdW5jdGlvbih0KXtyZXR1cm4gaCYmcCYmZih0KSYmIXModCx2KSYmbSh0KSx0fX07YVt2XT0hMH0sZjE5ZTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI4ZWRlIiksaT1uKCJlNzQyIik7Zm9yKHZhciBhIGluIGkpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiBpW3RdfSkpfShhKTt2YXIgbz1uKCJmMGM1Iikscz1PYmplY3Qob1siYSJdKShpWyJkZWZhdWx0Il0sclsiYiJdLHJbImMiXSwhMSxudWxsLG51bGwsbnVsbCwhMSxyWyJhIl0sdm9pZCAwKTtlWyJkZWZhdWx0Il09cy5leHBvcnRzfSxmMWNhOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCl7Ii4vIj09PV9fdW5pQ29uZmlnLnJvdXRlci5iYXNlJiYodD10LnJlcGxhY2UoL15cLlwvc3RhdGljXC8vLCIvc3RhdGljLyIpKTtpZigwPT09dC5pbmRleE9mKCIvIikpe2lmKDAhPT10LmluZGV4T2YoIi8vIikpcmV0dXJuIHModC5zdWJzdHIoMSkpO3Q9Imh0dHBzOiIrdH1pZihhLnRlc3QodCl8fG8udGVzdCh0KXx8MD09PXQuaW5kZXhPZigiYmxvYjoiKSlyZXR1cm4gdDt2YXIgZT1nZXRDdXJyZW50UGFnZXMoKTtpZihlLmxlbmd0aClyZXR1cm4gcygoMCxpLmRlZmF1bHQpKGVbZS5sZW5ndGgtMV0uJHBhZ2Uucm91dGUsdCkuc3Vic3RyKDEpKTtyZXR1cm4gdH0sbigiYzk3NSIpLG4oImFjMWYiKSxuKCI1MzE5IiksbigiMDBiNCIpO3ZhciBpPXIobigiNWI4MCIpKSxhPS9eKFthLXotXSs6KT9cL1wvL2ksbz0vXmRhdGE6LiosLiovO2Z1bmN0aW9uIHModCl7dmFyIGU9X191bmlDb25maWcucm91dGVyLmJhc2U7cmV0dXJuIGU/Ii8iIT09ZSYmMD09PSgiLyIrdCkuaW5kZXhPZihlKT8iLyIrdDplK3Q6dH19LGYyMmI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJjNjViIiksYT1uKCJmMDY5Iiksbz1uKCI0NzM4IikuQ09OU1RSVUNUT1I7cih7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDpvfSx7cmVqZWN0OmZ1bmN0aW9uKHQpe3ZhciBlPWEuZih0aGlzKTtyZXR1cm4gaShlLnJlamVjdCx2b2lkIDAsdCksZS5wcm9taXNlfX0pfSxmMjYyOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPXIobigiZjVmMSIpKSxhPXIobigiMDI5MiIpKSxvPXIobigiNzNiZiIpKSxzPVtpLmRlZmF1bHQsYS5kZWZhdWx0LG8uZGVmYXVsdF07ZS5kZWZhdWx0PXN9LGYzNTQ6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwMzkiKSxpPW4oImI2MjIiKSxhPW4oImM0MzAiKSxvPWkoIml0ZXJhdG9yIik7dC5leHBvcnRzPSFyKChmdW5jdGlvbigpe3ZhciB0PW5ldyBVUkwoImI/YT0xJmI9MiZjPTMiLCJodHRwOi8vYSIpLGU9dC5zZWFyY2hQYXJhbXMsbj0iIjtyZXR1cm4gdC5wYXRobmFtZT0iYyUyMGQiLGUuZm9yRWFjaCgoZnVuY3Rpb24odCxyKXtlWyJkZWxldGUiXSgiYiIpLG4rPXIrdH0pKSxhJiYhdC50b0pTT058fCFlLnNvcnR8fCJodHRwOi8vYS9jJTIwZD9hPTEmYz0zIiE9PXQuaHJlZnx8IjMiIT09ZS5nZXQoImMiKXx8ImE9MSIhPT1TdHJpbmcobmV3IFVSTFNlYXJjaFBhcmFtcygiP2E9MSIpKXx8IWVbb118fCJhIiE9PW5ldyBVUkwoImh0dHBzOi8vYUBiIikudXNlcm5hbWV8fCJiIiE9PW5ldyBVUkxTZWFyY2hQYXJhbXMobmV3IFVSTFNlYXJjaFBhcmFtcygiYT1iIikpLmdldCgiYSIpfHwieG4tLWUxYXliYyIhPT1uZXcgVVJMKCJodHRwOi8v0YLQtdGB0YIiKS5ob3N0fHwiIyVEMCVCMSIhPT1uZXcgVVJMKCJodHRwOi8vYSPQsSIpLmhhc2h8fCJhMWMzIiE9PW58fCJ4IiE9PW5ldyBVUkwoImh0dHA6Ly94Iix2b2lkIDApLmhvc3R9KSl9LGYzNmE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImUzMzAiKTt0LmV4cG9ydHM9cihbXS5zbGljZSl9LGY0OTU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImMwNGUiKSxpPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cih0LCJudW1iZXIiKTtpZigibnVtYmVyIj09dHlwZW9mIGUpdGhyb3cgaSgiQ2FuJ3QgY29udmVydCBudW1iZXIgdG8gYmlnaW50Iik7cmV0dXJuIEJpZ0ludChlKX19LGY0ZjA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZmluZEV4aXN0c1BhZ2VJbmRleD1mdW5jdGlvbih0KXt2YXIgZT1nZXRDdXJyZW50UGFnZXMoKSxuPWUubGVuZ3RoO3doaWxlKG4tLSl7dmFyIHI9ZVtuXTtpZihyLiRwYWdlJiZyLiRwYWdlLmZ1bGxQYXRoPT09dClyZXR1cm4gbn1yZXR1cm4tMX0sZS5nZXRUYXJnZXREYXRhc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXt9LG49dC5fX3Z1ZV9fO2Z1bmN0aW9uIGkodCxuKXt2YXIgaT10LiRhdHRycztmb3IodmFyIGEgaW4gaSlpZihhLnN0YXJ0c1dpdGgoImRhdGEtIikpe3ZhciBvPSgwLHIuY2FtZWxpemUpKGEuc3Vic3RyKDUpLnRvTG93ZXJDYXNlKCkpLHM9aVthXTtlW29dPW4/czplW29dfHxzfX1pZihuKXt2YXIgbz1uO3doaWxlKG8mJm8uJGVsPT09dClpKG8pLG89by4kY2hpbGRyZW5bMF07dmFyIHM9bi4kcGFyZW50O3doaWxlKHMmJnMuJGVsPT09dClpKHMsITApLHM9cy4kcGFyZW50fWVsc2UgZT1PYmplY3QuYXNzaWduKHt9LHQuZGF0YXNldCx0Ll9fdW5pRGF0YXNldCk7cmV0dXJuIGEoZSl9LGUuaGFzTGlmZWN5Y2xlSG9vaz1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxlPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwO3JldHVybiBBcnJheS5pc0FycmF5KHRbZV0pJiZ0W2VdLmxlbmd0aH0sZS5pc1BhZ2U9ZnVuY3Rpb24odCl7aWYodC4kcGFyZW50JiYiUGFnZUJvZHkiPT09dC4kcGFyZW50LiRvcHRpb25zLm5hbWUpcmV0dXJuLTE9PT1pLmluZGV4T2YodC4kb3B0aW9ucy5uYW1lKTtyZXR1cm4hMX0sZS5ub3JtYWxpemVEYXRhc2V0PWEsZS51cHgycHg9ZnVuY3Rpb24odCl7aWYodCs9IiIsLTEhPT10LmluZGV4T2YoInVweCIpKXJldHVybiB1bmkudXB4MnB4KHBhcnNlSW50KHQpfHwwKTtyZXR1cm4gcGFyc2VJbnQodCl8fDB9LG4oImM5NzUiKSxuKCJlOWM0IiksbigiYjY0YiIpLG4oIjJjYTAiKSxuKCJlMjVlIik7dmFyIHI9bigiZGI2YSIpLGk9WyJTeXN0ZW1Bc3luY0xvYWRpbmciLCJTeXN0ZW1Bc3luY0Vycm9yIl07ZnVuY3Rpb24gYSgpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxlPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpLG49T2JqZWN0LmtleXMoZSkscj1uLmxlbmd0aDtpZihyKWZvcih2YXIgaT0wO2k8cjtpKyspe3ZhciBhPW5baV0sbz1hLmxlbmd0aDsidiIhPT1hLnN1YnN0cigwLDEpfHw5IT09byYmMTAhPT1vfHxkZWxldGUgZVthXX1yZXR1cm4gZX19LGY1MjI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImE5ZTMiKSxuKCJjOTc1Iik7dmFyIGk9cihuKCI1M2NhIikpLGE9bigiZjRmMCIpLG89bigiODFlOCIpLHM9bigiMGZiZSIpLGM9bigiZGI2YSIpLHU9bigiNjBmNiIpLGw9cihuKCI3ODk2IikpLGY9cihuKCI4MjViIikpLGQ9cihuKCIzNWQwNiIpKSxoPXIobigiMjg5YiIpKSxwPXIobigiZDhjOCIpKSx2PW4oIjY3NTYiKTtmdW5jdGlvbiBnKCl7dmFyIHQ9e30sZT17bm9uZToiZGVmYXVsdCIsYXV0bzoidHJhbnNwYXJlbnQiLGFsd2F5czoiZmxvYXQifSxuPXRoaXMudGl0bGVOVmlldztuPSExPT09bnx8ImZhbHNlIj09PW58fCJjdXN0b20iPT09dGhpcy5uYXZpZ2F0aW9uU3R5bGUmJiEoMCxjLmlzUGxhaW5PYmplY3QpKG4pfHwiYWx3YXlzIj09PXRoaXMudHJhbnNwYXJlbnRUaXRsZSYmISgwLGMuaXNQbGFpbk9iamVjdCkobik/e3R5cGU6Im5vbmUifTpPYmplY3QuYXNzaWduKHt9LHt0eXBlOiJjdXN0b20iPT09dGhpcy5uYXZpZ2F0aW9uU3R5bGU/Im5vbmUiOiJkZWZhdWx0In0sdGhpcy50cmFuc3BhcmVudFRpdGxlIGluIGU/e3R5cGU6ZVt0aGlzLnRyYW5zcGFyZW50VGl0bGVdfTpudWxsLCJvYmplY3QiPT09KDAsaS5kZWZhdWx0KShuKT9uOiJib29sZWFuIj09PXR5cGVvZiBuP3t0eXBlOm4/ImRlZmF1bHQiOiJub25lIn06bnVsbCk7cmV0dXJuIHQ9KDAsdS5tZXJnZVRpdGxlTlZpZXcpKHtsb2FkaW5nOiExLGJhY2tCdXR0b246IXRoaXMuaXNRdWl0JiYhdGhpcy4kcm91dGUubWV0YS5pc1F1aXQsYmFja2dyb3VuZENvbG9yOnRoaXMubmF2aWdhdGlvbkJhckJhY2tncm91bmRDb2xvcix0ZXh0Q29sb3I6IndoaXRlIj09PSgwLHYucGFyc2VUaGVtZSkoe3Rlc3RTdHlsZTp0aGlzLm5hdmlnYXRpb25CYXJUZXh0U3R5bGV9KS50ZXN0U3R5bGU/IiNmZmYiOiIjMDAwIix0aXRsZVRleHQ6dGhpcy5uYXZpZ2F0aW9uQmFyVGl0bGVUZXh0LHRpdGxlSW1hZ2U6dGhpcy50aXRsZUltYWdlLGR1cmF0aW9uOiIwIix0aW1pbmdGdW5jOiIiLHRpdGxlUGVuZXRyYXRlOntZRVM6ITAsTk86ITF9W3RoaXMudGl0bGVQZW5ldHJhdGVdfSxuKSx0LnNoYWRvdz10aGlzLm5hdmlnYXRpb25CYXJTaGFkb3csKDAsby5pbml0TmF2aWdhdGlvbkJhckkxOG4pKHQpLHtuYXZpZ2F0aW9uQmFyOl9fdW5pQ29uZmlnLmRhcmttb2RlPygwLHYucGFyc2VUaGVtZSkodCk6dCx0aXRsZU5WaWV3Om59fWZ1bmN0aW9uIG0odCl7dmFyIGU9T2JqZWN0LmFzc2lnbih7c3VwcG9ydDohMCxjb2xvcjoiIzJCRDAwOSIsc3R5bGU6ImNpcmNsZSIsaGVpZ2h0OjcwLHJhbmdlOjE1MCxvZmZzZXQ6MH0sdGhpcy5wdWxsVG9SZWZyZXNoKSxuPSgwLGEudXB4MnB4KShlLm9mZnNldCk7cmV0dXJuIm5vbmUiIT09dC50eXBlJiYidHJhbnNwYXJlbnQiIT09dC50eXBlJiYobis9cy5OQVZCQVJfSEVJR0hUK3AuZGVmYXVsdC50b3ApLGUub2Zmc2V0PW4sZS5oZWlnaHQ9KDAsYS51cHgycHgpKGUuaGVpZ2h0KSxlLnJhbmdlPSgwLGEudXB4MnB4KShlLnJhbmdlKSxlfXZhciBiPXtuYW1lOiJQYWdlIixtcFR5cGU6InBhZ2UiLGNvbXBvbmVudHM6e1BhZ2VIZWFkOmwuZGVmYXVsdCxQYWdlQm9keTpmLmRlZmF1bHQsUGFnZVJlZnJlc2g6ZC5kZWZhdWx0fSxtaXhpbnM6W2guZGVmYXVsdF0scHJvcHM6e2lzUXVpdDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LGlzRW50cnk6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSxpc1RhYkJhcjp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LHRhYkJhckluZGV4Ont0eXBlOk51bWJlcixkZWZhdWx0Oi0xfSxuYXZpZ2F0aW9uQmFyQmFja2dyb3VuZENvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIjZjhmOGY4In0sbmF2aWdhdGlvbkJhclRleHRTdHlsZTp7ZGVmYXVsdDoiYmxhY2siLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4tMSE9PVsid2hpdGUiLCJibGFjayJdLmluZGV4T2YodCl8fDA9PT10LmluZGV4T2YoIkAiKX19LG5hdmlnYXRpb25CYXJUaXRsZVRleHQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LG5hdmlnYXRpb25TdHlsZTp7ZGVmYXVsdDoiZGVmYXVsdCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybi0xIT09WyJkZWZhdWx0IiwiY3VzdG9tIl0uaW5kZXhPZih0KX19LGJhY2tncm91bmRDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiI2ZmZmZmZiJ9LGJhY2tncm91bmRUZXh0U3R5bGU6e2RlZmF1bHQ6ImRhcmsiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4tMSE9PVsiZGFyayIsImxpZ2h0Il0uaW5kZXhPZih0KX19LGJhY2tncm91bmRDb2xvclRvcDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiI2ZmZiJ9LGJhY2tncm91bmRDb2xvckJvdHRvbTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiI2ZmZiJ9LGVuYWJsZVB1bGxEb3duUmVmcmVzaDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LG9uUmVhY2hCb3R0b21EaXN0YW5jZTp7dHlwZTpOdW1iZXIsZGVmYXVsdDo1MH0sZGlzYWJsZVNjcm9sbDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LHRpdGxlTlZpZXc6e3R5cGU6W0Jvb2xlYW4sT2JqZWN0LFN0cmluZ10sZGVmYXVsdDoiIn0scHVsbFRvUmVmcmVzaDp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybnt9fX0sdGl0bGVJbWFnZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sdHJhbnNwYXJlbnRUaXRsZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sdGl0bGVQZW5ldHJhdGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6Ik5PIn0sbmF2aWdhdGlvbkJhclNoYWRvdzp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybnt9fX0sdG9wV2luZG93Ont0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH19LGRhdGE6ZnVuY3Rpb24oKXt2YXIgdD1nLmNhbGwodGhpcyksZT10Lm5hdmlnYXRpb25CYXIsbj10LnRpdGxlTlZpZXc7cmV0dXJue25hdmlnYXRpb25CYXI6ZSxyZWZyZXNoT3B0aW9uczptLmNhbGwodGhpcyxuKX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49dGhpcy5uYXZpZ2F0aW9uQmFyO2RvY3VtZW50LnRpdGxlPW4udGl0bGVUZXh0LHQuZW1pdCgib25OYXZpZ2F0aW9uQmFyQ2hhbmdlIixuKSwoMCx2Lm9uVGhlbWVDaGFuZ2UpKChmdW5jdGlvbigpe2UubmF2aWdhdGlvbkJhcj1nLmNhbGwoZSkubmF2aWdhdGlvbkJhcn0pKX19O2UuZGVmYXVsdD1ifSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LGY1ZGY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjAwZWUiKSxpPW4oIjE2MjYiKSxhPW4oImM2YjYiKSxvPW4oImI2MjIiKSxzPW8oInRvU3RyaW5nVGFnIiksYz1PYmplY3QsdT0iQXJndW1lbnRzIj09YShmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpO3QuZXhwb3J0cz1yP2E6ZnVuY3Rpb24odCl7dmFyIGUsbixyO3JldHVybiB2b2lkIDA9PT10PyJVbmRlZmluZWQiOm51bGw9PT10PyJOdWxsIjoic3RyaW5nIj09dHlwZW9mKG49ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbZV19Y2F0Y2gobil7fX0oZT1jKHQpLHMpKT9uOnU/YShlKToiT2JqZWN0Ij09KHI9YShlKSkmJmkoZS5jYWxsZWUpPyJBcmd1bWVudHMiOnJ9fSxmNWYxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQscil7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPW4oIjgxZTgiKSxhPXtkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3Nob3dUb2FzdDp7dmlzaWJsZTohMX19fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPSIiLGE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIpe249dCxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2Uuc2hvd1RvYXN0PXJ9KSwxMCl9fTt0Lm9uKCJvblNob3dUb2FzdCIsYSgib25TaG93VG9hc3QiKSksdC5vbigib25TaG93TG9hZGluZyIsYSgib25TaG93TG9hZGluZyIpKTt2YXIgbz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtpZihuKXt2YXIgYT0iIjtpZigib25IaWRlVG9hc3QiPT09dCYmIm9uU2hvd1RvYXN0IiE9PW4/YT0oMCxpLnQpKCJ1bmkuc2hvd1RvYXN0LnVucGFpcmVkIik6Im9uSGlkZUxvYWRpbmciPT09dCYmIm9uU2hvd0xvYWRpbmciIT09biYmKGE9KDAsaS50KSgidW5pLnNob3dMb2FkaW5nLnVucGFpcmVkIikpLGEpcmV0dXJuIHIud2FybihhKTtuPSIiLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5zaG93VG9hc3QudmlzaWJsZT0hMX0pLDEwKX19fTt0Lm9uKCJvbkhpZGVQb3B1cCIsbygib25IaWRlUG9wdXAiKSksdC5vbigib25IaWRlVG9hc3QiLG8oIm9uSGlkZVRvYXN0IikpLHQub24oIm9uSGlkZUxvYWRpbmciLG8oIm9uSGlkZUxvYWRpbmciKSl9fTtlLmRlZmF1bHQ9YX0pLmNhbGwodGhpcyxuKCJhOWFhIiksbigiNWE1MiIpWyJkZWZhdWx0Il0pfSxmNjM4OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10Lm5hbWUscj10LmFyZzsicG9zdE1lc3NhZ2UiPT09bnx8dW5pW25dKHIpfX0sZjc3MjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNTY5MiIpLGk9bigiOTBlMyIpLGE9cigia2V5cyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gYVt0XXx8KGFbdF09aSh0KSl9fSxmODYxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldEFwcEJhc2VJbmZvPWQsZS5nZXREZXZpY2VJbmZvPWYsZS5nZXRTeXN0ZW1JbmZvPWZ1bmN0aW9uKCl7cmV0dXJuIGgoKX0sZS5nZXRTeXN0ZW1JbmZvU3luYz1oO3ZhciBpPW4oIjZhZTAiKSxhPXIobigiNWYxMyIpKSxvPW4oIjQ5YjYiKSxzPW4oImRiNmEiKSxjPXt9LHU9ITA7ZnVuY3Rpb24gbCgpe3UmJihjPSgwLG8uZ2V0QnJvd3NlckluZm8pKCkpfWZ1bmN0aW9uIGYoKXtsKCk7dmFyIHQ9YyxlPXQuZGV2aWNlQnJhbmQsbj10LmRldmljZU1vZGVsLHI9dC5icmFuZCxpPXQubW9kZWwsbz10LnBsYXRmb3JtLHM9dC5zeXN0ZW0sdT10LmRldmljZU9yaWVudGF0aW9uLGY9dC5kZXZpY2VUeXBlO3JldHVybnticmFuZDpyLGRldmljZUJyYW5kOmUsZGV2aWNlTW9kZWw6bixkZXZpY2VQaXhlbFJhdGlvOndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLGRldmljZUlkOigwLGEuZGVmYXVsdCkoKSxkZXZpY2VPcmllbnRhdGlvbjp1LGRldmljZVR5cGU6Zixtb2RlbDppLHBsYXRmb3JtOm8sc3lzdGVtOnN9fWZ1bmN0aW9uIGQoKXtsKCk7dmFyIHQ9YyxlPXQudGhlbWUsbj10Lmxhbmd1YWdlLHI9dC5icm93c2VyTmFtZSxpPXQuYnJvd3NlclZlcnNpb24sYT11bmkmJnVuaS5nZXRMb2NhbGU/dW5pLmdldExvY2FsZSgpOm47cmV0dXJue2FwcElkOl9fdW5pQ29uZmlnLmFwcElkLGFwcE5hbWU6X191bmlDb25maWcuYXBwTmFtZSxhcHBWZXJzaW9uOl9fdW5pQ29uZmlnLmFwcFZlcnNpb24sYXBwVmVyc2lvbkNvZGU6X191bmlDb25maWcuYXBwVmVyc2lvbkNvZGUsYXBwTGFuZ3VhZ2U6YSxlbmFibGVEZWJ1ZzohMSxob3N0U0RLVmVyc2lvbjp2b2lkIDAsaG9zdFBhY2thZ2VOYW1lOnZvaWQgMCxob3N0Rm9udFNpemVTZXR0aW5nOnZvaWQgMCxob3N0TmFtZTpyLGhvc3RWZXJzaW9uOmksaG9zdFRoZW1lOmUsaG9zdExhbmd1YWdlOm4sbGFuZ3VhZ2U6bixTREtWZXJzaW9uOiIiLHRoZW1lOmUsdmVyc2lvbjoiIn19ZnVuY3Rpb24gaCgpe3U9ITAsbCgpLHU9ITE7dmFyIHQ9KDAsaS5nZXRXaW5kb3dJbmZvKSgpLGU9ZigpLG49ZCgpO3U9ITA7dmFyIHI9YyxhPXIudWEsbz1yLmJyb3dzZXJOYW1lLGg9ci5icm93c2VyVmVyc2lvbixwPXIub3NuYW1lLHY9ci5vc3ZlcnNpb24sZz1PYmplY3QuYXNzaWduKHt9LHQsZSxuLHticm93c2VyTmFtZTpvLGJyb3dzZXJWZXJzaW9uOmgsZm9udFNpemVTZXR0aW5nOm4uaG9zdEZvbnRTaXplU2V0dGluZyxvc05hbWU6cC50b0xvY2FsZUxvd2VyQ2FzZSgpLG9zVmVyc2lvbjp2LG9zTGFuZ3VhZ2U6dm9pZCAwLG9zVGhlbWU6dm9pZCAwLHVuaVBsYXRmb3JtOiJ3ZWIiLHVuaUNvbXBpbGVWZXJzaW9uOl9fdW5pQ29uZmlnLmNvbXBpbGVyVmVyc2lvbix1bmlSdW50aW1lVmVyc2lvbjpfX3VuaUNvbmZpZy5jb21waWxlclZlcnNpb24sdWE6YX0pO3JldHVybiBkZWxldGUgZy5zY3JlZW5Ub3AsZGVsZXRlIGcuZW5hYmxlRGVidWcsX191bmlDb25maWcuZGFya21vZGV8fGRlbGV0ZSBnLnRoZW1lLCgwLHMuc29ydE9iamVjdCkoZyl9fSxmOGNkOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI1OTI2IiksaT1SYW5nZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1yKHQpO2lmKGU8MCl0aHJvdyBpKCJUaGUgYXJndW1lbnQgY2FuJ3QgYmUgbGVzcyB0aGFuIDAiKTtyZXR1cm4gZX19LGZhMjE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiNGJhZiIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sZmI2YTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImU4YjUiKSxhPW4oIjY4ZWUiKSxvPW4oIjg2MWQiKSxzPW4oIjIzY2IiKSxjPW4oIjA3ZmEiKSx1PW4oImZjNmEiKSxsPW4oIjg0MTgiKSxmPW4oImI2MjIiKSxkPW4oIjFkZGUiKSxoPW4oImYzNmEiKSxwPWQoInNsaWNlIiksdj1mKCJzcGVjaWVzIiksZz1BcnJheSxtPU1hdGgubWF4O3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohcH0se3NsaWNlOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixmLGQ9dSh0aGlzKSxwPWMoZCksYj1zKHQscCkseT1zKHZvaWQgMD09PWU/cDplLHApO2lmKGkoZCkmJihuPWQuY29uc3RydWN0b3IsYShuKSYmKG49PT1nfHxpKG4ucHJvdG90eXBlKSk/bj12b2lkIDA6byhuKSYmKG49blt2XSxudWxsPT09biYmKG49dm9pZCAwKSksbj09PWd8fHZvaWQgMD09PW4pKXJldHVybiBoKGQsYix5KTtmb3Iocj1uZXcodm9pZCAwPT09bj9nOm4pKG0oeS1iLDApKSxmPTA7Yjx5O2IrKyxmKyspYiBpbiBkJiZsKHIsZixkW2JdKTtyZXR1cm4gci5sZW5ndGg9ZixyfX0pfSxmYzM1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kY3JlYXRlRWxlbWVudCxlPXRoaXMuX3NlbGYuX2N8fHQ7cmV0dXJuIGUoInVuaS1wYWdlLXJlZnJlc2giLFtlKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXBhZ2UtcmVmcmVzaCIsc3R5bGU6eyJtYXJnaW4tdG9wIjp0aGlzLm9mZnNldCsicHgifX0sW2UoImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktcGFnZS1yZWZyZXNoLWlubmVyIn0sW2UoInN2ZyIse3N0YXRpY0NsYXNzOiJ1bmktcGFnZS1yZWZyZXNoX19pY29uIixhdHRyczp7ZmlsbDp0aGlzLmNvbG9yLHdpZHRoOiIyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0In19LFtlKCJwYXRoIix7YXR0cnM6e2Q6Ik0xNy42NSA2LjM1QzE2LjIgNC45IDE0LjIxIDQgMTIgNGMtNC40MiAwLTcuOTkgMy41OC03Ljk5IDhzMy41NyA4IDcuOTkgOGMzLjczIDAgNi44NC0yLjU1IDcuNzMtNmgtMi4wOGMtLjgyIDIuMzMtMy4wNCA0LTUuNjUgNC0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02YzEuNjYgMCAzLjE0LjY5IDQuMjIgMS43OEwxMyAxMWg3VjRsLTIuMzUgMi4zNXoifX0pLGUoInBhdGgiLHthdHRyczp7ZDoiTTAgMGgyNHYyNEgweiIsZmlsbDoibm9uZSJ9fSldKSxlKCJzdmciLHtzdGF0aWNDbGFzczoidW5pLXBhZ2UtcmVmcmVzaF9fc3Bpbm5lciIsYXR0cnM6e3dpZHRoOiIyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMjUgMjUgNTAgNTAifX0sW2UoImNpcmNsZSIse3N0YXRpY0NsYXNzOiJ1bmktcGFnZS1yZWZyZXNoX19wYXRoIixhdHRyczp7c3Ryb2tlOnRoaXMuY29sb3IsY3g6IjUwIixjeToiNTAiLHI6IjIwIixmaWxsOiJub25lIiwic3Ryb2tlLXdpZHRoIjoiNCIsInN0cm9rZS1taXRlcmxpbWl0IjoiMTAifX0pXSldKV0pXSl9LGk9W119LGZjNmE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjQ0YWQiKSxpPW4oIjFkODAiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHIoaSh0KSl9fSxmY2UzOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDM5IiksaT1uKCJkYTg0IiksYT1pLlJlZ0V4cDt0LmV4cG9ydHM9cigoZnVuY3Rpb24oKXt2YXIgdD1hKCIuIiwicyIpO3JldHVybiEodC5kb3RBbGwmJnQuZXhlYygiXG4iKSYmInMiPT09dC5mbGFncyl9KSl9LGZkYmM6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9e0NTU1J1bGVMaXN0OjAsQ1NTU3R5bGVEZWNsYXJhdGlvbjowLENTU1ZhbHVlTGlzdDowLENsaWVudFJlY3RMaXN0OjAsRE9NUmVjdExpc3Q6MCxET01TdHJpbmdMaXN0OjAsRE9NVG9rZW5MaXN0OjEsRGF0YVRyYW5zZmVySXRlbUxpc3Q6MCxGaWxlTGlzdDowLEhUTUxBbGxDb2xsZWN0aW9uOjAsSFRNTENvbGxlY3Rpb246MCxIVE1MRm9ybUVsZW1lbnQ6MCxIVE1MU2VsZWN0RWxlbWVudDowLE1lZGlhTGlzdDowLE1pbWVUeXBlQXJyYXk6MCxOYW1lZE5vZGVNYXA6MCxOb2RlTGlzdDoxLFBhaW50UmVxdWVzdExpc3Q6MCxQbHVnaW46MCxQbHVnaW5BcnJheTowLFNWR0xlbmd0aExpc3Q6MCxTVkdOdW1iZXJMaXN0OjAsU1ZHUGF0aFNlZ0xpc3Q6MCxTVkdQb2ludExpc3Q6MCxTVkdTdHJpbmdMaXN0OjAsU1ZHVHJhbnNmb3JtTGlzdDowLFNvdXJjZUJ1ZmZlckxpc3Q6MCxTdHlsZVNoZWV0TGlzdDowLFRleHRUcmFja0N1ZUxpc3Q6MCxUZXh0VHJhY2tMaXN0OjAsVG91Y2hMaXN0OjB9fSxmZGJmOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwNGY4Iik7dC5leHBvcnRzPXImJiFTeW1ib2wuc2hhbSYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3J9LGZlNjc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYWRkSW50ZXJjZXB0b3I9ZnVuY3Rpb24odCxlKXsic3RyaW5nIj09PXR5cGVvZiB0JiYoMCxvLmlzUGxhaW5PYmplY3QpKGUpP2wodVt0XXx8KHVbdF09e30pLGUpOigwLG8uaXNQbGFpbk9iamVjdCkodCkmJmwoYyx0KX0sZS5pbnZva2VBcGk9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KHI+Mz9yLTM6MCksYT0zO2E8cjthKyspaVthLTNdPWFyZ3VtZW50c1thXTt2YXIgbz1nKHQpO2lmKG8mJk9iamVjdC5rZXlzKG8pLmxlbmd0aCl7aWYoQXJyYXkuaXNBcnJheShvLmludm9rZSkpe3ZhciBzPXAoby5pbnZva2Usbik7cmV0dXJuIHMudGhlbigoZnVuY3Rpb24obil7cmV0dXJuIGUuYXBwbHkodm9pZCAwLFt2KGcodCksbildLmNvbmNhdChpKSl9KSl9cmV0dXJuIGUuYXBwbHkodm9pZCAwLFt2KG8sbildLmNvbmNhdChpKSl9cmV0dXJuIGUuYXBwbHkodm9pZCAwLFtuXS5jb25jYXQoaSkpfSxlLnByb21pc2VJbnRlcmNlcHRvcj12b2lkIDAsZS5yZW1vdmVJbnRlcmNlcHRvcj1mdW5jdGlvbih0LGUpeyJzdHJpbmciPT09dHlwZW9mIHQ/KDAsby5pc1BsYWluT2JqZWN0KShlKT9mKHVbdF0sZSk6ZGVsZXRlIHVbdF06KDAsby5pc1BsYWluT2JqZWN0KSh0KSYmZihjLHQpfSxlLndyYXBwZXJSZXR1cm5WYWx1ZT1mdW5jdGlvbih0LGUpe3ZhciBuPVtdO0FycmF5LmlzQXJyYXkoYy5yZXR1cm5WYWx1ZSkmJm4ucHVzaC5hcHBseShuLCgwLGkuZGVmYXVsdCkoYy5yZXR1cm5WYWx1ZSkpO3ZhciByPXVbdF07ciYmQXJyYXkuaXNBcnJheShyLnJldHVyblZhbHVlKSYmbi5wdXNoLmFwcGx5KG4sKDAsaS5kZWZhdWx0KShyLnJldHVyblZhbHVlKSk7cmV0dXJuIG4uZm9yRWFjaCgoZnVuY3Rpb24odCl7ZT10KGUpfHxlfSkpLGV9O3ZhciBpPXIobigiMjkwOSIpKSxhPXIobigiNTNjYSIpKTtuKCI5OWFmIiksbigiYzk3NSIpLG4oIjE0ZDkiKSxuKCJhNDM0IiksbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJiNjRiIiksbigiZmI2YSIpO3ZhciBvPW4oImRiNmEiKSxzPVsiaW52b2tlIiwic3VjY2VzcyIsImZhaWwiLCJjb21wbGV0ZSIsInJldHVyblZhbHVlIl0sYz17fSx1PXt9O2Z1bmN0aW9uIGwodCxlKXtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihuKXstMSE9PXMuaW5kZXhPZihuKSYmKDAsby5pc0ZuKShlW25dKSYmKHRbbl09ZnVuY3Rpb24odCxlKXt2YXIgbj1lP3Q/dC5jb25jYXQoZSk6QXJyYXkuaXNBcnJheShlKT9lOltlXTp0O3JldHVybiBuP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTA7bjx0Lmxlbmd0aDtuKyspLTE9PT1lLmluZGV4T2YodFtuXSkmJmUucHVzaCh0W25dKTtyZXR1cm4gZX0obik6bn0odFtuXSxlW25dKSl9KSl9ZnVuY3Rpb24gZih0LGUpe3QmJmUmJk9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKG4pey0xIT09cy5pbmRleE9mKG4pJiYoMCxvLmlzRm4pKGVbbl0pJiZmdW5jdGlvbih0LGUpe3ZhciBuPXQuaW5kZXhPZihlKTstMSE9PW4mJnQuc3BsaWNlKG4sMSl9KHRbbl0sZVtuXSl9KSl9ZnVuY3Rpb24gZCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdChuLGUpfHxufX1mdW5jdGlvbiBoKHQpe3JldHVybiEhdCYmKCJvYmplY3QiPT09KDAsYS5kZWZhdWx0KSh0KXx8ImZ1bmN0aW9uIj09PXR5cGVvZiB0KSYmImZ1bmN0aW9uIj09PXR5cGVvZiB0LnRoZW59ZnVuY3Rpb24gcCh0LGUsbil7Zm9yKHZhciByPSExLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXTtpZihyKXI9UHJvbWlzZS5yZXNvbHZlKGQoYSxuKSk7ZWxzZXt2YXIgbz1hKGUsbik7aWYoaChvKSYmKHI9UHJvbWlzZS5yZXNvbHZlKG8pKSwhMT09PW8pcmV0dXJue3RoZW46ZnVuY3Rpb24oKXt9fX19cmV0dXJuIHJ8fHt0aGVuOmZ1bmN0aW9uKHQpe3JldHVybiB0KGUpfX19ZnVuY3Rpb24gdih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuWyJzdWNjZXNzIiwiZmFpbCIsImNvbXBsZXRlIl0uZm9yRWFjaCgoZnVuY3Rpb24obil7aWYoQXJyYXkuaXNBcnJheSh0W25dKSl7dmFyIHI9ZVtuXTtlW25dPWZ1bmN0aW9uKGkpe3AodFtuXSxpLGUpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybigwLG8uaXNGbikocikmJnIodCl8fHR9KSl9fX0pKSxlfWZ1bmN0aW9uIGcodCl7dmFyIGU9T2JqZWN0LmNyZWF0ZShudWxsKTtPYmplY3Qua2V5cyhjKS5mb3JFYWNoKChmdW5jdGlvbih0KXsicmV0dXJuVmFsdWUiIT09dCYmKGVbdF09Y1t0XS5zbGljZSgpKX0pKTt2YXIgbj11W3RdO3JldHVybiBuJiZPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChmdW5jdGlvbih0KXsicmV0dXJuVmFsdWUiIT09dCYmKGVbdF09KGVbdF18fFtdKS5jb25jYXQoblt0XSkpfSkpLGV9dmFyIG09e3JldHVyblZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBoKHQpP25ldyBQcm9taXNlKChmdW5jdGlvbihlLG4pe3QudGhlbigoZnVuY3Rpb24odCl7dFswXT9uKHRbMF0pOmUodFsxXSl9KSl9KSk6dH19O2UucHJvbWlzZUludGVyY2VwdG9yPW19LGZlODE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImM5NzUiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oIjk5YWYiKSxuKCJhYzFmIiksbigiMDBiNCIpLG4oIjE0ZDkiKSxuKCI1MzE5Iik7dmFyIGk9cihuKCI4NzUxIikpLGE9cihuKCJmMWNhIikpLG89cihuKCI0N2RiIikpLHM9e2ZvcndhcmQ6IiYjeGU2MDA7IixiYWNrOiImI3hlNjAxOyIsc2hhcmU6IiYjeGU2MDI7IixmYXZvcml0ZToiJiN4ZTYwNDsiLGhvbWU6IiYjeGU2MDU7IixtZW51OiImI3hlNjA2OyIsY2xvc2U6IiYjeGU2NTA7In0sYz17bmFtZToiUGFnZUhlYWQiLG1peGluczpbby5kZWZhdWx0XSxwcm9wczp7YmFja0J1dHRvbjp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9LGJhY2tncm91bmRDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiJ0cmFuc3BhcmVudCI9PT10aGlzLnR5cGU/IiMwMDAiOiIjRjhGOEY4In19LHRleHRDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiI2ZmZiJ9LHRpdGxlVGV4dDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sZHVyYXRpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IjAifSx0aW1pbmdGdW5jOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxsb2FkaW5nOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sdGl0bGVTaXplOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIxNnB4In0sdHlwZTp7ZGVmYXVsdDoiZGVmYXVsdCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybi0xIT09WyJkZWZhdWx0IiwidHJhbnNwYXJlbnQiLCJmbG9hdCJdLmluZGV4T2YodCl9fSxjb3ZlcmFnZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiMTMycHgifSxidXR0b25zOnt0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX19LHNlYXJjaElucHV0Ont0eXBlOltPYmplY3QsQm9vbGVhbl0sZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiExfX0sdGl0bGVJbWFnZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sdGl0bGVQZW5ldHJhdGU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSxzaGFkb3c6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2ZvY3VzOiExLHRleHQ6IiIsY29tcG9zaW5nOiExLHNob3dQbGFjZWhvbGRlcjohMX19LGNvbXB1dGVkOntidG5zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPVtdLG49e307cmV0dXJuIHRoaXMuYnV0dG9ucy5sZW5ndGgmJnRoaXMuYnV0dG9ucy5mb3JFYWNoKChmdW5jdGlvbihyKXt2YXIgbz1PYmplY3QuYXNzaWduKHt9LHIpO2lmKG8uZm9udFNyYyYmIW8uZm9udEZhbWlseSl7dmFyIHMsYz1vLmZvbnRTcmM9KDAsYS5kZWZhdWx0KShvLmZvbnRTcmMpO2lmKGMgaW4gbilzPW5bY107ZWxzZXtzPSJmb250Ii5jb25jYXQoRGF0ZS5ub3coKSksbltjXT1zO3ZhciB1PSdAZm9udC1mYWNle2ZvbnQtZmFtaWx5OiAiJy5jb25jYXQocywnIjtzcmM6IHVybCgiJykuY29uY2F0KGMsJyIpIGZvcm1hdCgidHJ1ZXR5cGUiKX0nKTsoMCxpLmRlZmF1bHQpKHUsInVuaS1idG4tZm9udC0iK3MpfW8uZm9udEZhbWlseT1zfW8uY29sb3I9InRyYW5zcGFyZW50Ij09PXQudHlwZT8iI2ZmZiI6by5jb2xvcnx8dC50ZXh0Q29sb3I7dmFyIGw9by5mb250U2l6ZXx8KCJ0cmFuc3BhcmVudCI9PT10LnR5cGV8fC9cXHUvLnRlc3Qoby50ZXh0KT8iMjJweCI6IjI3cHgiKTsvXGQkLy50ZXN0KGwpJiYobCs9InB4Iiksby5mb250U2l6ZT1sLG8uZm9udFdlaWdodD1vLmZvbnRXZWlnaHR8fCJub3JtYWwiLGUucHVzaChvKX0pKSxlfSxoZWFkQ2xhc3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNoYWRvdy5jb2xvclR5cGUsZT17InVuaS1wYWdlLWhlYWQtdHJhbnNwYXJlbnQiOiJ0cmFuc3BhcmVudCI9PT10aGlzLnR5cGUsInVuaS1wYWdlLWhlYWQtdGl0bGVQZW5ldHJhdGUiOnRoaXMudGl0bGVQZW5ldHJhdGUsInVuaS1wYWdlLWhlYWQtc2hhZG93Ijp0fTtyZXR1cm4gdCYmKGVbInVuaS1wYWdlLWhlYWQtc2hhZG93LSIuY29uY2F0KHQpXT10KSxlfX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYodGhpcy5zZWFyY2hJbnB1dCl7dmFyIG49dGhpcy4kcmVmcy5pbnB1dDtuLiR3YXRjaCgiY29tcG9zaW5nIiwoZnVuY3Rpb24odCl7ZS5jb21wb3Npbmc9dH0pKSxuLiR3YXRjaCgidmFsdWVTeW5jIiwoZnVuY3Rpb24odCl7ZS5zaG93UGxhY2Vob2xkZXI9ISF0fSkpLHRoaXMuc2VhcmNoSW5wdXQuZGlzYWJsZWQ/bi4kZWwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLChmdW5jdGlvbigpe3QuZW1pdCgib25OYXZpZ2F0aW9uQmFyU2VhcmNoSW5wdXRDbGlja2VkIiwiIil9KSk6KG4uJHJlZnMuaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLChmdW5jdGlvbihuKXsiRU5URVIiPT09bi5rZXkudG9VcHBlckNhc2UoKSYmdC5lbWl0KCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dENvbmZpcm1lZCIse3RleHQ6ZS50ZXh0fSl9KSksbi4kcmVmcy5pbnB1dC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKGZ1bmN0aW9uKCl7dC5lbWl0KCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dEZvY3VzQ2hhbmdlZCIse2ZvY3VzOiEwfSl9KSksbi4kcmVmcy5pbnB1dC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoZnVuY3Rpb24oKXt0LmVtaXQoIm9uTmF2aWdhdGlvbkJhclNlYXJjaElucHV0Rm9jdXNDaGFuZ2VkIix7Zm9jdXM6ITF9KX0pKSl9fSxtZXRob2RzOntfYmFjazpmdW5jdGlvbigpezE9PT1nZXRDdXJyZW50UGFnZXMoKS5sZW5ndGg/dW5pLnJlTGF1bmNoKHt1cmw6Ii8ifSk6dW5pLm5hdmlnYXRlQmFjayh7ZnJvbToiYmFja2J1dHRvbiJ9KX0sX29uQnRuQ2xpY2s6ZnVuY3Rpb24oZSl7dC5lbWl0KCJvbk5hdmlnYXRpb25CYXJCdXR0b25UYXAiLE9iamVjdC5hc3NpZ24oe30sdGhpcy5idG5zW2VdLHtpbmRleDplfSkpfSxfZm9ybWF0QnRuRm9udFRleHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZm9udFNyYyYmdC5mb250RmFtaWx5P3QudGV4dC5yZXBsYWNlKCJcXHUiLCImI3giKTpzW3QudHlwZV0/c1t0LnR5cGVdOnQudGV4dHx8IiJ9LF9mb3JtYXRCdG5TdHlsZTpmdW5jdGlvbih0KXt2YXIgZT17Y29sb3I6dC5jb2xvcixmb250U2l6ZTp0LmZvbnRTaXplLGZvbnRXZWlnaHQ6dC5mb250V2VpZ2h0fTtyZXR1cm4gdC5mb250RmFtaWx5JiYoZS5mb250RmFtaWx5PXQuZm9udEZhbWlseSksZX0sX2ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5mb2N1cz0hMH0sX2JsdXI6ZnVuY3Rpb24oKXt0aGlzLmZvY3VzPSExfSxfaW5wdXQ6ZnVuY3Rpb24oZSl7dC5lbWl0KCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dENoYW5nZWQiLHt0ZXh0OmV9KX0sX2NsZWFySW5wdXQ6ZnVuY3Rpb24oKXt0aGlzLnRleHQ9IiIsdGhpcy5faW5wdXQodGhpcy50ZXh0KX19fTtlLmRlZmF1bHQ9Y30pLmNhbGwodGhpcyxuKCJhOWFhIikpfSxmZjIyOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCl7dmFyIGU9clt0XTtlfHwoZT17aWQ6MSxjYWxsYmFja3M6T2JqZWN0LmNyZWF0ZShudWxsKX0sclt0XT1lKTtyZXR1cm57Z2V0OmZ1bmN0aW9uKHQpe3JldHVybiBlLmNhbGxiYWNrc1t0XX0scG9wOmZ1bmN0aW9uKHQpe3ZhciBuPWUuY2FsbGJhY2tzW3RdO3JldHVybiBuJiZkZWxldGUgZS5jYWxsYmFja3NbdF0sbn0scHVzaDpmdW5jdGlvbih0KXt2YXIgbj1lLmlkKys7cmV0dXJuIGUuY2FsbGJhY2tzW25dPXQsbn19fTt2YXIgcj17fX19XSk7"}},"time_used":801,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":801,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"breeze-shopping.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"breeze-shopping.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/js/index.a800f123.js","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://breeze-shopping.com/","date":"2026-07-27T04:15:48.006Z","timestamp":1785125748006,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"breeze-shopping.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 15 Jul 2026 01:06:08 GMT","end":"Tue, 13 Oct 2026 01:06:07 GMT"},"fingerprint":{"sha1":"FC:2A:A7:4D:FF:04:7D:30:4B:17:B3:A5:DB:B5:51:EC:F4:17:89:0B","sha256":"6A:08:9D:6F:EB:0E:C9:60:FA:2A:59:01:4E:AE:44:51:20:B4:4D:8B:55:ED:47:9F:26:7D:74:49:BF:79:D4:02"}}},"request":{"raw":"GET /h5/static/js/index.a800f123.js HTTP/1.1\r\nHost: breeze-shopping.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://breeze-shopping.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 04:15:48 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 15 Jul 2026 02:04:11 GMT\r\nvary: Accept-Encoding, Accept-Encoding\r\netag: W/\"6a56ea9b-1e39b\"\r\nexpires: Mon, 03 Aug 2026 04:15:48 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\ncontent-encoding: gzip\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":123803,"size_decoded":29743,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65085), with no line terminators","md5":"060a0d9c2b6687d4823df498f0e64542","sha1":"7a65eb0ff5d7e7ea9086f3f4599d01d3194a2757","sha256":"5bde4b5d18263515f829178312482f2ba34c6abd843c70a868e6d07b56f46bed","sha512":"5b647dbb7e56be928c49a15eb74d6c98abe8af73597aad1acd0e19abf79e207f13f839011cade14dee5b4b4d82aa4d6086eb85c38a13e7155cace98f8e290c75","ssdeep":"1536:UUtiiNbqhjudrxj/gXxRP2vcUJBgS5+w3Co1:zRNbqhdxUJBT","tlshash":"cfc37283fac9605d8b4b5e82d05f33f8fab72c721246e8c3d6a17f658f59697221250c","first_seen":"2026-07-27T03:26:41.393252Z","last_seen":"2026-07-27T04:16:18.943165Z","times_seen":2,"resource_available":true,"data":"KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4obil7Zm9yKHZhciBpLG8scD1uWzBdLGQ9blsxXSxnPW5bMl0sdT0wLHM9W107dTxwLmxlbmd0aDt1Kyspbz1wW3VdLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG8pJiZlW29dJiZzLnB1c2goZVtvXVswXSksZVtvXT0wO2ZvcihpIGluIGQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsaSkmJih0W2ldPWRbaV0pO20mJm0obik7d2hpbGUocy5sZW5ndGgpcy5zaGlmdCgpKCk7cmV0dXJuIHIucHVzaC5hcHBseShyLGd8fFtdKSxhKCl9ZnVuY3Rpb24gYSgpe2Zvcih2YXIgdCxuPTA7bjxyLmxlbmd0aDtuKyspe2Zvcih2YXIgYT1yW25dLGk9ITAscD0xO3A8YS5sZW5ndGg7cCsrKXt2YXIgZD1hW3BdOzAhPT1lW2RdJiYoaT0hMSl9aSYmKHIuc3BsaWNlKG4tLSwxKSx0PW8oby5zPWFbMF0pKX1yZXR1cm4gdH12YXIgaT17fSxlPXtpbmRleDowfSxyPVtdO2Z1bmN0aW9uIG8obil7aWYoaVtuXSlyZXR1cm4gaVtuXS5leHBvcnRzO3ZhciBhPWlbbl09e2k6bixsOiExLGV4cG9ydHM6e319O3JldHVybiB0W25dLmNhbGwoYS5leHBvcnRzLGEsYS5leHBvcnRzLG8pLGEubD0hMCxhLmV4cG9ydHN9by5lPWZ1bmN0aW9uKHQpe3ZhciBuPVtdLGE9ZVt0XTtpZigwIT09YSlpZihhKW4ucHVzaChhWzJdKTtlbHNle3ZhciBpPW5ldyBQcm9taXNlKChmdW5jdGlvbihuLGkpe2E9ZVt0XT1bbixpXX0pKTtuLnB1c2goYVsyXT1pKTt2YXIgcixwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3AuY2hhcnNldD0idXRmLTgiLHAudGltZW91dD0xMjAsby5uYyYmcC5zZXRBdHRyaWJ1dGUoIm5vbmNlIixvLm5jKSxwLnNyYz1mdW5jdGlvbih0KXtyZXR1cm4gby5wKyJzdGF0aWMvanMvIisoeyJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIjoicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIsInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZCI6InBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZCIsInBhZ2VzLWNoZWNrSW4tY2hlY2tJbiI6InBhZ2VzLWNoZWNrSW4tY2hlY2tJbiIsInBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpbn5wYWdlcy1pbmRleC10YWtlfnBhZ2VzLW15LWxvZ2luUGFzc3dvcmR+cGFnZXMtbXl+MTFhMmVlMmQiOiJwYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haW5+cGFnZXMtaW5kZXgtdGFrZX5wYWdlcy1teS1sb2dpblBhc3N3b3JkfnBhZ2VzLW15fjExYTJlZTJkIiwicGFnZXMtaW5kZXgtaW5kZXgiOiJwYWdlcy1pbmRleC1pbmRleCIsInBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpbn5wYWdlcy1pbmRleC10YWtlfnBhZ2VzLW15LWxvZ2luUGFzc3dvcmR+cGFnZXMtbXktcGF5bWVudFBhc3N3b3JkfnB+ODA2YjM5MmYiOiJwYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haW5+cGFnZXMtaW5kZXgtdGFrZX5wYWdlcy1teS1sb2dpblBhc3N3b3JkfnBhZ2VzLW15LXBheW1lbnRQYXNzd29yZH5wfjgwNmIzOTJmIiwicGFnZXMtaW5kZXgtbGlzdCI6InBhZ2VzLWluZGV4LWxpc3QiLCJwYWdlcy1pbmRleC1tYWluIjoicGFnZXMtaW5kZXgtbWFpbiIsInBhZ2VzLWluZGV4LXRha2UiOiJwYWdlcy1pbmRleC10YWtlIiwicGFnZXMtbXktbG9naW5QYXNzd29yZCI6InBhZ2VzLW15LWxvZ2luUGFzc3dvcmQiLCJwYWdlcy1teS1wYXltZW50UGFzc3dvcmQiOiJwYWdlcy1teS1wYXltZW50UGFzc3dvcmQiLCJwYWdlcy13aXRoZHJhdy13aXRoZHJhdyI6InBhZ2VzLXdpdGhkcmF3LXdpdGhkcmF3IiwicGFnZXMtd2FsbGV0LUJpbmRCYW5rIjoicGFnZXMtd2FsbGV0LUJpbmRCYW5rIiwicGFnZXMtbG9naW4tbG9naW4iOiJwYWdlcy1sb2dpbi1sb2dpbiIsInBhZ2VzLW15LUFydGljbGVDb250ZW50IjoicGFnZXMtbXktQXJ0aWNsZUNvbnRlbnQiLCJwYWdlcy1teS1GdW5kaW5nRGV0YWlscyI6InBhZ2VzLW15LUZ1bmRpbmdEZXRhaWxzIiwicGFnZXMtbXktU2VydmljZX5wYWdlcy1yZWNoYXJnZS1yZWNoYXJnZSI6InBhZ2VzLW15LVNlcnZpY2V+cGFnZXMtcmVjaGFyZ2UtcmVjaGFyZ2UiLCJwYWdlcy1teS1TZXJ2aWNlIjoicGFnZXMtbXktU2VydmljZSIsInBhZ2VzLXJlY2hhcmdlLXJlY2hhcmdlIjoicGFnZXMtcmVjaGFyZ2UtcmVjaGFyZ2UiLCJwYWdlcy1teS1TdGF0aW9uTWVzc2FnZX5wYWdlcy1teS1tYWlsYm94IjoicGFnZXMtbXktU3RhdGlvbk1lc3NhZ2V+cGFnZXMtbXktbWFpbGJveCIsInBhZ2VzLW15LVN0YXRpb25NZXNzYWdlIjoicGFnZXMtbXktU3RhdGlvbk1lc3NhZ2UiLCJwYWdlcy1teS1tYWlsYm94IjoicGFnZXMtbXktbWFpbGJveCIsInBhZ2VzLW15LWFkZHJlc3MiOiJwYWdlcy1teS1hZGRyZXNzIiwicGFnZXMtbXktbWFpbGJveENvbnRlbnQiOiJwYWdlcy1teS1tYWlsYm94Q29udGVudCIsInBhZ2VzLW15LXRlYW0iOiJwYWdlcy1teS10ZWFtIiwicGFnZXMtcmVjaGFyZ2UtUmVjaGFyZ2VSZWNvcmQiOiJwYWdlcy1yZWNoYXJnZS1SZWNoYXJnZVJlY29yZCIsInBhZ2VzLXdhbGxldC1iYW5rTGlzdCI6InBhZ2VzLXdhbGxldC1iYW5rTGlzdCIsInBhZ2VzLXdhbGxldC1iaW5HY2FzaCI6InBhZ2VzLXdhbGxldC1iaW5HY2FzaCIsInBhZ2VzLXdhbGxldC1iaW5NYXlhIjoicGFnZXMtd2FsbGV0LWJpbk1heWEiLCJwYWdlcy13aXRoZHJhdy1XaXRoZHJhd2Fsc1JlY29yZCI6InBhZ2VzLXdpdGhkcmF3LVdpdGhkcmF3YWxzUmVjb3JkIn1bdF18fHQpKyIuIit7InBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiOiIzNjg3M2Y0ZSIsInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZCI6IjI5NTMyY2FmIiwicGFnZXMtY2hlY2tJbi1jaGVja0luIjoiNmVhYWI5OWEiLCJwYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haW5+cGFnZXMtaW5kZXgtdGFrZX5wYWdlcy1teS1sb2dpblBhc3N3b3JkfnBhZ2VzLW15fjExYTJlZTJkIjoiMGFkNTBhZjAiLCJwYWdlcy1pbmRleC1pbmRleCI6ImVhZmZiMmYzIiwicGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teS1wYXltZW50UGFzc3dvcmR+cH44MDZiMzkyZiI6ImUyNDAyMGY3IiwicGFnZXMtaW5kZXgtbGlzdCI6IjliMTM5MzFmIiwicGFnZXMtaW5kZXgtbWFpbiI6IjgzNmM2NDM3IiwicGFnZXMtaW5kZXgtdGFrZSI6IjQwNTkzMDViIiwicGFnZXMtbXktbG9naW5QYXNzd29yZCI6ImJmYjFkYjAzIiwicGFnZXMtbXktcGF5bWVudFBhc3N3b3JkIjoiNDFkNDE0YzAiLCJwYWdlcy13aXRoZHJhdy13aXRoZHJhdyI6IjNmZTg5ZWU3IiwicGFnZXMtd2FsbGV0LUJpbmRCYW5rIjoiZTQyZWZlNTUiLCJwYWdlcy1sb2dpbi1sb2dpbiI6ImRmZDFmZGRiIiwicGFnZXMtbXktQXJ0aWNsZUNvbnRlbnQiOiIwZDI5ZTBiNyIsInBhZ2VzLW15LUZ1bmRpbmdEZXRhaWxzIjoiMWYxMzVlOTEiLCJwYWdlcy1teS1TZXJ2aWNlfnBhZ2VzLXJlY2hhcmdlLXJlY2hhcmdlIjoiYWNlMzg1MGEiLCJwYWdlcy1teS1TZXJ2aWNlIjoiNjBmOWExZDciLCJwYWdlcy1yZWNoYXJnZS1yZWNoYXJnZSI6IjIwNjEzZWUxIiwicGFnZXMtbXktU3RhdGlvbk1lc3NhZ2V+cGFnZXMtbXktbWFpbGJveCI6ImYzYzIwMGU1IiwicGFnZXMtbXktU3RhdGlvbk1lc3NhZ2UiOiIyMTYwZjhhYSIsInBhZ2VzLW15LW1haWxib3giOiIzZDQ4YmJiNiIsInBhZ2VzLW15LWFkZHJlc3MiOiJiNTJhZTgyNCIsInBhZ2VzLW15LW1haWxib3hDb250ZW50IjoiN2VkNWRmZTQiLCJwYWdlcy1teS10ZWFtIjoiY2ZmZTE1NmIiLCJwYWdlcy1yZWNoYXJnZS1SZWNoYXJnZVJlY29yZCI6ImNjZTkyNzEzIiwicGFnZXMtd2FsbGV0LWJhbmtMaXN0IjoiMjhlZTM4ZmQiLCJwYWdlcy13YWxsZXQtYmluR2Nhc2giOiIwZWM1NDNhZSIsInBhZ2VzLXdhbGxldC1iaW5NYXlhIjoiNDhkOTc0ZTYiLCJwYWdlcy13aXRoZHJhdy1XaXRoZHJhd2Fsc1JlY29yZCI6Ijg5NTcwYjNiIn1bdF0rIi5qcyJ9KHQpO3ZhciBkPW5ldyBFcnJvcjtyPWZ1bmN0aW9uKG4pe3Aub25lcnJvcj1wLm9ubG9hZD1udWxsLGNsZWFyVGltZW91dChnKTt2YXIgYT1lW3RdO2lmKDAhPT1hKXtpZihhKXt2YXIgaT1uJiYoImxvYWQiPT09bi50eXBlPyJtaXNzaW5nIjpuLnR5cGUpLHI9biYmbi50YXJnZXQmJm4udGFyZ2V0LnNyYztkLm1lc3NhZ2U9IkxvYWRpbmcgY2h1bmsgIit0KyIgZmFpbGVkLlxuKCIraSsiOiAiK3IrIikiLGQubmFtZT0iQ2h1bmtMb2FkRXJyb3IiLGQudHlwZT1pLGQucmVxdWVzdD1yLGFbMV0oZCl9ZVt0XT12b2lkIDB9fTt2YXIgZz1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3Ioe3R5cGU6InRpbWVvdXQiLHRhcmdldDpwfSl9KSwxMmU0KTtwLm9uZXJyb3I9cC5vbmxvYWQ9cixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHApfXJldHVybiBQcm9taXNlLmFsbChuKX0sby5tPXQsby5jPWksby5kPWZ1bmN0aW9uKHQsbixhKXtvLm8odCxuKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsbix7ZW51bWVyYWJsZTohMCxnZXQ6YX0pfSxvLnI9ZnVuY3Rpb24odCl7InVuZGVmaW5lZCIhPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LG8udD1mdW5jdGlvbih0LG4pe2lmKDEmbiYmKHQ9byh0KSksOCZuKXJldHVybiB0O2lmKDQmbiYmIm9iamVjdCI9PT10eXBlb2YgdCYmdCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBhPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoby5yKGEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSksMiZuJiYic3RyaW5nIiE9dHlwZW9mIHQpZm9yKHZhciBpIGluIHQpby5kKGEsaSxmdW5jdGlvbihuKXtyZXR1cm4gdFtuXX0uYmluZChudWxsLGkpKTtyZXR1cm4gYX0sby5uPWZ1bmN0aW9uKHQpe3ZhciBuPXQmJnQuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiB0WyJkZWZhdWx0Il19OmZ1bmN0aW9uKCl7cmV0dXJuIHR9O3JldHVybiBvLmQobiwiYSIsbiksbn0sby5vPWZ1bmN0aW9uKHQsbil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pfSxvLnA9Ii9oNS8iLG8ub2U9ZnVuY3Rpb24odCl7dGhyb3cgY29uc29sZS5lcnJvcih0KSx0fTt2YXIgcD13aW5kb3dbIndlYnBhY2tKc29ucCJdPXdpbmRvd1sid2VicGFja0pzb25wIl18fFtdLGQ9cC5wdXNoLmJpbmQocCk7cC5wdXNoPW4scD1wLnNsaWNlKCk7Zm9yKHZhciBnPTA7ZzxwLmxlbmd0aDtnKyspbihwW2ddKTt2YXIgbT1kO3IucHVzaChbMCwiY2h1bmstdmVuZG9ycyJdKSxhKCl9KSh7MDpmdW5jdGlvbih0LG4sYSl7dC5leHBvcnRzPWEoIjk5MDAiKX0sIjAzMmUiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YS5yKG4pO3ZhciBpPWEoImFlNjUiKSxlPWEoIjZiMDQiKTtmb3IodmFyIHIgaW4gZSlbImRlZmF1bHQiXS5pbmRleE9mKHIpPDAmJmZ1bmN0aW9uKHQpe2EuZChuLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGVbdF19KSl9KHIpO2EoImRhZjkiKTt2YXIgbz1hKCJmMGM1IikscD1PYmplY3Qob1siYSJdKShlWyJkZWZhdWx0Il0saVsiYiJdLGlbImMiXSwhMSxudWxsLG51bGwsbnVsbCwhMSxpWyJhIl0sdm9pZCAwKTtuWyJkZWZhdWx0Il09cC5leHBvcnRzfSwiMThlOSI6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgaTthKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDA7dmFyIGU9ZnVuY3Rpb24odCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjUwMCxhPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl07YT9pfHwoaT0hMCwiZnVuY3Rpb24iPT09dHlwZW9mIHQmJnQoKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2k9ITF9KSxuKSk6aXx8KGk9ITAsc2V0VGltZW91dCgoZnVuY3Rpb24oKXtpPSExLCJmdW5jdGlvbiI9PT10eXBlb2YgdCYmdCgpfSksbikpfTtuLmRlZmF1bHQ9ZX0sIjE5YmQiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpO3ZhciBpPWEoIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwO3ZhciBlPWkoYSgiNTUzMCIpKSxyPXtodHRwOmZ1bmN0aW9uKHQpe3ZhciBuPXQudXJsLGE9dC5kYXRhLGk9dC5jYWxsYmFjayxyPXQubWV0aG9kLG89dC5oZWFkZXI7dW5pLnJlcXVlc3Qoe3VybDoiaHR0cHM6Ly9icmVlemUtc2hvcHBpbmcuY29tL2FwaSIrbixkYXRhOmEsaGVhZGVyOigwLGUuZGVmYXVsdCkoe3Rva2VuOnVuaS5nZXRTdG9yYWdlU3luYygidG9rZW4iKSwidGhpbmstbGFuZyI6ImVuLXVzIn0sbyksbWV0aG9kOnJ8fCJQT1NUIixkYXRhVHlwZToianNvbiIscmVzcG9uc2VUeXBlOiJ0ZXh0IixzdWNjZXNzOmZ1bmN0aW9uKHQpe3ZhciBuPXQuZGF0YTtyZXR1cm4gbiYmNDAxPT1uLmNvZGU/KHVuaS5zaG93TW9kYWwoe2NvbnRlbnQ6bi5tc2csY29uZmlybVRleHQ6Ik9LIixzaG93Q2FuY2VsOiExLHN1Y2Nlc3M6ZnVuY3Rpb24oKXt1bmkucmVMYXVuY2goe3VybDoiL3BhZ2VzL2xvZ2luL2xvZ2luIn0pfX0pLCExKToobiYmbi5jb2RlLCJmdW5jdGlvbiI9PXR5cGVvZiBpJiZpKG4pKX0sZmFpbDpmdW5jdGlvbih0KXt1bmkuc2hvd1RvYXN0KHt0aXRsZToiTmV0d29yayBlcnJvciwgcmVmcmVzaCBhbmQgdHJ5IGFnYWluIixpY29uOiJlcnJvciJ9KX19KX19O24uZGVmYXVsdD1yfSwiMjRjMiI6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDA7dmFyIGk9e3Y6IjEuOC4zIix2ZXJzaW9uOiIxLjguMyIsdHlwZTpbInByaW1hcnkiLCJzdWNjZXNzIiwiaW5mbyIsImVycm9yIiwid2FybmluZyJdfTtuLmRlZmF1bHQ9aX0sIjI3MWUiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPXtwcmltYXJ5OiIjMjk3OWZmIixwcmltYXJ5RGFyazoiIzJiODVlNCIscHJpbWFyeURpc2FibGVkOiIjYTBjZmZmIixwcmltYXJ5TGlnaHQ6IiNlY2Y1ZmYiLGJnQ29sb3I6IiNmM2Y0ZjYiLGluZm86IiM5MDkzOTkiLGluZm9EYXJrOiIjODI4NDhhIixpbmZvRGlzYWJsZWQ6IiNjOGM5Y2MiLGluZm9MaWdodDoiI2Y0ZjRmNSIsd2FybmluZzoiI2ZmOTkwMCIsd2FybmluZ0Rhcms6IiNmMjkxMDAiLHdhcm5pbmdEaXNhYmxlZDoiI2ZjYmQ3MSIsd2FybmluZ0xpZ2h0OiIjZmRmNmVjIixlcnJvcjoiI2ZhMzUzNCIsZXJyb3JEYXJrOiIjZGQ2MTYxIixlcnJvckRpc2FibGVkOiIjZmFiNmI2IixlcnJvckxpZ2h0OiIjZmVmMGYwIixzdWNjZXNzOiIjMTliZTZiIixzdWNjZXNzRGFyazoiIzE4YjU2NiIsc3VjY2Vzc0Rpc2FibGVkOiIjNzFkNWExIixzdWNjZXNzTGlnaHQ6IiNkYmYxZTEiLG1haW5Db2xvcjoiIzMwMzEzMyIsY29udGVudENvbG9yOiIjNjA2MjY2Iix0aXBzQ29sb3I6IiM5MDkzOTkiLGxpZ2h0Q29sb3I6IiNjMGM0Y2MiLGJvcmRlckNvbG9yOiIjZTRlN2VkIn07bi5kZWZhdWx0PWl9LDM1MDI6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIik7dmFyIGk9YSgiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDAsYSgiYWMxZiIpLGEoIjAwYjQiKSxhKCJkM2I3Iik7dmFyIGU9aShhKCJjN2ViIikpLHI9aShhKCIxZGExIikpLG89aShhKCJkNGVjIikpLHA9aShhKCJiZWUyIikpLGQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAsby5kZWZhdWx0KSh0aGlzLHQpLHRoaXMuY29uZmlnPXt0eXBlOiJuYXZpZ2F0ZVRvIix1cmw6IiIsZGVsdGE6MSxwYXJhbXM6e30sYW5pbWF0aW9uVHlwZToicG9wLWluIixhbmltYXRpb25EdXJhdGlvbjozMDAsaW50ZXJjZXB0OiExfSx0aGlzLnJvdXRlPXRoaXMucm91dGUuYmluZCh0aGlzKX1yZXR1cm4oMCxwLmRlZmF1bHQpKHQsW3trZXk6ImFkZFJvb3RQYXRoIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4iLyI9PT10WzBdP3Q6Ii8iLmNvbmNhdCh0KX19LHtrZXk6Im1peGluUGFyYW0iLHZhbHVlOmZ1bmN0aW9uKHQsbil7dD10JiZ0aGlzLmFkZFJvb3RQYXRoKHQpO3ZhciBhPSIiO3JldHVybi8uKlwvLipcPy4qPS4qLy50ZXN0KHQpPyhhPXVuaS4kdS5xdWVyeVBhcmFtcyhuLCExKSx0KyImIithKTooYT11bmkuJHUucXVlcnlQYXJhbXMobiksdCthKX19LHtrZXk6InJvdXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PSgwLHIuZGVmYXVsdCkoKDAsZS5kZWZhdWx0KSgpLm1hcmsoKGZ1bmN0aW9uIHQoKXt2YXIgbixhLGkscixvPWFyZ3VtZW50cztyZXR1cm4oMCxlLmRlZmF1bHQpKCkud3JhcCgoZnVuY3Rpb24odCl7d2hpbGUoMSlzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKG49by5sZW5ndGg+MCYmdm9pZCAwIT09b1swXT9vWzBdOnt9LGE9by5sZW5ndGg+MSYmdm9pZCAwIT09b1sxXT9vWzFdOnt9LGk9e30sInN0cmluZyI9PT10eXBlb2Ygbj8oaS51cmw9dGhpcy5taXhpblBhcmFtKG4sYSksaS50eXBlPSJuYXZpZ2F0ZVRvIik6KGk9dW5pLiR1LmRlZXBDbG9uZShuLHRoaXMuY29uZmlnKSxpLnVybD10aGlzLm1peGluUGFyYW0obi51cmwsbi5wYXJhbXMpKSxhLmludGVyY2VwdCYmKHRoaXMuY29uZmlnLmludGVyY2VwdD1hLmludGVyY2VwdCksaS5wYXJhbXM9YSxpPXVuaS4kdS5kZWVwTWVyZ2UodGhpcy5jb25maWcsaSksImZ1bmN0aW9uIiE9PXR5cGVvZiB1bmkuJHUucm91dGVJbnRlcmNlcHQpe3QubmV4dD0xNDticmVha31yZXR1cm4gdC5uZXh0PTEwLG5ldyBQcm9taXNlKChmdW5jdGlvbih0LG4pe3VuaS4kdS5yb3V0ZUludGVyY2VwdChpLHQpfSkpO2Nhc2UgMTA6cj10LnNlbnQsciYmdGhpcy5vcGVuUGFnZShpKSx0Lm5leHQ9MTU7YnJlYWs7Y2FzZSAxNDp0aGlzLm9wZW5QYWdlKGkpO2Nhc2UgMTU6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LHRoaXMpfSkpKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpfSx7a2V5OiJvcGVuUGFnZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIG49dC51cmwsYT0odC50eXBlLHQuZGVsdGEpLGk9dC5hbmltYXRpb25UeXBlLGU9dC5hbmltYXRpb25EdXJhdGlvbjsibmF2aWdhdGVUbyIhPXQudHlwZSYmInRvIiE9dC50eXBlfHx1bmkubmF2aWdhdGVUbyh7dXJsOm4sYW5pbWF0aW9uVHlwZTppLGFuaW1hdGlvbkR1cmF0aW9uOmV9KSwicmVkaXJlY3RUbyIhPXQudHlwZSYmInJlZGlyZWN0IiE9dC50eXBlfHx1bmkucmVkaXJlY3RUbyh7dXJsOm59KSwic3dpdGNoVGFiIiE9dC50eXBlJiYidGFiIiE9dC50eXBlfHx1bmkuc3dpdGNoVGFiKHt1cmw6bn0pLCJyZUxhdW5jaCIhPXQudHlwZSYmImxhdW5jaCIhPXQudHlwZXx8dW5pLnJlTGF1bmNoKHt1cmw6bn0pLCJuYXZpZ2F0ZUJhY2siIT10LnR5cGUmJiJiYWNrIiE9dC50eXBlfHx1bmkubmF2aWdhdGVCYWNrKHtkZWx0YTphfSl9fV0pLHR9KCksZz0obmV3IGQpLnJvdXRlO24uZGVmYXVsdD1nfSwiMzczZCI6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDAsYSgiNGU4MiIpO3ZhciBpPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdO3JldHVybiB0LnNvcnQoKGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucmFuZG9tKCktLjV9KSl9O24uZGVmYXVsdD1pfSwiM2M0NCI6ZnVuY3Rpb24odCxuLGEpe2EoImQzYjciKSxhKCJhYzFmIiksYSgiZDgxZCIpLGEoImI2NGIiKSxhKCIwMGI0IiksYSgiYTQzNCIpLHQuZXhwb3J0cz17ZGF0YTpmdW5jdGlvbigpe3JldHVybnt9fSxvbkxvYWQ6ZnVuY3Rpb24oKXt0aGlzLiR1LmdldFJlY3Q9dGhpcy4kdUdldFJlY3R9LG1ldGhvZHM6eyR1R2V0UmVjdDpmdW5jdGlvbih0LG4pe3ZhciBhPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihpKXt1bmkuY3JlYXRlU2VsZWN0b3JRdWVyeSgpLmluKGEpW24/InNlbGVjdEFsbCI6InNlbGVjdCJdKHQpLmJvdW5kaW5nQ2xpZW50UmVjdCgoZnVuY3Rpb24odCl7biYmQXJyYXkuaXNBcnJheSh0KSYmdC5sZW5ndGgmJmkodCksIW4mJnQmJmkodCl9KSkuZXhlYygpfSkpfSxnZXRQYXJlbnREYXRhOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIjt0aGlzLnBhcmVudHx8KHRoaXMucGFyZW50PSExKSx0aGlzLnBhcmVudD10aGlzLiR1LiRwYXJlbnQuY2FsbCh0aGlzLG4pLHRoaXMucGFyZW50JiZPYmplY3Qua2V5cyh0aGlzLnBhcmVudERhdGEpLm1hcCgoZnVuY3Rpb24obil7dC5wYXJlbnREYXRhW25dPXQucGFyZW50W25dfSkpfSxwcmV2ZW50RXZlbnQ6ZnVuY3Rpb24odCl7dCYmdC5zdG9wUHJvcGFnYXRpb24mJnQuc3RvcFByb3BhZ2F0aW9uKCl9fSxvblJlYWNoQm90dG9tOmZ1bmN0aW9uKCl7dW5pLiRlbWl0KCJ1T25SZWFjaEJvdHRvbSIpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLnBhcmVudCYmdW5pLiR1LnRlc3QuYXJyYXkodGhpcy5wYXJlbnQuY2hpbGRyZW4pKXt2YXIgbj10aGlzLnBhcmVudC5jaGlsZHJlbjtuLm1hcCgoZnVuY3Rpb24oYSxpKXthPT09dCYmbi5zcGxpY2UoaSwxKX0pKX19fX0sIjQyMWQiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpO3ZhciBpPWEoIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwLGEoImQzYjciKSxhKCJjOTc1Iik7dmFyIGU9aShhKCJkNGVjIikpLHI9aShhKCJiZWUyIikpLG89aShhKCI0ZGRkIikpLHA9aShhKCI5NTRhIikpLGQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIG49dGhpczsoMCxlLmRlZmF1bHQpKHRoaXMsdCksdGhpcy5jb25maWc9e2Jhc2VVcmw6IiIsaGVhZGVyOnt9LG1ldGhvZDoiUE9TVCIsZGF0YVR5cGU6Impzb24iLHJlc3BvbnNlVHlwZToidGV4dCIsc2hvd0xvYWRpbmc6ITAsbG9hZGluZ1RleHQ6Iuivt+axguS4rS4uLiIsbG9hZGluZ1RpbWU6ODAwLHRpbWVyOm51bGwsb3JpZ2luYWxEYXRhOiExLGxvYWRpbmdNYXNrOiEwfSx0aGlzLmludGVyY2VwdG9yPXtyZXF1ZXN0Om51bGwscmVzcG9uc2U6bnVsbH0sdGhpcy5nZXQ9ZnVuY3Rpb24odCl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9O3JldHVybiBuLnJlcXVlc3Qoe21ldGhvZDoiR0VUIix1cmw6dCxoZWFkZXI6aSxkYXRhOmF9KX0sdGhpcy5wb3N0PWZ1bmN0aW9uKHQpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtyZXR1cm4gbi5yZXF1ZXN0KHt1cmw6dCxtZXRob2Q6IlBPU1QiLGhlYWRlcjppLGRhdGE6YX0pfSx0aGlzLnB1dD1mdW5jdGlvbih0KXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30saT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307cmV0dXJuIG4ucmVxdWVzdCh7dXJsOnQsbWV0aG9kOiJQVVQiLGhlYWRlcjppLGRhdGE6YX0pfSx0aGlzLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30saT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307cmV0dXJuIG4ucmVxdWVzdCh7dXJsOnQsbWV0aG9kOiJERUxFVEUiLGhlYWRlcjppLGRhdGE6YX0pfX1yZXR1cm4oMCxyLmRlZmF1bHQpKHQsW3trZXk6InNldENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5jb25maWc9KDAsby5kZWZhdWx0KSh0aGlzLmNvbmZpZyx0KX19LHtrZXk6InJlcXVlc3QiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtpZih0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QmJiJmdW5jdGlvbiI9PT10eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0KXt2YXIgYT10aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qobik7aWYoITE9PT1hKXJldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oKXt9KSk7dGhpcy5vcHRpb25zPWF9cmV0dXJuIG4uZGF0YVR5cGU9bi5kYXRhVHlwZXx8dGhpcy5jb25maWcuZGF0YVR5cGUsbi5yZXNwb25zZVR5cGU9bi5yZXNwb25zZVR5cGV8fHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZSxuLnVybD1uLnVybHx8IiIsbi5wYXJhbXM9bi5wYXJhbXN8fHt9LG4uaGVhZGVyPU9iamVjdC5hc3NpZ24oe30sdGhpcy5jb25maWcuaGVhZGVyLG4uaGVhZGVyKSxuLm1ldGhvZD1uLm1ldGhvZHx8dGhpcy5jb25maWcubWV0aG9kLG5ldyBQcm9taXNlKChmdW5jdGlvbihhLGkpe24uY29tcGxldGU9ZnVuY3Rpb24obil7aWYodW5pLmhpZGVMb2FkaW5nKCksY2xlYXJUaW1lb3V0KHQuY29uZmlnLnRpbWVyKSx0LmNvbmZpZy50aW1lcj1udWxsLHQuY29uZmlnLm9yaWdpbmFsRGF0YSlpZih0LmludGVyY2VwdG9yLnJlc3BvbnNlJiYiZnVuY3Rpb24iPT09dHlwZW9mIHQuaW50ZXJjZXB0b3IucmVzcG9uc2Upe3ZhciBlPXQuaW50ZXJjZXB0b3IucmVzcG9uc2Uobik7ITEhPT1lP2EoZSk6aShuKX1lbHNlIGEobik7ZWxzZSBpZigyMDA9PW4uc3RhdHVzQ29kZSlpZih0LmludGVyY2VwdG9yLnJlc3BvbnNlJiYiZnVuY3Rpb24iPT09dHlwZW9mIHQuaW50ZXJjZXB0b3IucmVzcG9uc2Upe3ZhciByPXQuaW50ZXJjZXB0b3IucmVzcG9uc2Uobi5kYXRhKTshMSE9PXI/YShyKTppKG4uZGF0YSl9ZWxzZSBhKG4uZGF0YSk7ZWxzZSBpKG4pfSxuLnVybD1wLmRlZmF1bHQudXJsKG4udXJsKT9uLnVybDp0LmNvbmZpZy5iYXNlVXJsKygwPT1uLnVybC5pbmRleE9mKCIvIik/bi51cmw6Ii8iK24udXJsKSx0LmNvbmZpZy5zaG93TG9hZGluZyYmIXQuY29uZmlnLnRpbWVyJiYodC5jb25maWcudGltZXI9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt1bmkuc2hvd0xvYWRpbmcoe3RpdGxlOnQuY29uZmlnLmxvYWRpbmdUZXh0LG1hc2s6dC5jb25maWcubG9hZGluZ01hc2t9KSx0LmNvbmZpZy50aW1lcj1udWxsfSksdC5jb25maWcubG9hZGluZ1RpbWUpKSx1bmkucmVxdWVzdChuKX0pKX19XSksdH0oKSxnPW5ldyBkO24uZGVmYXVsdD1nfSwiNDg4ZiI6ZnVuY3Rpb24odCxuLGEpe3ZhciBpLGU9YSgiOTUyMyIpLmRlZmF1bHQ7dC5leHBvcnRzPXttZXNzYWdlOihpPXtwbGF0Zm9ybU5hbWU6IkJSRUVaRS1TSE9QUElORyIsY3VycmVuY3lBYmJyZXZpYXRpb246IlBIUCIsY3VycmVuY3lTeW1ib2w6IuKCsSIsV2l0aGRyYXdUeXBlOiJHY2FzaCIsaG9tZToiSG9tZSIsbGlzdDoiTGlzdCIsdGFrZToiT3JkZXIiLG15OiJNeSIsUmVjaGFyZ2U6IlJlY2hhcmdlIixXaXRoZHJhdzoiV2l0aGRyYXciLENvbmZpcm06IkNvbmZpcm0iLENhbmNlbDoiQ2FuY2VsIixJbnZpdGF0aW9uQ29kZToiSW52aXRhdGlvbiBjb2RlIixBY2NvdW50UmVjaGFyZ2U6IlJlY2hhcmdlIixSZWNvcmQ6IlJlY29yZCIsY29weVN1Y2Nlc3M6IkNvcHkgU3VjY2Vzc2Z1bGx5Iixjb3B5RXJyb3I6IlJlcGxpY2F0aW9uIEZhaWxlZCIsQWRkVG86IkFkZCB0byIscGxlYXNlQ29uZmlybToicGxlYXNlIGNvbmZpcm0iLENvbmZpcm10aGVDaGFuZ2VzOiJDb25maXJtIHRoZSBjaGFuZ2VzIixlbXB0eToiTm8gZGF0YSIsQW5ub3VuY2VtZW50OiJBbm5vdW5jZW1lbnQiLGNvcHk6IkNvcHkiLGFjY291bnRMb2dpbjoiQWNjb3VudCBsb2dpbiIsU2lnblVwTm93OiJTaWduIHVwIG5vdyIsYWNjb3VudDoiUGxlYXNlIGZpbGwgaW4geW91ciBtb2JpbGUgbnVtYmVyIixwYXNzd29yZDoicGxlYXNlIGVudGVyIHBhc3N3b3JkIixDb25maXJtUGFzc3dvcmQ6IlBsZWFzZSBlbnRlciB0aGUgcGFzc3dvcmQgYWdhaW4gdG8gY29uZmlybSIsSW52aXRhdGlvbkNvZGVFcnJvcjoiUGxlYXNlIGVudGVyIHRoZSBpbnZpdGF0aW9uIGNvZGUiLEZvcmdldEN1c3RvbWVyU2VydmljZToiRm9yZ290IHBhc3N3b3JkLCBjb250YWN0IGN1c3RvbWVyIHNlcnZpY2UiLFF1ZXN0aW9uQ3VzdG9tZXJTZXJ2aWNlOiJJZiB5b3UgZW5jb3VudGVyIHByb2JsZW1zLCBjb250YWN0IGN1c3RvbWVyIHNlcnZpY2UiLGxvZ2luSW1tZWRpYXRlbHk6IkxvZyBpbiBpbW1lZGlhdGVseSIsbG9nZ2luZ0luOiJMb2dnaW5nIGluIixyZWdpc3RlcjoiU2lnbiB1cCBub3ciLHJlZ2lzdGVyaW5nOiJSZWdpc3RlcmluZyIscmVnaXN0cmF0aW9uU3VjY2VzczoiUmVnaXN0cmF0aW9uIHN1Y2Nlc3MiLGxvZ2luU3VjY2VzczoiTG9naW4gc3VjY2Vzc2Z1bCIsYmFsYW5jZVdpdGhkcmF3YWw6IldpdGhkcmF3IixhYm91dFVzOiJBYm91dCBVcyIsb25saW5lU2VydmljZToib25saW5lIHNlcnZpY2UiLENsaWNrVG9TaWduSW46IkNsaWNrIHRvIHNpZ24gaW4iLHNpZ25JblJld2FyZDoiU2lnbiBpbiB0byByZWNlaXZlIGNhc2ggcmV3YXJkcyIsc2lnbkluTm93OiJDaGVja0luIixDb21taXNzaW9uRGlzcGxheToiQ29tbWlzc2lvbiBkaXNwbGF5IixjZWxlYnJhdGU6IkNlbGVicmF0ZSIsVXNlcjoiVXNlciIsdG9FYXJuOiJUbyBlYXJuIixQYXJ0bmVyOiJQYXJ0bmVyIixDb21wbGV0ZU9yZGVyOiJDb21wbGV0ZSBvcmRlciIsUmVtYWluaW5nVGFza3M6IlJlbWFpbmluZyBPcmRlcnMiLG1lbWJlcnNoaXBMZXZlbDoiTWVtYmVyc2hpcCBsZXZlbCIsQ29tbWlzc2lvblN0YXRpc3RpY3M6IkNvbW1pc3Npb24gc3RhdGlzdGljcyIsU3RhcnRXb3JraW5nOiJBREQgVE8gQ0FSVCIsQ2F0ZWdvcmllczoiQ2F0ZWdvcmllcyIsbWF0Y2hpbmc6Ik1hdGNoaW5nIG9yZGVycyBmb3IgeW91IixnZXRhbk9yZGVyOiJjb25ncmF0dWxhdGlvbnMhIFRvIGdldCBhIG5ldyBqb2IsIHBsZWFzZSBzZWxlY3QgYSBwcm9kdWN0IGFuZCBzdWJtaXQgdGhlIG9yZGVyIGluIHRpbWUgdG8gY29tcGxldGUgdGhlIGpvYiIsb3JkZXJUaW1lOiJPcmRlciB0aW1lIix1bml0UHJpY2U6IlVuaXQgcHJpY2UiLHJ1bGU6IkNvbW1vbiIsTnVtYmVyb2ZQcm9kdWN0czoiSXRlbXMiLGNvbW1pc3Npb25BbW91bnQ6IkNvbW1pc3Npb24gYW1vdW50IixUb3RhbE1lcmNoYW5kaXNlOiJUb3RhbCBtZXJjaGFuZGlzZSIsY29weUxpbms6IkNvcHkgTGluayIsU3VibWl0T3JkZXI6IlN1Ym1pdCBPcmRlciIsc3VibWl0dGluZzoiU3VibWl0dGluZyIsSGludDoiSGludCIsdG9BZGQ6IlRvIGFkZCIsYWRkQWRkcmVzc0Vycm9yOiJObyBkZWxpdmVyeSBhZGRyZXNzIGhhcyBiZWVuIGFkZGVkIHlldCIsQ29uZmlybVNlcnZpY2U6IkNsaWNrIE9LIHRvIGFkZCBpdCBpbW1lZGlhdGVseS4gSWYgeW91IGVuY291bnRlciBhbnkgcHJvYmxlbXMsIHBsZWFzZSBjb25zdWx0IGN1c3RvbWVyIHNlcnZpY2UuIixiYWxhbmNlRXJyb3I6IllvdXIgYWNjb3VudCBiYWxhbmNlIGlzIGluc3VmZmljaWVudCIsYmFsYW5jZVNlcnZpY2U6IkNsaWNrIENvbmZpcm0gdG8gcmVjaGFyZ2UgaW1tZWRpYXRlbHkuIElmIHlvdSBlbmNvdW50ZXIgYW55IHByb2JsZW1zLCBwbGVhc2UgY29uc3VsdCBjdXN0b21lciBzZXJ2aWNlLiIsYWxsT3JkZXJzOiJBbGwiLGNvbXBsZXRlZE9yZGVyOiJDb21wbGV0ZWQiLEluY29tcGxldGVPcmRlcnM6IlVuZG9uZSIsQ2FuY2VsT3JkZXJzOiJDYW5jZWwgdGhlIG9yZGVyIixNZW1iZXJCYWxhbmNlOiJNZW1iZXIgYmFsYW5jZSIsbXlTZXJ2aWNlOiJNeSBzZXJ2aWNlIixGdW5kaW5nRGV0YWlsczoiRGV0YWlsZWQiLGludml0ZUZyaWVuZHM6Ikludml0ZSBmcmllbmRzIixhZGRBZGRyZXNzOiJBZGQgYWRkcmVzcyIsTWFudWFsQ3VzdG9tZXJTZXJ2aWNlOiJPbmxpbmUgc2VydmljZSIsbXlUb29sczoiTXkgdG9vbHMiLGxvZ2luUGFzc3dvcmQ6IkxvZ2luIHBhc3N3b3JkIixwYXltZW50UGFzc3dvcmQ6IlBheW1lbnQgcGFzc3dvcmQiLFJlY2hhcmdlUmVjb3JkOiJSZWNoYXJnZSByZWNvcmQiLFdpdGhkcmF3YWxzUmVjb3JkOiJXaXRoZHJhd2FscyByZWNvcmQiLG15VGVhbToiTXkgdGVhbSIsQmluZEJhbmtDYXJkOiJCaW5kIGJhbmsgY2FyZCIsY2xlYXJDYWNoZToiQ2xlYXIgY2FjaGUiLENvbmZpcm1DbGVhcm15VGVhbToiQ29uZmlybSBDbGVhciIsQ29uZmlybUNsZWFyUmVtaW5kZXI6IkNsZWFyaW5nIHRoZSBjYWNoZSB3aWxsIGxvZyB5b3Ugb3V0IixDb25maXJtQ2xlYXJpbmdJbmZvcm1hdGlvbjoiQ2xlYXJpbmcgdGhlIGNhY2hlIHdpbGwgbG9nIHlvdSBvdXQiLHNpZ25PdXQ6IkxvZyBvdXQiLGNhcmRIb2xkZXI6Ik5hbWUgaG9sZGVyIixDb3B5TGluazoiQ29weSBMaW5rIixtYWlsYm94OiJNeSBNYWlsYm94IixBY2NvdW50QmFsYW5jZToiQWNjb3VudCBCYWxhbmNlIixSZWNoYXJnZUFtb3VudDoiUmVjaGFyZ2UgYW1vdW50IixSZWNoYXJnZUFtb3VudEVycm9yOiJQbGVhc2UgZW50ZXIgdGhlIHJlY2hhcmdlIGFtb3VudCIscGF5VHllOiJQYXltZW50IG1ldGhvZCIscGF5VHllRXJyb3I6IlBsZWFzZSBzZWxlY3QgbW9kZSBvZiBwYXltZW50IixBY2NvdW50c1JlY2VpdmFibGU6IkNvbGxlY3Rpb24gYWNjb3VudCBpbmZvcm1hdGlvbiIscmVjaGFyZ2VNc2dUaXQ6IlJlY2hhcmdlIE5vdGljZSIscmVjaGFyZ2VNc2c6IkFmdGVyIHRoZSB0cmFuc2ZlciwgcGxlYXNlIHNlbmQgdGhlIHRyYW5zZmVyIGRpYWdyYW0gdG8gdGhlIGluc3RydWN0b3IiLENhcmRob2xkZXI6Ik5hbWUgaG9sZGVyIixDYXJkaG9sZGVyRXJyb3I6IlBsZWFzZSBlbnRlciBOYW1lIGhvbGRlciIsQmFua0NhcmROdW1iZXI6IkJhbmsgYWNjb3VudCBudW1iZXIiLEJhbmtDYXJkTnVtYmVyRXJyb3I6IlBsZWFzZSBlbnRlciB0aGUgQmFuayBhY2NvdW50IG51bWJlciIsQmFua05hbWU6IkJhbmsgbmFtZSIsQmFua05hbWVFcnJvcjoiUGxlYXNlIGVudGVyIHRoZSBiYW5rIG5hbWUiLFNoaXBwaW5nQWRkcmVzczoiU2hpcHBpbmcgYWRkcmVzcyIsY29uc2lnbmVlOiJSZWNlaXZlciIsY29uc2lnbmVlRXJyb3I6IlBsZWFzZSBlbnRlciB0aGUgY29uc2lnbmVlIG5hbWUiLGNvbnNpZ25lZVRlbDoiUGhvbmUgbnVtYmVyIixjb25zaWduZWVUZWxFcnJvcjoiUGxlYXNlIGVudGVyIHRoZSBjb25zaWduZWUncyBtb2JpbGUgcGhvbmUgbnVtYmVyIixhcmVhOiJDb3VudHJ5IC8gcmVnaW9uIixhcmVhRXJyb3I6IlBsZWFzZSBlbnRlciBhIGNvdW50cnkgb3IgcmVnaW9uIixkZXRhaWxlZEFkZHJlc3M6IkFkZHJlc3MiLGRldGFpbGVkQWRkcmVzc0Vycm9yOiJQbGVhc2UgZW50ZXIgZGV0YWlsZWQgYWRkcmVzcyIsTW9kaWZ5UGF5bWVudFBhc3N3b3JkOiJNb2RpZnkgcGF5bWVudCBwYXNzd29yZCIscGF5bWVudFBhc3N3b3JkRXJyb3I6IlBsZWFzZSBlbnRlciBwYXltZW50IHBhc3N3b3JkIixwYXltZW50UGFzc3dvcmQyOiJDb25maXJtIFBhc3N3b3JkIixwYXltZW50UGFzc3dvcmQyRXJyb3I6IlBsZWFzZSBlbnRlciB0aGUgcGF5bWVudCBwYXNzd29yZCBhZ2FpbiIsbG9naW5QYXNzd29yZEVycm9yOiJQbGVhc2UgZW50ZXIgdGhlIGxvZ2luIHBhc3N3b3JkIHRvIHZlcmlmeSIsQ2hhbmdlTG9naW5QYXNzd29yZDoiQ2hhbmdlIGxvZ2luIHBhc3N3b3JkIixvbGRQYXNzd29yZDoiT2xkIHBhc3N3b3JkIixvbGRQYXNzd29yZEVycm9yOiJQbGVhc2UgZW50ZXIgdGhlIG9yaWdpbmFsIGxvZ2luIHBhc3N3b3JkIixuZXdQYXNzd29yZDoiTmV3IFBhc3N3b3JkIixuZXdQYXNzd29yZEVycm9yOiJQbGVhc2UgZW50ZXIgYSBuZXcgbG9naW4gcGFzc3dvcmQiLG5ld1Bhc3N3b3JkMjoiQ29uZmlybSBQYXNzd29yZCIsbmV3UGFzc3dvcmRFcnJvcjI6IlBsZWFzZSBlbnRlciB0aGUgbmV3IGxvZ2luIHBhc3N3b3JkIGFnYWluIixDaGFuZ2VQYXNzd29yZFJlbWluZGVyOiJUaGUgcGFzc3dvcmQgd2lsbCBiZSBjaGFuZ2VkIHRvIixNb2RpZnlQYXNzd29yZFJlbWluZGVyQ29udGVudDoiQ2xpY2sgT0sgdG8gbW9kaWZ5IGltbWVkaWF0ZWx5LiBJZiB5b3UgZW5jb3VudGVyIGFueSBwcm9ibGVtcywgcGxlYXNlIGNvbnN1bHQgY3VzdG9tZXIgc2VydmljZS4iLFJlY2hhcmdlRGV0YWlsczoiUmVjaGFyZ2UgRGV0YWlscyIsb25saW5lUmVjaGFyZ2U6Ik9ubGluZSByZWNoYXJnZSIsTWFudWFsUmVjaGFyZ2U6Ik1hbnVhbCByZWNoYXJnZSIsQWNjb3VudFdpdGhkcmF3YWw6IkFjY291bnQgd2l0aGRyYXdhbCIsV2l0aGRyYXdhYmxlQmFsYW5jZToiV2l0aGRyYXdhYmxlIGJhbGFuY2UiLFBheW1lbnRNZXRob2Q6IlBheW1lbnQgbWV0aG9kIixXaXRoZHJhd2FsQW1vdW50OiJXaXRoZHJhd2FsIEFtb3VudCIsV2l0aGRyYXdhbEFtb3VudEVycm9yOiJQbGVhc2UgZW50ZXIgdGhlIHdpdGhkcmF3YWwgYW1vdW50IixQYXltZW50TWV0aG9kRXJyb3I6IlBsZWFzZSBjaG9vc2UgdGhlIHBheW1lbnQgbWV0aG9kIixPUGVuUGF5bWVudE1ldGhvZDoiQ2xpY2sgdG8gc2VsZWN0IHRoZSBwYXltZW50IG1ldGhvZCIsV2l0aGRyYXdhbERldGFpbHM6IldpdGhkcmF3YWwgZGV0YWlscyIsdW5kZXJSZXZpZXc6IlVuZGVyIHJldmlldyIsZXhhbWluYXRpb25QYXNzZWQ6IkV4YW1pbmF0aW9uIHBhc3NlZCIsQXVkaXRSZWplY3RlZDoiQXVkaXQgUmVqZWN0ZWQiLGJhbmtUcmFuc2ZlcjoiVGhlIGJhbmsgaXMgc2VuZGluZyBtb25leSIsUmVtYXJrOiJSZW1hcmsiLGdvVG9TZXR0aW5nczoiR28gdG8gc2V0dGluZ3MiLFBheW1lbnRQYXNzd29yZFJlbWluZGVyOiJObyBwYXltZW50IHBhc3N3b3JkIGhhcyBiZWVuIHNldCB5ZXQiLFBheW1lbnRQYXNzd29yZFJlbWluZGVyTXNnOiJDbGljayBDb25maXJtIHRvIHNldCB0aGUgcGF5bWVudCBwYXNzd29yZCBpbW1lZGlhdGVseS4gSWYgeW91IGVuY291bnRlciBhbnkgcHJvYmxlbXMsIHBsZWFzZSBjb25zdWx0IGN1c3RvbWVyIHNlcnZpY2UuIixUb0JpbmQ6IlRvIGJpbmQiLEJpbmRpbmdCYW5rQ2FyZFJlbWluZGVyOiJObyBiYW5rIGNhcmQgeWV0IixCaW5kaW5nQmFua0NhcmRSZW1pbmRlck1zZzoiQ2xpY2sgQ29uZmlybSB0byBiaW5kIHRoZSB3aXRoZHJhd2FsIG1ldGhvZCBpbW1lZGlhdGVseS4gSWYgeW91IGVuY291bnRlciBhbnkgcHJvYmxlbXMsIHBsZWFzZSBjb25zdWx0IGN1c3RvbWVyIHNlcnZpY2UuIixTdWNjZXNzZnVsV2l0aGRyYXdhbDoiU3VjY2Vzc2Z1bCB3aXRoZHJhd2FsIixTdWNjZXNzZnVsV2l0aGRyYXdhbE1zZzoiVGhlIHdpdGhkcmF3YWwgYXBwbGljYXRpb24gaGFzIGJlZW4gc3VibWl0dGVkIHRvIHRoZSBiYWNrZ3JvdW5kIGZvciByZXZpZXcuIEFmdGVyIGNvbmZpcm1hdGlvbiwgaXQgd2lsbCBiZSBzdWJtaXR0ZWQgdG8gdGhlIGJhbmsgZm9yIHBheW1lbnQuIEZvciBkZXRhaWxzLCBwbGVhc2UgY29uc3VsdCBjdXN0b21lciBzZXJ2aWNlLiIsb3Blbkxpbms6Ik9wZW4gbGluayIsY29weUxpbmtBZGQ6IkNvcHkgdGhlIGxpbmsgdG8gYWRkIGN1c3RvbWVyIHNlcnZpY2Ugb24gVGVsZWdyYW0iLE9wZW50aGVMaW5rdG9BZGQ6Ik9wZW4gdGhlIGxpbmsgZGlyZWN0bHkgdG8gYWRkIGZyaWVuZHMiLEJhbGFuY2VCZWZvcmVBY2NvdW50Q2hhbmdlOiJCYWxhbmNlIGJlZm9yZSBhY2NvdW50IGNoYW5nZSIsQmFsYW5jZUFmdGVyQWNjb3VudENoYW5nZToiQmFsYW5jZSBhZnRlciBhY2NvdW50IGNoYW5nZSIsVG9wVXA6IlRvcCB1cCIsbWFudWFsRGVkdWN0aW9uOiJNYW51YWwgZGVkdWN0aW9uIixCb251c0dpdmVhd2F5OiJCb251cyBnaXZlYXdheSIsQ29tbWlzc2lvbmludG9BY2NvdW50OiJDb21taXNzaW9uIGludG8gYWNjb3VudCIsQ2FzaFdpdGhkcmF3YWw6IkNhc2ggd2l0aGRyYXdhbCIsV2l0aGRyYXdhbFJlamVjdGVkOiJXaXRoZHJhd2FsIHJlamVjdGVkIixQcm9tb3Rpb25SZWJhdGU6IlByb21vdGlvbiByZWJhdGUiLHNpZ25pbnJld2FyZDoiU2lnbi1pbiByZXdhcmQiLFRlYW1TaXplOiJUZWFtIHNpemUiLEN1bXVsYXRpdmVSZXdhcmRzOiJDdW11bGF0aXZlIHJld2FyZHMiLFRvZGF5VGVhbVJlY2hhcmdlOiJUb2RheSdzIHRlYW0gcmVjaGFyZ2UiLFRlYW1SZWNoYXJnZVRoaXNXZWVrOiJUZWFtIHJlY2hhcmdlIHRoaXMgd2VlayIsVGVhbVJlY2hhcmdlVGhpc01vbnRoOiJUZWFtIHJlY2hhcmdlIHRoaXMgbW9udGgiLFRlYW1XaXRoZHJhd2FsVG9kYXk6IlRlYW0gd2l0aGRyYXdhbCB0b2RheSIsVGVhbVdpdGhkcmF3YWxUaGlzV2VlazoiVGVhbSB3aXRoZHJhd2FsIHRoaXMgd2VlayIsVGVhbVdpdGhkcmF3YWxUaGlzTW9udGg6IlRlYW0gd2l0aGRyYXdhbCB0aGlzIG1vbnRoIixwZW9wbGU6IlBlb3BsZSIsdGVhbUxpc3Q6IlRlYW0gbGlzdCIsZ2V0Q29tbWlzc2lvbjoiR2V0IGNvbW1pc3Npb24iLGNoZWNraW46IkNoZWNrIGluIixTaWduaW5Ub2dldENhc2g6IlNpZ24gaW4gdG8gcmVjZWl2ZSBjYXNoIHJld2FyZHMiLGNvbnRpbnVvdXNDaGVja2luOiJZb3UgaGF2ZSBzaWduZWQgaW4gY29uc2VjdXRpdmVseSJ9LGUoaSwiZ2V0Q29tbWlzc2lvbiIsIkdldCBjb21taXNzaW9uIiksZShpLCJEYXkiLCJTa3kiKSxlKGksIlNpZ25lZGluVG9kYXkiLCJTaWduZWQgaW4gdG9kYXkiKSxlKGksImNvbnNlY3V0aXZlUmV3YXJkcyIsIkNvbnRpbnVvdXMgc2lnbi1pbiByZXdhcmQiKSxlKGksIkNoZWNraW5SZWNvcmQiLCJDaGVjay1pbiByZWNvcmQiKSxlKGksIkdjYXNoIiwiR2Nhc2giKSxlKGksIk1heWEiLCJNYXlhIiksZShpLCJCYW5rQ2FyZCIsIkJhbmsgY2FyZCIpLGUoaSwiQWRkT3JNb2RpZnkiLCJBZGQgb3IgbW9kaWZ5IiksZShpLCJhZGRHY2FzaCIsIkJpbmQgR2Nhc2giKSxlKGksIkdjYXNoQWNjb3VudCIsIkdjYXNoIGFjY291bnQiKSxlKGksIkdjYXNoQWNjb3VudEVycm9yIiwiUGxlYXNlIGVudGVyIEdjYXNoIGFjY291bnQgbnVtYmVyIiksZShpLCJHY2FzaE5hbWUiLCJHY2FzaCBuYW1lIiksZShpLCJHY2FzaE5hbWVFcnJvciIsIlBsZWFzZSBlbnRlciB5b3VyIEdjYXNoIG5hbWUiKSxlKGksImFkZE1heWEiLCJCaW5kIE1heWEiKSxlKGksIk1heWFBY2NvdW50IiwiTWF5YSBhY2NvdW50IiksZShpLCJNYXlhQWNjb3VudEVycm9yIiwiUGxlYXNlIGVudGVyIHRoZSBNYXlhIGFjY291bnQiKSxlKGksIk1heWFOYW1lIiwiTWF5YSBuYW1lIiksZShpLCJNYXlhTmFtZUVycm9yIiwiUGxlYXNlIGVudGVyIE1heWEgbmFtZSIpLGUoaSwiU3RhdGlvbk1lc3NhZ2UiLCJTdGF0aW9uIG1lc3NhZ2UiKSxlKGksIlN0YXRpb25NZXNzYWdlQWJvdXRVcyIsIkFib3V0IFVzIiksZShpLCJTdGF0aW9uTWVzc2FnZUFubm91bmNlbWVudCIsIlBsYXRmb3JtIGFubm91bmNlbWVudCIpLGUoaSwiU3RhdGlvbk1lc3NhZ2VIZWxwIiwiSGVscCIpLGUoaSwiVU5SRUFEIiwiVU5SRUFEIiksZShpLCJSRUFEIiwiUkVBRCIpLGkpfX0sIjRkZGQiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpO3ZhciBpPWEoIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwLGEoIjk5YWYiKTt2YXIgZT1pKGEoIjUzY2EiKSkscj1pKGEoIjkwMDEiKSk7dmFyIG89ZnVuY3Rpb24gdCgpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZihuPSgwLHIuZGVmYXVsdCkobiksIm9iamVjdCIhPT0oMCxlLmRlZmF1bHQpKG4pfHwib2JqZWN0IiE9PSgwLGUuZGVmYXVsdCkoYSkpcmV0dXJuITE7Zm9yKHZhciBpIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShpKSYmKGkgaW4gbj8ib2JqZWN0IiE9PSgwLGUuZGVmYXVsdCkobltpXSl8fCJvYmplY3QiIT09KDAsZS5kZWZhdWx0KShhW2ldKT9uW2ldPWFbaV06bltpXS5jb25jYXQmJmFbaV0uY29uY2F0P25baV09bltpXS5jb25jYXQoYVtpXSk6bltpXT10KG5baV0sYVtpXSk6bltpXT1hW2ldKTtyZXR1cm4gbn07bi5kZWZhdWx0PW99LDUyMDg6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp2b2lkIDAsbj10aGlzLiRwYXJlbnQ7d2hpbGUobil7aWYoIW4uJG9wdGlvbnN8fG4uJG9wdGlvbnMubmFtZT09PXQpcmV0dXJuIG47bj1uLiRwYXJlbnR9cmV0dXJuITF9fSw2MDUyOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe2EoIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMDt2YXIgaT17b25MYXVuY2g6ZnVuY3Rpb24oKXt0LmxvZygiQXBwIExhdW5jaCIpfSxvblNob3c6ZnVuY3Rpb24oKXt0LmxvZygiQXBwIFNob3ciKX0sb25IaWRlOmZ1bmN0aW9uKCl7dC5sb2coIkFwcCBIaWRlIil9fTtuLmRlZmF1bHQ9aX0pLmNhbGwodGhpcyxhKCI1YTUyIilbImRlZmF1bHQiXSl9LCI2YjA0IjpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EucihuKTt2YXIgaT1hKCI2MDUyIiksZT1hLm4oaSk7Zm9yKHZhciByIGluIGkpWyJkZWZhdWx0Il0uaW5kZXhPZihyKTwwJiZmdW5jdGlvbih0KXthLmQobix0LChmdW5jdGlvbigpe3JldHVybiBpW3RdfSkpfShyKTtuWyJkZWZhdWx0Il09ZS5hfSw3NDAwOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPWZ1bmN0aW9uKHQsbil7aWYodD49MCYmbj4wJiZuPj10KXt2YXIgYT1uLXQrMTtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmErdCl9cmV0dXJuIDB9O24uZGVmYXVsdD1pfSwiN2ExOSI6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7dmFyIG49YSgiNGVhNCIpLmRlZmF1bHQ7YSgiMTNkNSIpLGEoImQzYjciKSxhKCJkZGIwIiksYSgiYWMxZiIpLGEoIjUzMTkiKTt2YXIgaT1uKGEoImUxNDMiKSksZT17a2V5czpmdW5jdGlvbigpe3JldHVybltdfX07dFsiX19fXzFDRjA3RkZfX19fIl09ITAsZGVsZXRlIHRbIl9fX18xQ0YwN0ZGX19fXyJdLHQuX191bmlDb25maWc9e2Vhc3ljb206eyJedS0oLiopIjoiQC91dmlldy11aS9jb21wb25lbnRzL3UtJDEvdS0kMS52dWUiLCJedW5pY2xvdWQtZGIkIjoiQGRjbG91ZGlvL3VuaS1jbGktc2hhcmVkL2NvbXBvbmVudHMvdW5pY2xvdWQtZGIudnVlIiwiXnVuaWFkJCI6IkBkY2xvdWRpby91bmktY2xpLXNoYXJlZC9jb21wb25lbnRzL3VuaWFkLnZ1ZSIsIl5hZC1yZXdhcmRlZC12aWRlbyQiOiJAZGNsb3VkaW8vdW5pLWNsaS1zaGFyZWQvY29tcG9uZW50cy9hZC1yZXdhcmRlZC12aWRlby52dWUiLCJeYWQtZnVsbHNjcmVlbi12aWRlbyQiOiJAZGNsb3VkaW8vdW5pLWNsaS1zaGFyZWQvY29tcG9uZW50cy9hZC1mdWxsc2NyZWVuLXZpZGVvLnZ1ZSIsIl5hZC1pbnRlcnN0aXRpYWwkIjoiQGRjbG91ZGlvL3VuaS1jbGktc2hhcmVkL2NvbXBvbmVudHMvYWQtaW50ZXJzdGl0aWFsLnZ1ZSIsIl5hZC1pbnRlcmFjdGl2ZSQiOiJAZGNsb3VkaW8vdW5pLWNsaS1zaGFyZWQvY29tcG9uZW50cy9hZC1pbnRlcmFjdGl2ZS52dWUiLCJecGFnZS1tZXRhJCI6IkBkY2xvdWRpby91bmktY2xpLXNoYXJlZC9jb21wb25lbnRzL3BhZ2UtbWV0YS52dWUiLCJebmF2aWdhdGlvbi1iYXIkIjoiQGRjbG91ZGlvL3VuaS1jbGktc2hhcmVkL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1iYXIudnVlIiwiXnVuaS1tYXRjaC1tZWRpYSQiOiJAZGNsb3VkaW8vdW5pLWNsaS1zaGFyZWQvY29tcG9uZW50cy91bmktbWF0Y2gtbWVkaWEudnVlIn0sZ2xvYmFsU3R5bGU6e25hdmlnYXRpb25CYXJUZXh0U3R5bGU6ImJsYWNrIixuYXZpZ2F0aW9uQmFyVGl0bGVUZXh0OiJCUkVFWkUtU0hPUFBJTkciLG5hdmlnYXRpb25CYXJCYWNrZ3JvdW5kQ29sb3I6IiNGRkZGRkYiLGJhY2tncm91bmRDb2xvcjoiI0Y4RjhGOCJ9LHRhYkJhcjp7Y29sb3I6IiMwMDAiLHNlbGVjdGVkQ29sb3I6IiMwMDAiLGJvcmRlclN0eWxlOiIjZmZmZmZmIixiYWNrZ3JvdW5kQ29sb3I6IiNmZmZmZmYiLGxpc3Q6W3twYWdlUGF0aDoicGFnZXMvaW5kZXgvaW5kZXgiLGljb25QYXRoOiJzdGF0aWMvaWNvbi90YWIvNDgucG5nIixzZWxlY3RlZEljb25QYXRoOiJzdGF0aWMvaWNvbi90YWIvNDgucG5nIix0ZXh0OiJIT01FIixyZWREb3Q6ITEsYmFkZ2U6IiJ9LHtwYWdlUGF0aDoicGFnZXMvaW5kZXgvdGFrZSIsaWNvblBhdGg6InN0YXRpYy9pY29uL3RhYi80OS5wbmciLHNlbGVjdGVkSWNvblBhdGg6InN0YXRpYy9pY29uL3RhYi80OS5wbmciLHRleHQ6Ik9SREVSIixyZWREb3Q6ITEsYmFkZ2U6IiJ9LHtwYWdlUGF0aDoicGFnZXMvaW5kZXgvbGlzdCIsaWNvblBhdGg6Ii4vc3RhdGljL2ljb24vdGFiLzUwLnBuZyIsc2VsZWN0ZWRJY29uUGF0aDoiLi9zdGF0aWMvaWNvbi90YWIvNTAucG5nIix0ZXh0OiJUTyBETyBMSVNUIixyZWREb3Q6ITEsYmFkZ2U6IiJ9LHtwYWdlUGF0aDoicGFnZXMvaW5kZXgvbWFpbiIsaWNvblBhdGg6Ii4vc3RhdGljL2ljb24vdGFiLzUxLnBuZyIsc2VsZWN0ZWRJY29uUGF0aDoiLi9zdGF0aWMvaWNvbi90YWIvNTEucG5nIix0ZXh0OiJBQ0NPVU5UIixyZWREb3Q6ITEsYmFkZ2U6IiJ9XX19LHQuX191bmlDb25maWcuY29tcGlsZXJWZXJzaW9uPSIzLjk4Iix0Ll9fdW5pQ29uZmlnLmRhcmttb2RlPSExLHQuX191bmlDb25maWcudGhlbWVDb25maWc9e30sdC5fX3VuaUNvbmZpZy51bmlQbGF0Zm9ybT0iaDUiLHQuX191bmlDb25maWcuYXBwSWQ9Il9fVU5JX18xQ0YwN0ZGIix0Ll9fdW5pQ29uZmlnLmFwcE5hbWU9IkJSRUVaRS1TSE9QUElORyIsdC5fX3VuaUNvbmZpZy5hcHBWZXJzaW9uPSIxLjAuMCIsdC5fX3VuaUNvbmZpZy5hcHBWZXJzaW9uQ29kZT0iMTAwIix0Ll9fdW5pQ29uZmlnLnJvdXRlcj17bW9kZToiaGFzaCIsYmFzZToiL2g1LyJ9LHQuX191bmlDb25maWcucHVibGljUGF0aD0iL2g1LyIsdC5fX3VuaUNvbmZpZ1siYXN5bmMiXT17bG9hZGluZzoiQXN5bmNMb2FkaW5nIixlcnJvcjoiQXN5bmNFcnJvciIsZGVsYXk6MjAwLHRpbWVvdXQ6NmU0fSx0Ll9fdW5pQ29uZmlnLmRlYnVnPSExLHQuX191bmlDb25maWcubmV0d29ya1RpbWVvdXQ9e3JlcXVlc3Q6NmU0LGNvbm5lY3RTb2NrZXQ6NmU0LHVwbG9hZEZpbGU6NmU0LGRvd25sb2FkRmlsZTo2ZTR9LHQuX191bmlDb25maWcuc2RrQ29uZmlncz17bWFwczp7fX0sdC5fX3VuaUNvbmZpZy5xcU1hcEtleT12b2lkIDAsdC5fX3VuaUNvbmZpZy5nb29nbGVNYXBLZXk9dm9pZCAwLHQuX191bmlDb25maWcuYU1hcEtleT12b2lkIDAsdC5fX3VuaUNvbmZpZy5hTWFwU2VjdXJpdHlKc0NvZGU9dm9pZCAwLHQuX191bmlDb25maWcuYU1hcFNlcnZpY2VIb3N0PXZvaWQgMCx0Ll9fdW5pQ29uZmlnLmxvY2FsZT0iIix0Ll9fdW5pQ29uZmlnLmZhbGxiYWNrTG9jYWxlPXZvaWQgMCx0Ll9fdW5pQ29uZmlnLmxvY2FsZXM9ZS5rZXlzKCkucmVkdWNlKChmdW5jdGlvbih0LG4pe3ZhciBhPW4ucmVwbGFjZSgvXC5cLyh1bmktYXBwLik/KC4qKS5qc29uLywiJDIiKSxpPWUobik7cmV0dXJuIE9iamVjdC5hc3NpZ24odFthXXx8KHRbYV09e30pLGkuY29tbW9ufHxpKSx0fSkse30pLHQuX191bmlDb25maWcubnZ1ZT17ImZsZXgtZGlyZWN0aW9uIjoiY29sdW1uIn0sdC5fX3VuaUNvbmZpZy5fX3dlYnBhY2tfY2h1bmtfbG9hZF9fPWEuZSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy1sb2dpbi1sb2dpbiIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtbG9naW4tbG9naW4iKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCI3YmQ2IikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLWluZGV4LWluZGV4IiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haW5+cGFnZXMtaW5kZXgtdGFrZX5wYWdlcy1teS1sb2dpblBhc3N3b3JkfnBhZ2VzLW15fjExYTJlZTJkIiksYS5lKCJwYWdlcy1pbmRleC1pbmRleCIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjM5ZjUiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtaW5kZXgtbWFpbiIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teX4xMWEyZWUyZCIpLGEuZSgicGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teS1wYXltZW50UGFzc3dvcmR+cH44MDZiMzkyZiIpLGEuZSgicGFnZXMtaW5kZXgtbWFpbiIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjNhNjQiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtaW5kZXgtdGFrZSIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teX4xMWEyZWUyZCIpLGEuZSgicGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teS1wYXltZW50UGFzc3dvcmR+cH44MDZiMzkyZiIpLGEuZSgicGFnZXMtaW5kZXgtdGFrZSIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoImI5ZmMiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtaW5kZXgtbGlzdCIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teX4xMWEyZWUyZCIpLGEuZSgicGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teS1wYXltZW50UGFzc3dvcmR+cH44MDZiMzkyZiIpLGEuZSgicGFnZXMtaW5kZXgtbGlzdCIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjM4Y2EiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtcmVjaGFyZ2UtcmVjaGFyZ2UiLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLW15LVNlcnZpY2V+cGFnZXMtcmVjaGFyZ2UtcmVjaGFyZ2UiKSxhLmUoInBhZ2VzLXJlY2hhcmdlLXJlY2hhcmdlIildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiNGFhZiIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy1yZWNoYXJnZS1SZWNoYXJnZVJlY29yZCIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtcmVjaGFyZ2UtUmVjaGFyZ2VSZWNvcmQiKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCJmYjllIikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLXdpdGhkcmF3LXdpdGhkcmF3IiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haW5+cGFnZXMtaW5kZXgtdGFrZX5wYWdlcy1teS1sb2dpblBhc3N3b3JkfnBhZ2VzLW15fjExYTJlZTJkIiksYS5lKCJwYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haW5+cGFnZXMtaW5kZXgtdGFrZX5wYWdlcy1teS1sb2dpblBhc3N3b3JkfnBhZ2VzLW15LXBheW1lbnRQYXNzd29yZH5wfjgwNmIzOTJmIiksYS5lKCJwYWdlcy13aXRoZHJhdy13aXRoZHJhdyIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjU0MTMiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtd2l0aGRyYXctV2l0aGRyYXdhbHNSZWNvcmQiLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLXdpdGhkcmF3LVdpdGhkcmF3YWxzUmVjb3JkIildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiMzE4ZiIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy1teS1hZGRyZXNzIiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy1teS1hZGRyZXNzIildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiZWE1YSIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy13YWxsZXQtQmluZEJhbmsiLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpbn5wYWdlcy1pbmRleC10YWtlfnBhZ2VzLW15LWxvZ2luUGFzc3dvcmR+cGFnZXMtbXl+MTFhMmVlMmQiKSxhLmUoInBhZ2VzLXdhbGxldC1CaW5kQmFuayIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoImYyOTQiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtbXktbG9naW5QYXNzd29yZCIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teX4xMWEyZWUyZCIpLGEuZSgicGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teS1wYXltZW50UGFzc3dvcmR+cH44MDZiMzkyZiIpLGEuZSgicGFnZXMtbXktbG9naW5QYXNzd29yZCIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoImZkYTIiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtbXktcGF5bWVudFBhc3N3b3JkIiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haW5+cGFnZXMtaW5kZXgtdGFrZX5wYWdlcy1teS1sb2dpblBhc3N3b3JkfnBhZ2VzLW15fjExYTJlZTJkIiksYS5lKCJwYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haW5+cGFnZXMtaW5kZXgtdGFrZX5wYWdlcy1teS1sb2dpblBhc3N3b3JkfnBhZ2VzLW15LXBheW1lbnRQYXNzd29yZH5wfjgwNmIzOTJmIiksYS5lKCJwYWdlcy1teS1wYXltZW50UGFzc3dvcmQiKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCIzMDlkIikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLW15LUZ1bmRpbmdEZXRhaWxzIiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy1teS1GdW5kaW5nRGV0YWlscyIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjVhMGUiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtY2hlY2tJbi1jaGVja0luIiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy1jaGVja0luLWNoZWNrSW4iKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCI5MGI1IikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZCIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkIildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiYzNiOCIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy1teS10ZWFtIiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy1teS10ZWFtIildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiZDk1ZiIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy1teS1TZXJ2aWNlIiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy1teS1TZXJ2aWNlfnBhZ2VzLXJlY2hhcmdlLXJlY2hhcmdlIiksYS5lKCJwYWdlcy1teS1TZXJ2aWNlIildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiOTFkNyIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy13YWxsZXQtYmFua0xpc3QiLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLXdhbGxldC1iYW5rTGlzdCIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjc5ODMiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtd2FsbGV0LWJpbkdjYXNoIiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy13YWxsZXQtYmluR2Nhc2giKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCJlZjQ5IikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLXdhbGxldC1iaW5NYXlhIiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy13YWxsZXQtYmluTWF5YSIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjEzOTYiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtbXktU3RhdGlvbk1lc3NhZ2UiLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLW15LVN0YXRpb25NZXNzYWdlfnBhZ2VzLW15LW1haWxib3giKSxhLmUoInBhZ2VzLW15LVN0YXRpb25NZXNzYWdlIildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiMTllYyIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy1teS1BcnRpY2xlQ29udGVudCIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtbXktQXJ0aWNsZUNvbnRlbnQiKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCJjYjk3IikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLW15LW1haWxib3hDb250ZW50IiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy1teS1tYWlsYm94Q29udGVudCIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjBmNDMiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtbXktbWFpbGJveCIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtbXktU3RhdGlvbk1lc3NhZ2V+cGFnZXMtbXktbWFpbGJveCIpLGEuZSgicGFnZXMtbXktbWFpbGJveCIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoImIwNzQiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksdC5fX3VuaVJvdXRlcz1be3BhdGg6Ii8iLGFsaWFzOiIvcGFnZXMvbG9naW4vbG9naW4iLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7aXNRdWl0OiEwLGlzRW50cnk6ITB9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLWxvZ2luLWxvZ2luIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7aWQ6MSxuYW1lOiJwYWdlcy1sb2dpbi1sb2dpbiIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL2xvZ2luL2xvZ2luIixpc1F1aXQ6ITAsaXNFbnRyeTohMCx3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvaW5kZXgvaW5kZXgiLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7aXNRdWl0OiEwLGlzVGFiQmFyOiEwLHRhYkJhckluZGV4OjB9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLWluZGV4LWluZGV4Iix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7aWQ6MixuYW1lOiJwYWdlcy1pbmRleC1pbmRleCIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL2luZGV4L2luZGV4Iixpc1F1aXQ6ITAsaXNUYWJCYXI6ITAsdGFiQmFySW5kZXg6MCx3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvaW5kZXgvbWFpbiIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHtpc1F1aXQ6ITAsaXNUYWJCYXI6ITAsdGFiQmFySW5kZXg6M30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtaW5kZXgtbWFpbiIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e2lkOjMsbmFtZToicGFnZXMtaW5kZXgtbWFpbiIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL2luZGV4L21haW4iLGlzUXVpdDohMCxpc1RhYkJhcjohMCx0YWJCYXJJbmRleDozLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy9pbmRleC90YWtlIixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe2lzUXVpdDohMCxpc1RhYkJhcjohMCx0YWJCYXJJbmRleDoxfSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy1pbmRleC10YWtlIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7aWQ6NCxuYW1lOiJwYWdlcy1pbmRleC10YWtlIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvaW5kZXgvdGFrZSIsaXNRdWl0OiEwLGlzVGFiQmFyOiEwLHRhYkJhckluZGV4OjEsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL2luZGV4L2xpc3QiLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7aXNRdWl0OiEwLGlzVGFiQmFyOiEwLHRhYkJhckluZGV4OjJ9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLWluZGV4LWxpc3QiLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntpZDo1LG5hbWU6InBhZ2VzLWluZGV4LWxpc3QiLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy9pbmRleC9saXN0Iixpc1F1aXQ6ITAsaXNUYWJCYXI6ITAsdGFiQmFySW5kZXg6Mix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvcmVjaGFyZ2UvcmVjaGFyZ2UiLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy1yZWNoYXJnZS1yZWNoYXJnZSIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e25hbWU6InBhZ2VzLXJlY2hhcmdlLXJlY2hhcmdlIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvcmVjaGFyZ2UvcmVjaGFyZ2UiLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy9yZWNoYXJnZS9SZWNoYXJnZVJlY29yZCIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLXJlY2hhcmdlLVJlY2hhcmdlUmVjb3JkIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToicGFnZXMtcmVjaGFyZ2UtUmVjaGFyZ2VSZWNvcmQiLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy9yZWNoYXJnZS9SZWNoYXJnZVJlY29yZCIsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL3dpdGhkcmF3L3dpdGhkcmF3Iixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtd2l0aGRyYXctd2l0aGRyYXciLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy13aXRoZHJhdy13aXRoZHJhdyIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL3dpdGhkcmF3L3dpdGhkcmF3Iix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvd2l0aGRyYXcvV2l0aGRyYXdhbHNSZWNvcmQiLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy13aXRoZHJhdy1XaXRoZHJhd2Fsc1JlY29yZCIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e25hbWU6InBhZ2VzLXdpdGhkcmF3LVdpdGhkcmF3YWxzUmVjb3JkIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvd2l0aGRyYXcvV2l0aGRyYXdhbHNSZWNvcmQiLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy9teS9hZGRyZXNzIixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtbXktYWRkcmVzcyIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e25hbWU6InBhZ2VzLW15LWFkZHJlc3MiLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy9teS9hZGRyZXNzIix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvd2FsbGV0L0JpbmRCYW5rIixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtd2FsbGV0LUJpbmRCYW5rIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToicGFnZXMtd2FsbGV0LUJpbmRCYW5rIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvd2FsbGV0L0JpbmRCYW5rIix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvbXkvbG9naW5QYXNzd29yZCIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLW15LWxvZ2luUGFzc3dvcmQiLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy1teS1sb2dpblBhc3N3b3JkIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvbXkvbG9naW5QYXNzd29yZCIsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL215L3BheW1lbnRQYXNzd29yZCIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLW15LXBheW1lbnRQYXNzd29yZCIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e25hbWU6InBhZ2VzLW15LXBheW1lbnRQYXNzd29yZCIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL215L3BheW1lbnRQYXNzd29yZCIsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL215L0Z1bmRpbmdEZXRhaWxzIixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtbXktRnVuZGluZ0RldGFpbHMiLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy1teS1GdW5kaW5nRGV0YWlscyIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL215L0Z1bmRpbmdEZXRhaWxzIix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvY2hlY2tJbi9jaGVja0luIixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtY2hlY2tJbi1jaGVja0luIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToicGFnZXMtY2hlY2tJbi1jaGVja0luIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvY2hlY2tJbi9jaGVja0luIix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvY2hlY2tJbi9DaGVja0luUmVjb3JkIixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvY2hlY2tJbi9DaGVja0luUmVjb3JkIix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvbXkvdGVhbSIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLW15LXRlYW0iLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy1teS10ZWFtIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvbXkvdGVhbSIsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL215L1NlcnZpY2UiLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy1teS1TZXJ2aWNlIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToicGFnZXMtbXktU2VydmljZSIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL215L1NlcnZpY2UiLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy93YWxsZXQvYmFua0xpc3QiLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy13YWxsZXQtYmFua0xpc3QiLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy13YWxsZXQtYmFua0xpc3QiLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy93YWxsZXQvYmFua0xpc3QiLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy93YWxsZXQvYmluR2Nhc2giLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy13YWxsZXQtYmluR2Nhc2giLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy13YWxsZXQtYmluR2Nhc2giLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy93YWxsZXQvYmluR2Nhc2giLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy93YWxsZXQvYmluTWF5YSIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLXdhbGxldC1iaW5NYXlhIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToicGFnZXMtd2FsbGV0LWJpbk1heWEiLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy93YWxsZXQvYmluTWF5YSIsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL215L1N0YXRpb25NZXNzYWdlIixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtbXktU3RhdGlvbk1lc3NhZ2UiLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy1teS1TdGF0aW9uTWVzc2FnZSIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL215L1N0YXRpb25NZXNzYWdlIix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvbXkvQXJ0aWNsZUNvbnRlbnQiLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy1teS1BcnRpY2xlQ29udGVudCIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e25hbWU6InBhZ2VzLW15LUFydGljbGVDb250ZW50Iixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvbXkvQXJ0aWNsZUNvbnRlbnQiLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy9teS9tYWlsYm94Q29udGVudCIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLW15LW1haWxib3hDb250ZW50Iix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToicGFnZXMtbXktbWFpbGJveENvbnRlbnQiLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy9teS9tYWlsYm94Q29udGVudCIsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL215L21haWxib3giLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy1teS1tYWlsYm94Iix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToicGFnZXMtbXktbWFpbGJveCIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL215L21haWxib3giLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9jaG9vc2UtbG9jYXRpb24iLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6e25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn19LFt0KCJzeXN0ZW0tY2hvb3NlLWxvY2F0aW9uIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToiY2hvb3NlLWxvY2F0aW9uIixwYWdlUGF0aDoiL2Nob29zZS1sb2NhdGlvbiJ9fSx7cGF0aDoiL29wZW4tbG9jYXRpb24iLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6e25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn19LFt0KCJzeXN0ZW0tb3Blbi1sb2NhdGlvbiIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e25hbWU6Im9wZW4tbG9jYXRpb24iLHBhZ2VQYXRoOiIvb3Blbi1sb2NhdGlvbiJ9fV0sdC5VbmlBcHAmJm5ldyB0LlVuaUFwcH0pLmNhbGwodGhpcyxhKCJjOGJhIikpfSwiODczZiI6ZnVuY3Rpb24odCxuLGEpe3ZhciBpPWEoImYyMzAiKTtpLl9fZXNNb2R1bGUmJihpPWkuZGVmYXVsdCksInN0cmluZyI9PT10eXBlb2YgaSYmKGk9W1t0LmksaSwiIl1dKSxpLmxvY2FscyYmKHQuZXhwb3J0cz1pLmxvY2Fscyk7dmFyIGU9YSgiNGYwNiIpLmRlZmF1bHQ7ZSgiODBiMjZjMDIiLGksITAse3NvdXJjZU1hcDohMSxzaGFkb3dNb2RlOiExfSl9LDkwMDE6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIik7dmFyIGk9YSgiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDA7dmFyIGU9aShhKCI1M2NhIikpO2EoImQzYjciKSxhKCJjYWFkIik7dmFyIHI9ZnVuY3Rpb24gdChuKXtpZihbbnVsbCx2b2lkIDAsTmFOLCExXS5pbmNsdWRlcyhuKSlyZXR1cm4gbjtpZigib2JqZWN0IiE9PSgwLGUuZGVmYXVsdCkobikmJiJmdW5jdGlvbiIhPT10eXBlb2YgbilyZXR1cm4gbjt2YXIgYT1mdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfShuKT9bXTp7fTtmb3IodmFyIGkgaW4gbiluLmhhc093blByb3BlcnR5KGkpJiYoYVtpXT0ib2JqZWN0Ij09PSgwLGUuZGVmYXVsdCkobltpXSk/dChuW2ldKTpuW2ldKTtyZXR1cm4gYX07bi5kZWZhdWx0PXJ9LDkyNzI6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDAsYSgiNGQ5MCIpLGEoImQzYjciKSxhKCJkOWUyIiksYSgiZDQwMSIpLGEoImZiNmEiKSxhKCJhOWUzIiksYSgiMjVmMCIpLGEoImFjMWYiKSxhKCI0ZDYzIiksYSgiYzYwNyIpLGEoIjJjM2UiKSxhKCI1MzE5IiksU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydHx8KFN0cmluZy5wcm90b3R5cGUucGFkU3RhcnQ9ZnVuY3Rpb24odCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiIgIjtpZigiW29iamVjdCBTdHJpbmddIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJmaWxsU3RyaW5nIG11c3QgYmUgU3RyaW5nIik7dmFyIGE9dGhpcztpZihhLmxlbmd0aD49dClyZXR1cm4gU3RyaW5nKGEpO3ZhciBpPXQtYS5sZW5ndGgsZT1NYXRoLmNlaWwoaS9uLmxlbmd0aCk7d2hpbGUoZT4+PTEpbis9biwxPT09ZSYmKG4rPW4pO3JldHVybiBuLnNsaWNlKDAsaSkrYX0pO3ZhciBpPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGwsbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06Inl5eXktbW0tZGQiO3R8fCh0PU51bWJlcihuZXcgRGF0ZSkpLDEwPT10LnRvU3RyaW5nKCkubGVuZ3RoJiYodCo9MWUzKTt2YXIgYSxpPW5ldyBEYXRlKHQpLGU9eyJ5KyI6aS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCksIm0rIjooaS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCksImQrIjppLmdldERhdGUoKS50b1N0cmluZygpLCJoKyI6aS5nZXRIb3VycygpLnRvU3RyaW5nKCksIk0rIjppLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLCJzKyI6aS5nZXRTZWNvbmRzKCkudG9TdHJpbmcoKX07Zm9yKHZhciByIGluIGUpYT1uZXcgUmVnRXhwKCIoIityKyIpIikuZXhlYyhuKSxhJiYobj1uLnJlcGxhY2UoYVsxXSwxPT1hWzFdLmxlbmd0aD9lW3JdOmVbcl0ucGFkU3RhcnQoYVsxXS5sZW5ndGgsIjAiKSkpO3JldHVybiBufTtuLmRlZmF1bHQ9aX0sIjkzN2QiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLm9zPWZ1bmN0aW9uKCl7cmV0dXJuIHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLnBsYXRmb3JtfSxuLnN5cz1mdW5jdGlvbigpe3JldHVybiB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKX19LCI5NTRhIjpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKTt2YXIgaT1hKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMDt2YXIgZT1pKGEoIjUzY2EiKSk7ZnVuY3Rpb24gcih0KXtzd2l0Y2goKDAsZS5kZWZhdWx0KSh0KSl7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiEwO2Nhc2Uic3RyaW5nIjppZigwPT10LnJlcGxhY2UoLyheWyBcdFxuXHJdKil8KFsgXHRcblxyXSokKS9nLCIiKS5sZW5ndGgpcmV0dXJuITA7YnJlYWs7Y2FzZSJib29sZWFuIjppZighdClyZXR1cm4hMDticmVhaztjYXNlIm51bWJlciI6aWYoMD09PXR8fGlzTmFOKHQpKXJldHVybiEwO2JyZWFrO2Nhc2Uib2JqZWN0IjppZihudWxsPT09dHx8MD09PXQubGVuZ3RoKXJldHVybiEwO2Zvcih2YXIgbiBpbiB0KXJldHVybiExO3JldHVybiEwfXJldHVybiExfWEoImFjMWYiKSxhKCIwMGI0IiksYSgiZDQwMSIpLGEoImQzYjciKSxhKCIyNWYwIiksYSgiYzk3NSIpLGEoIjUzMTkiKSxhKCI0ZDYzIiksYSgiYzYwNyIpLGEoIjJjM2UiKTt2YXIgbz17ZW1haWw6ZnVuY3Rpb24odCl7cmV0dXJuL1tcdyEjJCUmJyorLz0/Xl9ge3x9fi1dKyg/OlwuW1x3ISMkJSYnKisvPT9eX2B7fH1+LV0rKSpAKD86W1x3XSg/Oltcdy1dKltcd10pP1wuKStbXHddKD86W1x3LV0qW1x3XSk/Ly50ZXN0KHQpfSxtb2JpbGU6ZnVuY3Rpb24odCl7cmV0dXJuL14xWzMtOV1cZHs5fSQvLnRlc3QodCl9LHVybDpmdW5jdGlvbih0KXtyZXR1cm4vaHR0cChzKT86XC9cLyhbXHctXStcLikrW1x3LV0rKFwvW1x3LS5cLz8lJj1dKik/Ly50ZXN0KHQpfSxkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiEvSW52YWxpZHxOYU4vLnRlc3QobmV3IERhdGUodCkudG9TdHJpbmcoKSl9LGRhdGVJU086ZnVuY3Rpb24odCl7cmV0dXJuL15cZHs0fVtcL1wtXSgwP1sxLTldfDFbMDEyXSlbXC9cLV0oMD9bMS05XXxbMTJdWzAtOV18M1swMV0pJC8udGVzdCh0KX0sbnVtYmVyOmZ1bmN0aW9uKHQpe3JldHVybi9eW1wrLV0/KFxkK1wuP1xkKnxcLlxkK3xcZFwuXGQrZVwrXGQrKSQvLnRlc3QodCl9LGRpZ2l0czpmdW5jdGlvbih0KXtyZXR1cm4vXlxkKyQvLnRlc3QodCl9LGlkQ2FyZDpmdW5jdGlvbih0KXtyZXR1cm4vXlsxLTldXGR7NX1bMS05XVxkezN9KCgwXGQpfCgxWzAtMl0pKSgoWzB8MXwyXVxkKXwzWzAtMV0pXGR7M30oWzAtOV18WCkkLy50ZXN0KHQpfSxjYXJObzpmdW5jdGlvbih0KXtyZXR1cm4gNz09PXQubGVuZ3RoPy9eW+S6rOa0peayqua4neWGgOixq+S6kei+vem7kea5mOealumygeaWsOiLj+a1mei1o+mEguahgueUmOaZi+iSmemZleWQiemXvei0teeypOmdkuiXj+W3neWugeeQvOS9v+mihkEtWl17MX1bQS1aXXsxfVtBLUhKLU5QLVowLTldezR9W0EtSEotTlAtWjAtOeaMguWtpuitpua4r+a+s117MX0kLy50ZXN0KHQpOjg9PT10Lmxlbmd0aCYmL15b5Lqs5rSl5rKq5rid5YaA6LGr5LqR6L696buR5rmY55qW6bKB5paw6IuP5rWZ6LWj6YSC5qGC55SY5pmL6JKZ6ZmV5ZCJ6Ze96LS157Kk6Z2S6JeP5bed5a6B55C85L2/6aKGQS1aXXsxfVtBLVpdezF9KChbMC05XXs1fVtERl0kKXwoW0RGXVtBLUhKLU5QLVowLTldWzAtOV17NH0kKSkvLnRlc3QodCl9LGFtb3VudDpmdW5jdGlvbih0KXtyZXR1cm4vXlsxLTldXGQqKCxcZHszfSkqKFwuXGR7MSwyfSk/JHxeMFwuXGR7MSwyfSQvLnRlc3QodCl9LGNoaW5lc2U6ZnVuY3Rpb24odCl7cmV0dXJuL15bXHU0ZTAwLVx1OWZhNV0rJC9naS50ZXN0KHQpfSxsZXR0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuL15bYS16QS1aXSokLy50ZXN0KHQpfSxlbk9yTnVtOmZ1bmN0aW9uKHQpe3JldHVybi9eWzAtOWEtekEtWl0qJC9nLnRlc3QodCl9LGNvbnRhaW5zOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQuaW5kZXhPZihuKT49MH0scmFuZ2U6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdD49blswXSYmdDw9blsxXX0scmFuZ2VMZW5ndGg6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5sZW5ndGg+PW5bMF0mJnQubGVuZ3RoPD1uWzFdfSxlbXB0eTpyLGlzRW1wdHk6cixqc29uU3RyaW5nOmZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl0cnl7dmFyIG49SlNPTi5wYXJzZSh0KTtyZXR1cm4hKCJvYmplY3QiIT0oMCxlLmRlZmF1bHQpKG4pfHwhbil9Y2F0Y2goYSl7cmV0dXJuITF9cmV0dXJuITF9LGxhbmRsaW5lOmZ1bmN0aW9uKHQpe3JldHVybi9eXGR7Myw0fS1cZHs3LDh9KC1cZHszLDR9KT8kLy50ZXN0KHQpfSxvYmplY3Q6ZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9LGFycmF5OmZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PT10eXBlb2YgQXJyYXkuaXNBcnJheT9BcnJheS5pc0FycmF5KHQpOiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9LGNvZGU6ZnVuY3Rpb24odCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjY7cmV0dXJuIG5ldyBSZWdFeHAoIl5cXGR7Ii5jb25jYXQobiwifSQiKSkudGVzdCh0KX19O24uZGVmYXVsdD1vfSw5OTAwOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7dmFyIGk9YSgiNGVhNCIpLmRlZmF1bHQ7YSgiZDNiNyIpLGEoIjE1OWIiKSxhKCIyNmU5IiksYSgiYWMxZiIpLGEoIjUzMTkiKTt2YXIgZT1pKGEoIjU1MzAiKSk7YSgiZTI2MCIpLGEoImU2Y2YiKSxhKCJjY2E2IiksYSgiYTc5ZCIpLGEoIjdhMTkiKSxhKCIwNmI5Iik7dmFyIHI9aShhKCJlMTQzIikpLG89aShhKCIwMzJlIikpLHA9aShhKCJkYjdmIikpLGQ9aShhKCJhOTI1IikpLGc9aShhKCI0ODhmIikpLG09aShhKCJkMjIyIikpLHU9aShhKCIxOWJkIikpO3IuZGVmYXVsdC51c2UocC5kZWZhdWx0KSxyLmRlZmF1bHQuY29uZmlnLnByb2R1Y3Rpb25UaXA9ITEsci5kZWZhdWx0LnVzZShkLmRlZmF1bHQpO3ZhciBzPW5ldyBkLmRlZmF1bHQoe2xvY2FsZToiZW4iLG1lc3NhZ2VzOntlbjpnLmRlZmF1bHQsY246bS5kZWZhdWx0fX0pO3IuZGVmYXVsdC5wcm90b3R5cGUuanVtcD1mdW5jdGlvbih0KXt1bmkubmF2aWdhdGVUbyh7dXJsOnR9KX0sci5kZWZhdWx0LnByb3RvdHlwZS5qdW1wdGFiQmFyPWZ1bmN0aW9uKHQpe3VuaS5zd2l0Y2hUYWIoe3VybDp0fSl9LHIuZGVmYXVsdC5wcm90b3R5cGUuZ2V0YmFjaz1mdW5jdGlvbigpe3VuaS5uYXZpZ2F0ZUJhY2soe2RlbHRhOjF9KX0sci5kZWZhdWx0LnByb3RvdHlwZS5jb252ZXJ0PWZ1bmN0aW9uKHQpe3ZhciBuPSh0KyIiKS5zcGxpdCgiLiIpLGE9blswXS5zcGxpdCgiIiksaT1uWzFdfHwiIixlPSIiO3JldHVybiBhLnJldmVyc2UoKS5mb3JFYWNoKChmdW5jdGlvbih0LG4pe2U9MCE9PW4mJm4lMz09PTA/dCsiLCIrZTp0K2V9KSksZSsoaT8iLiIraToiIil9LHIuZGVmYXVsdC5wcm90b3R5cGUuaW50ZXJjZXB0PWZ1bmN0aW9uKHQpe3ZhciBuPXQucmVwbGFjZSgvPFwvP1tePl0qPi9nLCIiKSxhPW4ucmVwbGFjZSgvW3xdKlxuLywiIiksaT0oYS5yZXBsYWNlKC8mbnBzcDsvZ2ksIiIpLG4uc3Vic3RyKDAsMzApKyIuLi4iKTtyZXR1cm4gaX0sci5kZWZhdWx0LnByb3RvdHlwZS5faTE4bj1zLHIuZGVmYXVsdC5wcm90b3R5cGUuJGh0dHA9dS5kZWZhdWx0LG8uZGVmYXVsdC5tcFR5cGU9ImFwcCI7dmFyIGM9bmV3IHIuZGVmYXVsdCgoMCxlLmRlZmF1bHQpKHtpMThuOnMsaHR0cDp1LmRlZmF1bHR9LG8uZGVmYXVsdCkpO2MuJG1vdW50KCl9LDk5NTQ6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDA7dmFyIGk9ZnVuY3Rpb24odCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE1MDA7dW5pLnNob3dUb2FzdCh7dGl0bGU6dCxpY29uOiJub25lIixkdXJhdGlvbjpufSl9O24uZGVmYXVsdD1pfSxhMzY5OmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpO3ZhciBpPWEoIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwLGEoImE5ZTMiKSxhKCJkNDAxIiksYSgiZDNiNyIpLGEoIjI1ZjAiKSxhKCJlMjVlIik7dmFyIGU9aShhKCI5MjcyIikpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGwsbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06Inl5eXktbW0tZGQiO3R8fCh0PU51bWJlcihuZXcgRGF0ZSkpLDEwPT10LnRvU3RyaW5nKCkubGVuZ3RoJiYodCo9MWUzKTt2YXIgYT0rbmV3IERhdGUoTnVtYmVyKHQpKSxpPShOdW1iZXIobmV3IERhdGUpLWEpLzFlMyxyPSIiO3N3aXRjaCghMCl7Y2FzZSBpPDMwMDpyPSLliJrliJoiO2JyZWFrO2Nhc2UgaT49MzAwJiZpPDM2MDA6cj1wYXJzZUludChpLzYwKSsi5YiG6ZKf5YmNIjticmVhaztjYXNlIGk+PTM2MDAmJmk8ODY0MDA6cj1wYXJzZUludChpLzM2MDApKyLlsI/ml7bliY0iO2JyZWFrO2Nhc2UgaT49ODY0MDAmJmk8MjU5MmUzOnI9cGFyc2VJbnQoaS84NjQwMCkrIuWkqeWJjSI7YnJlYWs7ZGVmYXVsdDpyPSExPT09bj9pPj0yNTkyZTMmJmk8MzE1MzZlMz9wYXJzZUludChpLzI1OTJlMykrIuS4quaciOWJjSI6cGFyc2VJbnQoaS8zMTUzNmUzKSsi5bm05YmNIjooMCxlLmRlZmF1bHQpKGEsbil9cmV0dXJuIHJ9O24uZGVmYXVsdD1yfSxhNDBhOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSh0KXt2YXIgbj0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdLGE9L14jKFswLTlhLWZBLWZdezN9fFswLTlhLWZBLWZdezZ9KSQvO2lmKHQ9dC50b0xvd2VyQ2FzZSgpLHQmJmEudGVzdCh0KSl7aWYoND09PXQubGVuZ3RoKXtmb3IodmFyIGk9IiMiLGU9MTtlPDQ7ZSs9MSlpKz10LnNsaWNlKGUsZSsxKS5jb25jYXQodC5zbGljZShlLGUrMSkpO3Q9aX1mb3IodmFyIHI9W10sbz0xO288NztvKz0yKXIucHVzaChwYXJzZUludCgiMHgiK3Quc2xpY2UobyxvKzIpKSk7cmV0dXJuIG4/InJnYigiLmNvbmNhdChyWzBdLCIsIikuY29uY2F0KHJbMV0sIiwiKS5jb25jYXQoclsyXSwiKSIpOnJ9aWYoL14ocmdifFJHQikvLnRlc3QodCkpe3ZhciBwPXQucmVwbGFjZSgvKD86XCh8XCl8cmdifFJHQikqL2csIiIpLnNwbGl0KCIsIik7cmV0dXJuIHAubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gTnVtYmVyKHQpfSkpfXJldHVybiB0fWZ1bmN0aW9uIGUodCl7dmFyIG49dDtpZigvXihyZ2J8UkdCKS8udGVzdChuKSl7Zm9yKHZhciBhPW4ucmVwbGFjZSgvKD86XCh8XCl8cmdifFJHQikqL2csIiIpLnNwbGl0KCIsIiksaT0iIyIsZT0wO2U8YS5sZW5ndGg7ZSsrKXt2YXIgcj1OdW1iZXIoYVtlXSkudG9TdHJpbmcoMTYpO3I9MT09U3RyaW5nKHIpLmxlbmd0aD8iMCIrcjpyLCIwIj09PXImJihyKz1yKSxpKz1yfXJldHVybiA3IT09aS5sZW5ndGgmJihpPW4pLGl9aWYoIS9eIyhbMC05YS1mQS1mXXszfXxbMC05YS1mQS1mXXs2fSkkLy50ZXN0KG4pKXJldHVybiBuO3ZhciBvPW4ucmVwbGFjZSgvIy8sIiIpLnNwbGl0KCIiKTtpZig2PT09by5sZW5ndGgpcmV0dXJuIG47aWYoMz09PW8ubGVuZ3RoKXtmb3IodmFyIHA9IiMiLGQ9MDtkPG8ubGVuZ3RoO2QrPTEpcCs9b1tkXStvW2RdO3JldHVybiBwfX1hKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDAsYSgiMTRkOSIpLGEoImFjMWYiKSxhKCIwMGI0IiksYSgiOTlhZiIpLGEoImZiNmEiKSxhKCJlMjVlIiksYSgiNTMxOSIpLGEoImQ4MWQiKSxhKCJhOWUzIiksYSgiZDQwMSIpLGEoImQzYjciKSxhKCIyNWYwIik7dmFyIHI9e2NvbG9yR3JhZGllbnQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiJyZ2IoMCwgMCwgMCkiLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJyZ2IoMjU1LCAyNTUsIDI1NSkiLGE9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjEwLHI9aSh0LCExKSxvPXJbMF0scD1yWzFdLGQ9clsyXSxnPWkobiwhMSksbT1nWzBdLHU9Z1sxXSxzPWdbMl0sYz0obS1vKS9hLGw9KHUtcCkvYSxmPShzLWQpL2EsaD1bXSxiPTA7YjxhO2IrKyl7dmFyIHk9ZSgicmdiKCIrTWF0aC5yb3VuZChjKmIrbykrIiwiK01hdGgucm91bmQobCpiK3ApKyIsIitNYXRoLnJvdW5kKGYqYitkKSsiKSIpO2gucHVzaCh5KX1yZXR1cm4gaH0saGV4VG9SZ2I6aSxyZ2JUb0hleDplLGNvbG9yVG9SZ2JhOmZ1bmN0aW9uKHQpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTouMzt0PWUodCk7dmFyIGE9L14jKFswLTlhLWZBLWZdezN9fFswLTlhLWZBLWZdezZ9KSQvLGk9dC50b0xvd2VyQ2FzZSgpO2lmKGkmJmEudGVzdChpKSl7aWYoND09PWkubGVuZ3RoKXtmb3IodmFyIHI9IiMiLG89MTtvPDQ7bys9MSlyKz1pLnNsaWNlKG8sbysxKS5jb25jYXQoaS5zbGljZShvLG8rMSkpO2k9cn1mb3IodmFyIHA9W10sZD0xO2Q8NztkKz0yKXAucHVzaChwYXJzZUludCgiMHgiK2kuc2xpY2UoZCxkKzIpKSk7cmV0dXJuInJnYmEoIitwLmpvaW4oIiwiKSsiLCIrbisiKSJ9cmV0dXJuIGl9fTtuLmRlZmF1bHQ9cn0sYTQ5ODpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMDtuLmRlZmF1bHQ9e3RvYXN0OjEwMDkwLG5vTmV0d29yazoxMDA4MCxwb3B1cDoxMDA3NSxtYXNrOjEwMDcwLG5hdmJhcjo5ODAsdG9wVGlwczo5NzUsc3RpY2t5Ojk3MCxpbmRleExpc3RTdGlja3k6OTY1fX0sYWU2NTpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EuZChuLCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxhLmQobiwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGV9KSksYS5kKG4sImEiLChmdW5jdGlvbigpe30pKTt2YXIgaT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuJGNyZWF0ZUVsZW1lbnQsbj10aGlzLl9zZWxmLl9jfHx0O3JldHVybiBuKCJBcHAiLHthdHRyczp7a2VlcEFsaXZlSW5jbHVkZTp0aGlzLmtlZXBBbGl2ZUluY2x1ZGV9fSl9LGU9W119LGIyMmQ6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDA7dmFyIGk9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MzIsbj0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdLGE9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwsaT0iMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiLnNwbGl0KCIiKSxlPVtdO2lmKGE9YXx8aS5sZW5ndGgsdClmb3IodmFyIHI9MDtyPHQ7cisrKWVbcl09aVswfE1hdGgucmFuZG9tKCkqYV07ZWxzZXt2YXIgbztlWzhdPWVbMTNdPWVbMThdPWVbMjNdPSItIixlWzE0XT0iNCI7Zm9yKHZhciBwPTA7cDwzNjtwKyspZVtwXXx8KG89MHwxNipNYXRoLnJhbmRvbSgpLGVbcF09aVsxOT09cD8zJm98ODpvXSl9cmV0dXJuIG4/KGUuc2hpZnQoKSwidSIrZS5qb2luKCIiKSk6ZS5qb2luKCIiKX07bi5kZWZhdWx0PWl9LGI4ZTQ6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDAsYSgiYWMxZiIpLGEoIjUzMTkiKTt2YXIgaT1mdW5jdGlvbih0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ImJvdGgiO3JldHVybiJib3RoIj09bj90LnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKToibGVmdCI9PW4/dC5yZXBsYWNlKC9eXHMqLywiIik6InJpZ2h0Ij09bj90LnJlcGxhY2UoLyhccyokKS9nLCIiKToiYWxsIj09bj90LnJlcGxhY2UoL1xzKy9nLCIiKTp0fTtuLmRlZmF1bHQ9aX0sYzJkYTpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMDt2YXIgaT1udWxsO3ZhciBlPWZ1bmN0aW9uKHQpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo1MDAsYT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2lmKG51bGwhPT1pJiZjbGVhclRpbWVvdXQoaSksYSl7dmFyIGU9IWk7aT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2k9bnVsbH0pLG4pLGUmJiJmdW5jdGlvbiI9PT10eXBlb2YgdCYmdCgpfWVsc2UgaT1zZXRUaW1lb3V0KChmdW5jdGlvbigpeyJmdW5jdGlvbiI9PT10eXBlb2YgdCYmdCgpfSksbil9O24uZGVmYXVsdD1lfSxjZjg1OmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwLGEoImM5NzUiKTt2YXIgaT1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToic3VjY2VzcyIsbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdOy0xPT1bInByaW1hcnkiLCJpbmZvIiwiZXJyb3IiLCJ3YXJuaW5nIiwic3VjY2VzcyJdLmluZGV4T2YodCkmJih0PSJzdWNjZXNzIik7dmFyIGE9IiI7c3dpdGNoKHQpe2Nhc2UicHJpbWFyeSI6YT0iaW5mby1jaXJjbGUiO2JyZWFrO2Nhc2UiaW5mbyI6YT0iaW5mby1jaXJjbGUiO2JyZWFrO2Nhc2UiZXJyb3IiOmE9ImNsb3NlLWNpcmNsZSI7YnJlYWs7Y2FzZSJ3YXJuaW5nIjphPSJlcnJvci1jaXJjbGUiO2JyZWFrO2Nhc2Uic3VjY2VzcyI6YT0iY2hlY2ttYXJrLWNpcmNsZSI7YnJlYWs7ZGVmYXVsdDphPSJjaGVja21hcmstY2lyY2xlIn1yZXR1cm4gbiYmKGErPSItZmlsbCIpLGF9O24uZGVmYXVsdD1pfSxkMjIyOmZ1bmN0aW9uKHQsbixhKXt2YXIgaSxlPWEoIjk1MjMiKS5kZWZhdWx0O3QuZXhwb3J0cz17bWVzc2FnZTooaT17cGxhdGZvcm1OYW1lOiJCUkVFWkUtU0hPUFBJTkciLGN1cnJlbmN5QWJicmV2aWF0aW9uOiJQSFAiLGN1cnJlbmN5U3ltYm9sOiLigrEiLFdpdGhkcmF3VHlwZToiR2Nhc2giLGhvbWU6IummlumhtSIsbGlzdDoi5YiX6KGoIix0YWtlOiLku7vliqEiLG15OiLmiJHlvpciLFJlY2hhcmdlOiLlhYXlgLwiLFdpdGhkcmF3OiLmj5DnjrAiLENvbmZpcm06IuehruiupCIsQ2FuY2VsOiLlj5bmtogiLEludml0YXRpb25Db2RlOiLpgoDor7fnoIEiLEFjY291bnRSZWNoYXJnZToi6LSm5oi35YWF5YC8IixSZWNvcmQ6IuiusOW9lSIsY29weVN1Y2Nlc3M6IuWkjeWItuaIkOWKnyIsY29weUVycm9yOiLlpI3liLblpLHotKUiLEFkZFRvOiLmt7vliqAiLHBsZWFzZUNvbmZpcm06Iuivt+ehruiupCIsQ29uZmlybXRoZUNoYW5nZXM6IuehruiupOS/ruaUuSIsZW1wdHk6IuaaguaXoOaVsOaNriIsQW5ub3VuY2VtZW50OiLlhazlkYoiLGNvcHk6IuWkjeWItiIsYWNjb3VudExvZ2luOiLotKblj7fnmbvpmYYiLFNpZ25VcE5vdzoi56uL5Y2z5rOo5YaMIixhY2NvdW50OiLor7fovpPlhaXotKblj7ciLHBhc3N3b3JkOiLor7fovpPlhaXlr4bnoIEiLENvbmZpcm1QYXNzd29yZDoi6K+35YaN5qyh6L6T5YWl5a+G56CB56Gu6K6kIixJbnZpdGF0aW9uQ29kZUVycm9yOiLor7fovpPlhaXpgoDor7fnoIEiLEZvcmdldEN1c3RvbWVyU2VydmljZToi5b+Y6K6w5a+G56CBLOiBlOezu+WuouacjSIsUXVlc3Rpb25DdXN0b21lclNlcnZpY2U6IumBh+WIsOmXrumimCzogZTns7vlrqLmnI0iLGxvZ2luSW1tZWRpYXRlbHk6Iueri+WNs+eZu+W9lSIsbG9nZ2luZ0luOiLmraPlnKjnmbvpmYYiLHJlZ2lzdGVyOiLnq4vljbPms6jlhowiLHJlZ2lzdGVyaW5nOiLmraPlnKjms6jlhowiLHJlZ2lzdHJhdGlvblN1Y2Nlc3M6IuazqOWGjOaIkOWKnyIsbG9naW5TdWNjZXNzOiLnmbvlvZXmiJDlip8iLGJhbGFuY2VXaXRoZHJhd2FsOiLkvZnpop3mj5DnjrAiLGFib3V0VXM6IuWFs+S6juaIkeS7rCIsb25saW5lU2VydmljZToi5Zyo57q/5a6i5pyNIixDbGlja1RvU2lnbkluOiLngrnlh7vnrb7liLAiLHNpZ25JblJld2FyZDoi562+5Yiw6aKG5Y+W546w6YeR5aWW5YqxIixzaWduSW5Ob3c6IuetvuWIsCIsQ29tbWlzc2lvbkRpc3BsYXk6IuS9o+mHkeWxleekuiIsY2VsZWJyYXRlOiLluobnpZ0iLFVzZXI6IueUqOaItyIsdG9FYXJuOiLotZrlj5YiLFBhcnRuZXI6IuWQiOS9nOS8meS8tCIsQ29tcGxldGVPcmRlcjoi5a6M5oiQ6K6i5Y2VIixSZW1haW5pbmdUYXNrczoi5Ymp5L2Z5Lu75YqhIixtZW1iZXJzaGlwTGV2ZWw6IuS8muWRmOetiee6pyIsQ29tbWlzc2lvblN0YXRpc3RpY3M6IuS9o+mHkee7n+iuoSIsU3RhcnRXb3JraW5nOiLlvIDlp4vlt6XkvZwiLENhdGVnb3JpZXM6IuWVhuWTgeWIhuexuyIsbWF0Y2hpbmc6Iuato+WcqOS4uuaCqOWMuemFjeiuouWNlSIsZ2V0YW5PcmRlcjoi5oGt5Zac5oKo77yB6I635b6X5paw55qE5bel5L2c77yM6K+36YCJ5oup5LiA5Liq5ZWG5ZOB5Y+K5pe25o+Q5Lqk6K6i5Y2V77yM5a6M5oiQ5bel5L2cIixvcmRlclRpbWU6IuiuouWNleaXtumXtCIsdW5pdFByaWNlOiLljZXku7ciLHJ1bGU6IuWFsSIsTnVtYmVyb2ZQcm9kdWN0czoi5Lu25ZWG5ZOBIixjb21taXNzaW9uQW1vdW50OiLkvaPph5Hph5Hpop0iLFRvdGFsTWVyY2hhbmRpc2U6IuWVhuWTgeWQiOiuoSIsY29weUxpbms6IuWkjeWItumTvuaOpSIsU3VibWl0T3JkZXI6IuaPkOS6pOiuouWNlSIsc3VibWl0dGluZzoi5o+Q5Lqk5LitIixIaW50OiLmj5DnpLoiLHRvQWRkOiLljrvmt7vliqAiLGFkZEFkZHJlc3NFcnJvcjoi5pqC5pyq5re75Yqg5pS26LSn5Zyw5Z2AIixDb25maXJtU2VydmljZToi54K55Ye756Gu6K6k77yM56uL5Y2z5re75Yqg77yM5aaC5p6c6YGH5Yiw6Zeu6aKY77yM6K+35ZKo6K+i5a6i5pyN44CCIixiYWxhbmNlRXJyb3I6IuaCqOeahOi0puaIt+S9memineS4jei2s++8jOi/mOW3riIsYmFsYW5jZVNlcnZpY2U6IueCueWHu+ehruiupO+8jOeri+WNs+WFheWAvO+8jOWmguaenOmBh+WIsOmXrumimO+8jOivt+WSqOivouWuouacjeOAgiIsYWxsT3JkZXJzOiLlhajpg6giLGNvbXBsZXRlZE9yZGVyOiLlt7LlrozmiJAiLEluY29tcGxldGVPcmRlcnM6IuacquWujOaIkCIsQ2FuY2VsT3JkZXJzOiLorqLljZXlj5bmtogiLE1lbWJlckJhbGFuY2U6IuS8muWRmOS9meminSIsbXlTZXJ2aWNlOiLmiJHnmoTmnI3liqEiLEZ1bmRpbmdEZXRhaWxzOiLotYTph5HmmI7nu4YiLGludml0ZUZyaWVuZHM6IumCgOivt+WlveWPiyIsYWRkQWRkcmVzczoi5re75Yqg5Zyw5Z2AIixNYW51YWxDdXN0b21lclNlcnZpY2U6IuS6uuW3peWuouacjSIsbXlUb29sczoi5oiR55qE5bel5YW3Iixsb2dpblBhc3N3b3JkOiLnmbvpmYblr4bnoIEiLHBheW1lbnRQYXNzd29yZDoi5pSv5LuY5a+G56CBIixSZWNoYXJnZVJlY29yZDoi5YWF5YC86K6w5b2VIixXaXRoZHJhd2Fsc1JlY29yZDoi5o+Q546w6K6w5b2VIixteVRlYW06IuaIkeeahOWboumYnyIsQmluZEJhbmtDYXJkOiLnu5Hlrprpk7booYzljaEiLGNsZWFyQ2FjaGU6Iua4hemZpOe8k+WtmCIsQ29uZmlybUNsZWFybXlUZWFtOiLnoa7orqTmuIXmpZoiLENvbmZpcm1DbGVhclJlbWluZGVyOiLmuIXnkIbnvJPlrZjlsIbpgIDlh7rnmbvlvZUiLENvbmZpcm1DbGVhcmluZ0luZm9ybWF0aW9uOiLml6DpnIDmuIXnkIbor7fngrnlh7vngbDoibLljLrln5/lhbPpl63nqpflj6MiLHNpZ25PdXQ6IuaOqOWHuueZu+W9lSIsY2FyZEhvbGRlcjoi5Y2h5YyFIixDb3B5TGluazoi5aSN5Yi26ZO+5o6lIixtYWlsYm94OiLmiJHnmoTkv6HnrrEiLEFjY291bnRCYWxhbmNlOiLotKbmiLfkvZnpop0iLFJlY2hhcmdlQW1vdW50OiLlhYXlgLzph5Hpop0iLFJlY2hhcmdlQW1vdW50RXJyb3I6Iuivt+i+k+WFpeWFheWAvOmHkeminSIscGF5VHllOiLmlK/ku5jmlrnlvI8iLHBheVR5ZUVycm9yOiLor7fpgInmi6nmlK/ku5jmlrnlvI8iLEFjY291bnRzUmVjZWl2YWJsZToi5pS25qy+6LSm5oi35L+h5oGvIixyZWNoYXJnZU1zZ1RpdDoi5YWF5YC86aG755+lIixyZWNoYXJnZU1zZzoi6L2s6LSm5ZCO6K+35bCG6L2s6LSm5Zu+5Y+R6YCB57uZ5a+85biIIixDYXJkaG9sZGVyOiLmjIHljaHkuroiLENhcmRob2xkZXJFcnJvcjoi6K+36L6T5YWl5oyB5Y2h5Lq65aeT5ZCNIixCYW5rQ2FyZE51bWJlcjoi6ZO26KGM5Y2h5Y+3IixCYW5rQ2FyZE51bWJlckVycm9yOiLor7fovpPlhaXpk7booYzljaHlj7ciLEJhbmtOYW1lOiLpk7booYzlkI3np7AiLEJhbmtOYW1lRXJyb3I6Iuivt+i+k+WFpemTtuihjOWQjeensCIsU2hpcHBpbmdBZGRyZXNzOiLmlLbotKflnLDlnYAiLGNvbnNpZ25lZToi5pS26LSn5Lq6Iixjb25zaWduZWVFcnJvcjoi6K+36L6T5YWl5pS26LSn5Lq65aeT5ZCNIixjb25zaWduZWVUZWw6IuaJi+acuuWPt+eggSIsY29uc2lnbmVlVGVsRXJyb3I6Iuivt+i+k+WFpeaUtui0p+S6uuaJi+acuuWPt+eggSIsYXJlYToi5Zu95a625Zyw5Yy6IixhcmVhRXJyb3I6Iuivt+i+k+WFpeWbveWutuaIluWcsOWMuiIsZGV0YWlsZWRBZGRyZXNzOiLor6bnu4blnLDlnYAiLGRldGFpbGVkQWRkcmVzc0Vycm9yOiLor7fovpPlhaXor6bnu4blnLDlnYAiLE1vZGlmeVBheW1lbnRQYXNzd29yZDoi5L+u5pS55pSv5LuY5a+G56CBIixwYXltZW50UGFzc3dvcmRFcnJvcjoi6K+36L6T5YWl5pSv5LuY5a+G56CBIixwYXltZW50UGFzc3dvcmQyOiLnoa7orqTlr4bnoIEiLHBheW1lbnRQYXNzd29yZDJFcnJvcjoi6K+35YaN5qyh6L6T5YWl5pSv5LuY5a+G56CBIixsb2dpblBhc3N3b3JkRXJyb3I6Iuivt+i+k+WFpeeZu+mZhuWvhueggemqjOivgSIsQ2hhbmdlTG9naW5QYXNzd29yZDoi5L+u5pS555m75b2V5a+G56CBIixvbGRQYXNzd29yZDoi5Y6f5a+G56CBIixvbGRQYXNzd29yZEVycm9yOiLor7fovpPlhaXljp/nmbvpmYblr4bnoIEiLG5ld1Bhc3N3b3JkOiLmlrDlr4bnoIEiLG5ld1Bhc3N3b3JkRXJyb3I6Iuivt+i+k+WFpeaWsOeahOeZu+mZhuWvhueggSIsbmV3UGFzc3dvcmQyOiLnoa7orqTlr4bnoIEiLG5ld1Bhc3N3b3JkRXJyb3IyOiLor7flho3mrKHovpPlhaXmlrDnmoTnmbvpmYblr4bnoIEiLENoYW5nZVBhc3N3b3JkUmVtaW5kZXI6IuWvhueggeWwhuS/ruaUueS4uiIsTW9kaWZ5UGFzc3dvcmRSZW1pbmRlckNvbnRlbnQ6IueCueWHu+ehruiupO+8jOeri+WNs+S/ruaUue+8jOWmguaenOmBh+WIsOmXrumimO+8jOivt+WSqOivouWuouacjeOAgiIsUmVjaGFyZ2VEZXRhaWxzOiLlhYXlgLzmmI7nu4YiLG9ubGluZVJlY2hhcmdlOiLnur/kuIrlhYXlgLwiLE1hbnVhbFJlY2hhcmdlOiLkurrlt6XlhYXlgLwiLEFjY291bnRXaXRoZHJhd2FsOiLotKbmiLfmj5DnjrAiLFdpdGhkcmF3YWJsZUJhbGFuY2U6IuWPr+aPkOeOsOS9meminSIsUGF5bWVudE1ldGhvZDoi5Yiw6LSm5pa55byPIixXaXRoZHJhd2FsQW1vdW50OiLmj5DnjrDph5Hpop0iLFdpdGhkcmF3YWxBbW91bnRFcnJvcjoi6K+36L6T5YWl5o+Q546w6YeR6aKdIixQYXltZW50TWV0aG9kRXJyb3I6Iuivt+mAieaLqeWIsOi0puaWueW8jyIsT1BlblBheW1lbnRNZXRob2Q6IueCueWHu+mAieaLqeWIsOi0puaWueW8jyIsV2l0aGRyYXdhbERldGFpbHM6IuaPkOeOsOaYjue7hiIsdW5kZXJSZXZpZXc6IuWuoeaguOS4rSIsZXhhbWluYXRpb25QYXNzZWQ6IuWuoeaguOmAmui/hyIsQXVkaXRSZWplY3RlZDoi5a6h5qC45ouS57udIixiYW5rVHJhbnNmZXI6IumTtuihjOato+WcqOaJk+asviIsUmVtYXJrOiLlpIfms6giLGdvVG9TZXR0aW5nczoi5Y676K6+572uIixQYXltZW50UGFzc3dvcmRSZW1pbmRlcjoi5pqC5pyq6K6+572u5pSv5LuY5a+G56CBIixQYXltZW50UGFzc3dvcmRSZW1pbmRlck1zZzoi54K55Ye756Gu6K6k77yM56uL5Y2z6K6+572u5pSv5LuY5a+G56CB77yM5aaC5p6c6YGH5Yiw6Zeu6aKY77yM6K+35ZKo6K+i5a6i5pyN44CCIixUb0JpbmQ6IuWOu+e7keWumiIsQmluZGluZ0JhbmtDYXJkUmVtaW5kZXI6Iuaaguacque7keWumumTtuihjOWNoSIsQmluZGluZ0JhbmtDYXJkUmVtaW5kZXJNc2c6IueCueWHu+ehruiupO+8jOeri+WNs+WOu+e7keWumuivpeaPkOeOsOaWueW8j++8jOWmguaenOmBh+WIsOmXrumimO+8jOivt+WSqOivouWuouacjeOAgiIsU3VjY2Vzc2Z1bFdpdGhkcmF3YWw6IuaPkOeOsOaIkOWKnyIsU3VjY2Vzc2Z1bFdpdGhkcmF3YWxNc2c6IuaPkOeOsOeUs+ivt+W3suaPkOS6pOiHs+WQjuWPsOWuoeaguO+8jOehruiupOaXoOivr+WQjuWwhuaPkOS6pOiHs+mTtuihjOaJk+asvu+8jOivpuaDheivt+WSqOivouWuouacjeOAgiIsQmluZGluZ0djYXNoUmVtaW5kZXI6Iuaaguacque7keWumkdjYXNoIixCaW5kaW5nTWF5YVJlbWluZGVyOiLmmoLmnKrnu5HlrppNYXlhIixvcGVuTGluazoi5omT5byA6ZO+5o6lIixjb3B5TGlua0FkZDoi5aSN5Yi26ZO+5o6l5Y67VGVsZWdyYW3mt7vliqDlrqLmnI0iLE9wZW50aGVMaW5rdG9BZGQ6IuebtOaOpeaJk+W8gOmTvuaOpea3u+WKoOWlveWPiyIsQmFsYW5jZUJlZm9yZUFjY291bnRDaGFuZ2U6Iui0puWPmOWJjeS9meminSIsQmFsYW5jZUFmdGVyQWNjb3VudENoYW5nZToi6LSm5Y+Y5ZCO5L2Z6aKdIixUb3BVcDoi5YWF5YC85YWl6LSmIixtYW51YWxEZWR1Y3Rpb246IuS6uuW3peaJo+mZpCIsQm9udXNHaXZlYXdheToi5b2p6YeR6LWg6YCBIixDb21taXNzaW9uaW50b0FjY291bnQ6IuS9o+mHkeWFpei0piIsQ2FzaFdpdGhkcmF3YWw6IuaPkOeOsOaUr+WHuiIsV2l0aGRyYXdhbFJlamVjdGVkOiLmj5DnjrDpqbPlm54iLFByb21vdGlvblJlYmF0ZToi5o6o5bm/6L+U5L2jIixzaWduaW5yZXdhcmQ6IuetvuWIsOWlluWKsSIsVGVhbVNpemU6IuWboumYn+S6uuaVsCIsQ3VtdWxhdGl2ZVJld2FyZHM6Iue0r+iuoeWlluWKsSIsVG9kYXlUZWFtUmVjaGFyZ2U6IuS7iuaXpeWboumYn+WFheWAvCIsVGVhbVJlY2hhcmdlVGhpc1dlZWs6IuacrOWRqOWboumYn+WFheWAvCIsVGVhbVJlY2hhcmdlVGhpc01vbnRoOiLmnKzmnIjlm6LpmJ/lhYXlgLwiLFRlYW1XaXRoZHJhd2FsVG9kYXk6IuS7iuaXpeWboumYn+aPkOeOsCIsVGVhbVdpdGhkcmF3YWxUaGlzV2Vlazoi5pys5ZGo5Zui6Zif5o+Q546wIixUZWFtV2l0aGRyYXdhbFRoaXNNb250aDoi5pys5pyI5Zui6Zif5o+Q546wIixwZW9wbGU6IuS6uiIsdGVhbUxpc3Q6IuWboumYn+WIl+ihqCIsZ2V0Q29tbWlzc2lvbjoi6I635b6X5L2j6YeRIixjaGVja2luOiLnrb7liLAiLFNpZ25pblRvZ2V0Q2FzaDoi562+5Yiw6aKG5Y+W546w6YeR5aWW5YqxIixjb250aW51b3VzQ2hlY2tpbjoi5oKo5bey6L+e57ut562+5YiwIn0sZShpLCJnZXRDb21taXNzaW9uIiwi6I635b6X5L2j6YeRIiksZShpLCJEYXkiLCLlpKkiKSxlKGksIlNpZ25lZGluVG9kYXkiLCLku4rml6Xlt7Lnrb7liLAiKSxlKGksImNvbnNlY3V0aXZlUmV3YXJkcyIsIui/nue7reetvuWIsOWlluWKsSIpLGUoaSwiQ2hlY2tpblJlY29yZCIsIuetvuWIsOiusOW9lSIpLGUoaSwiR2Nhc2giLCJHY2FzaCIpLGUoaSwiTWF5YSIsIk1heWEiKSxlKGksIkJhbmtDYXJkIiwi6ZO26KGM5Y2hIiksZShpLCJBZGRPck1vZGlmeSIsIua3u+WKoOaIluS/ruaUuSIpLGUoaSwiYWRkR2Nhc2giLCLnu5HlrppHY2FzaCIpLGUoaSwiR2Nhc2hBY2NvdW50IiwiR2Nhc2jotKblj7ciKSxlKGksIkdjYXNoQWNjb3VudEVycm9yIiwi6K+36L6T5YWlR2Nhc2jotKblj7ciKSxlKGksIkdjYXNoTmFtZSIsIkdjYXNo5aeT5ZCNIiksZShpLCJHY2FzaE5hbWVFcnJvciIsIuivt+i+k+WFpUdjYXNo5aeT5ZCNIiksZShpLCJhZGRNYXlhIiwi57uR5a6aTWF5YSIpLGUoaSwiTWF5YUFjY291bnQiLCJNYXlh6LSm5Y+3IiksZShpLCJNYXlhQWNjb3VudEVycm9yIiwi6K+36L6T5YWlTWF5Yei0puWPtyIpLGUoaSwiTWF5YU5hbWUiLCJNYXlh5aeT5ZCNIiksZShpLCJNYXlhTmFtZUVycm9yIiwi6K+36L6T5YWlTWF5YeWnk+WQjSIpLGUoaSwiU3RhdGlvbk1lc3NhZ2UiLCLnq5nlhoXkv6EiKSxlKGksIlN0YXRpb25NZXNzYWdlQWJvdXRVcyIsIuWFs+S6juaIkeS7rCIpLGUoaSwiU3RhdGlvbk1lc3NhZ2VBbm5vdW5jZW1lbnQiLCLlubPlj7DlhazlkYoiKSxlKGksIlN0YXRpb25NZXNzYWdlSGVscCIsIuW4ruWKqSIpLGUoaSwiVU5SRUFEIiwi5pyq6K+7IiksZShpLCJSRUFEIiwi5bey6K+7IiksaSl9fSxkYWY5OmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7dmFyIGk9YSgiODczZiIpLGU9YS5uKGkpO2UuYX0sZGI3ZjpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKTt2YXIgaT1hKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMCxhKCI0ZGU0IiksYSgiZDNiNyIpO3ZhciBlPWkoYSgiM2M0NCIpKSxyPWkoYSgiNDIxZCIpKSxvPWkoYSgiZmM1ZCIpKSxwPWkoYSgiMzUwMiIpKSxkPWkoYSgiOTI3MiIpKSxnPWkoYSgiYTM2OSIpKSxtPWkoYSgiYTQwYSIpKSx1PWkoYSgiYjIyZCIpKSxzPWkoYSgiMjcxZSIpKSxjPWkoYSgiY2Y4NSIpKSxsPWkoYSgiMzczZCIpKSxmPWkoYSgiOTAwMSIpKSxoPWkoYSgiNGRkZCIpKSxiPWkoYSgiZmM2NiIpKSx5PWkoYSgiOTU0YSIpKSx3PWkoYSgiNzQwMCIpKSxfPWkoYSgiYjhlNCIpKSx2PWkoYSgiOTk1NCIpKSx4PWkoYSgiZGQzMiIpKSxDPWkoYSgiNTIwOCIpKSxrPWEoIjkzN2QiKSxQPWkoYSgiYzJkYSIpKSxTPWkoYSgiMThlOSIpKSxJPWkoYSgiMjRjMiIpKSxBPWkoYSgiYTQ5OCIpKTt2YXIgVD17cXVlcnlQYXJhbXM6by5kZWZhdWx0LHJvdXRlOnAuZGVmYXVsdCx0aW1lRm9ybWF0OmQuZGVmYXVsdCxkYXRlOmQuZGVmYXVsdCx0aW1lRnJvbTpnLmRlZmF1bHQsY29sb3JHcmFkaWVudDptLmRlZmF1bHQuY29sb3JHcmFkaWVudCxjb2xvclRvUmdiYTptLmRlZmF1bHQuY29sb3JUb1JnYmEsZ3VpZDp1LmRlZmF1bHQsY29sb3I6cy5kZWZhdWx0LHN5czprLnN5cyxvczprLm9zLHR5cGUyaWNvbjpjLmRlZmF1bHQscmFuZG9tQXJyYXk6bC5kZWZhdWx0LHdyYW5uaW5nOmZ1bmN0aW9uKHQpezB9LGdldDpyLmRlZmF1bHQuZ2V0LHBvc3Q6ci5kZWZhdWx0LnBvc3QscHV0OnIuZGVmYXVsdC5wdXQsZGVsZXRlOnIuZGVmYXVsdC5kZWxldGUsaGV4VG9SZ2I6bS5kZWZhdWx0LmhleFRvUmdiLHJnYlRvSGV4Om0uZGVmYXVsdC5yZ2JUb0hleCx0ZXN0OnkuZGVmYXVsdCxyYW5kb206dy5kZWZhdWx0LGRlZXBDbG9uZTpmLmRlZmF1bHQsZGVlcE1lcmdlOmguZGVmYXVsdCxnZXRQYXJlbnQ6eC5kZWZhdWx0LCRwYXJlbnQ6Qy5kZWZhdWx0LGFkZFVuaXQ6Yi5kZWZhdWx0LHRyaW06Xy5kZWZhdWx0LHR5cGU6WyJwcmltYXJ5Iiwic3VjY2VzcyIsImVycm9yIiwid2FybmluZyIsImluZm8iXSxodHRwOnIuZGVmYXVsdCx0b2FzdDp2LmRlZmF1bHQsY29uZmlnOkkuZGVmYXVsdCx6SW5kZXg6QS5kZWZhdWx0LGRlYm91bmNlOlAuZGVmYXVsdCx0aHJvdHRsZTpTLmRlZmF1bHR9O3VuaS4kdT1UO3ZhciBSPXtpbnN0YWxsOmZ1bmN0aW9uKHQpe3QubWl4aW4oZS5kZWZhdWx0KSx0LnByb3RvdHlwZS5vcGVuU2hhcmUmJnQubWl4aW4obXBTaGFyZSksdC5maWx0ZXIoInRpbWVGb3JtYXQiLChmdW5jdGlvbih0LG4pe3JldHVybigwLGQuZGVmYXVsdCkodCxuKX0pKSx0LmZpbHRlcigiZGF0ZSIsKGZ1bmN0aW9uKHQsbil7cmV0dXJuKDAsZC5kZWZhdWx0KSh0LG4pfSkpLHQuZmlsdGVyKCJ0aW1lRnJvbSIsKGZ1bmN0aW9uKHQsbil7cmV0dXJuKDAsZy5kZWZhdWx0KSh0LG4pfSkpLHQucHJvdG90eXBlLiR1PVR9fTtuLmRlZmF1bHQ9Un0sZGQzMjpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKTt2YXIgaT1hKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PWZ1bmN0aW9uKHQsbil7dmFyIGE9dGhpcy4kcGFyZW50O3doaWxlKGEpaWYoYS4kb3B0aW9ucy5uYW1lIT09dClhPWEuJHBhcmVudDtlbHNle3ZhciBpPWZ1bmN0aW9uKCl7dmFyIHQ9e307aWYoQXJyYXkuaXNBcnJheShuKSluLm1hcCgoZnVuY3Rpb24obil7dFtuXT1hW25dP2Fbbl06IiJ9KSk7ZWxzZSBmb3IodmFyIGkgaW4gbilBcnJheS5pc0FycmF5KG5baV0pP25baV0ubGVuZ3RoP3RbaV09bltpXTp0W2ldPWFbaV06bltpXS5jb25zdHJ1Y3Rvcj09PU9iamVjdD9PYmplY3Qua2V5cyhuW2ldKS5sZW5ndGg/dFtpXT1uW2ldOnRbaV09YVtpXTp0W2ldPW5baV18fCExPT09bltpXT9uW2ldOmFbaV07cmV0dXJue3Y6dH19KCk7aWYoIm9iamVjdCI9PT0oMCxlLmRlZmF1bHQpKGkpKXJldHVybiBpLnZ9cmV0dXJue319O3ZhciBlPWkoYSgiNTNjYSIpKTthKCJkODFkIiksYSgiYjY0YiIpfSxmMjMwOmZ1bmN0aW9uKHQsbixhKXt2YXIgaT1hKCIyNGZiIik7bj1pKCExKSxuLnB1c2goW3QuaSwnQGNoYXJzZXQgIlVURi04IjtcclxuLyoqXHJcbiAqIOi/memHjOaYr3VuaS1hcHDlhoXnva7nmoTluLjnlKjmoLflvI/lj5jph49cclxuICpcclxuICogdW5pLWFwcCDlrpjmlrnmianlsZXmj5Lku7blj4rmj5Lku7bluILlnLrvvIhodHRwczovL2V4dC5kY2xvdWQubmV0LmNu77yJ5LiK5b6I5aSa5LiJ5pa55o+S5Lu25Z2H5L2/55So5LqG6L+Z5Lqb5qC35byP5Y+Y6YePXHJcbiAqIOWmguaenOS9oOaYr+aPkuS7tuW8gOWPkeiAhe+8jOW7uuiuruS9oOS9v+eUqHNjc3PpooTlpITnkIbvvIzlubblnKjmj5Lku7bku6PnoIHkuK3nm7TmjqXkvb/nlKjov5nkupvlj5jph4/vvIjml6DpnIAgaW1wb3J0IOi/meS4quaWh+S7tu+8ie+8jOaWueS+v+eUqOaIt+mAmui/h+aQreenr+acqOeahOaWueW8j+W8gOWPkeaVtOS9k+mjjuagvOS4gOiHtOeahEFwcFxyXG4gKlxyXG4gKi9cclxuLyoqXHJcbiAqIOWmguaenOS9oOaYr0FwcOW8gOWPkeiAhe+8iOaPkuS7tuS9v+eUqOiAhe+8ie+8jOS9oOWPr+S7pemAmui/h+S/ruaUuei/meS6m+WPmOmHj+adpeWumuWItuiHquW3seeahOaPkuS7tuS4u+mimO+8jOWunueOsOiHquWumuS5ieS4u+mimOWKn+iDvVxyXG4gKlxyXG4gKiDlpoLmnpzkvaDnmoTpobnnm67lkIzmoLfkvb/nlKjkuoZzY3Nz6aKE5aSE55CG77yM5L2g5Lmf5Y+v5Lul55u05o6l5Zyo5L2g55qEIHNjc3Mg5Luj56CB5Lit5L2/55So5aaC5LiL5Y+Y6YeP77yM5ZCM5pe25peg6ZyAIGltcG9ydCDov5nkuKrmlofku7ZcclxuICovXHJcbi8qIOminOiJsuWPmOmHjyAqL1xyXG4vKuWFqOWxgOS4u+mimOiJsuiwgyovXHJcbi8qIOihjOS4uuebuOWFs+minOiJsiAqL1xyXG4vKiDmloflrZfln7rmnKzpopzoibIgKi9cclxuLyog6IOM5pmv6aKc6ImyICovXHJcbi8qIOi+ueahhuminOiJsiAqL1xyXG4vKiDlsLrlr7jlj5jph48gKi9cclxuLyog5paH5a2X5bC65a+4ICovXHJcbi8qIOWbvueJh+WwuuWvuCAqL1xyXG4vKiBCb3JkZXIgUmFkaXVzICovXHJcbi8qIOawtOW5s+mXtOi3nSAqL1xyXG4vKiDlnoLnm7Tpl7Tot50gKi9cclxuLyog6YCP5piO5bqmICovXHJcbi8qIOaWh+eroOWcuuaZr+ebuOWFsyAqLy51LXJlbGF0aXZlLFxyXG4udS1yZWxhe3Bvc2l0aW9uOnJlbGF0aXZlfS51LWFic29sdXRlLFxyXG4udS1hYnNve3Bvc2l0aW9uOmFic29sdXRlfXVuaS1pbWFnZXtkaXNwbGF5OmlubGluZS1ibG9ja311bmktdmlldyxcclxudW5pLXRleHR7Ym94LXNpemluZzpib3JkZXItYm94fS51LWZvbnQteHN7Zm9udC1zaXplOiU/MjI/JX0udS1mb250LXNte2ZvbnQtc2l6ZTolPzI2PyV9LnUtZm9udC1tZHtmb250LXNpemU6JT8yOD8lfS51LWZvbnQtbGd7Zm9udC1zaXplOiU/MzA/JX0udS1mb250LXhse2ZvbnQtc2l6ZTolPzM0PyV9LnUtZmxleHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcn0udS1mbGV4LXdyYXB7ZmxleC13cmFwOndyYXB9LnUtZmxleC1ub3dyYXB7ZmxleC13cmFwOm5vd3JhcH0udS1jb2wtY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcn0udS1jb2wtdG9we2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LnUtY29sLWJvdHRvbXthbGlnbi1pdGVtczpmbGV4LWVuZH0udS1yb3ctY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnUtcm93LWxlZnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LnUtcm93LXJpZ2h0e2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0udS1yb3ctYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0udS1yb3ctYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9LnUtdGV4dC1sZWZ0e3RleHQtYWxpZ246bGVmdH0udS10ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn0udS10ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHR9LnUtZmxleC1jb2x7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0udS1mbGV4LTB7ZmxleDowfS51LWZsZXgtMXtmbGV4OjF9LnUtZmxleC0ye2ZsZXg6Mn0udS1mbGV4LTN7ZmxleDozfS51LWZsZXgtNHtmbGV4OjR9LnUtZmxleC01e2ZsZXg6NX0udS1mbGV4LTZ7ZmxleDo2fS51LWZsZXgtN3tmbGV4Ojd9LnUtZmxleC04e2ZsZXg6OH0udS1mbGV4LTl7ZmxleDo5fS51LWZsZXgtMTB7ZmxleDoxMH0udS1mbGV4LTExe2ZsZXg6MTF9LnUtZmxleC0xMntmbGV4OjEyfS51LWZvbnQtOXtmb250LXNpemU6OXB4fS51LWZvbnQtMTB7Zm9udC1zaXplOjEwcHh9LnUtZm9udC0xMXtmb250LXNpemU6MTFweH0udS1mb250LTEye2ZvbnQtc2l6ZToxMnB4fS51LWZvbnQtMTN7Zm9udC1zaXplOjEzcHh9LnUtZm9udC0xNHtmb250LXNpemU6MTRweH0udS1mb250LTE1e2ZvbnQtc2l6ZToxNXB4fS51LWZvbnQtMTZ7Zm9udC1zaXplOjE2cHh9LnUtZm9udC0xN3tmb250LXNpemU6MTdweH0udS1mb250LTE4e2ZvbnQtc2l6ZToxOHB4fS51LWZvbnQtMTl7Zm9udC1zaXplOjE5cHh9LnUtZm9udC0yMHtmb250LXNpemU6JT8yMD8lfS51LWZvbnQtMjF7Zm9udC1zaXplOiU/MjE/JX0udS1mb250LTIye2ZvbnQtc2l6ZTolPzIyPyV9LnUtZm9udC0yM3tmb250LXNpemU6JT8yMz8lfS51LWZvbnQtMjR7Zm9udC1zaXplOiU/MjQ/JX0udS1mb250LTI1e2ZvbnQtc2l6ZTolPzI1PyV9LnUtZm9udC0yNntmb250LXNpemU6JT8yNj8lfS51LWZvbnQtMjd7Zm9udC1zaXplOiU/Mjc/JX0udS1mb250LTI4e2ZvbnQtc2l6ZTolPzI4PyV9LnUtZm9udC0yOXtmb250LXNpemU6JT8yOT8lfS51LWZvbnQtMzB7Zm9udC1zaXplOiU/MzA/JX0udS1mb250LTMxe2ZvbnQtc2l6ZTolPzMxPyV9LnUtZm9udC0zMntmb250LXNpemU6JT8zMj8lfS51LWZvbnQtMzN7Zm9udC1zaXplOiU/MzM/JX0udS1mb250LTM0e2ZvbnQtc2l6ZTolPzM0PyV9LnUtZm9udC0zNXtmb250LXNpemU6JT8zNT8lfS51LWZvbnQtMzZ7Zm9udC1zaXplOiU/MzY/JX0udS1mb250LTM3e2ZvbnQtc2l6ZTolPzM3PyV9LnUtZm9udC0zOHtmb250LXNpemU6JT8zOD8lfS51LWZvbnQtMzl7Zm9udC1zaXplOiU/Mzk/JX0udS1mb250LTQwe2ZvbnQtc2l6ZTolPzQwPyV9LnUtbWFyZ2luLTAsIC51LW0tMHttYXJnaW46JT8wPyUhaW1wb3J0YW50fS51LXBhZGRpbmctMCwgLnUtcC0we3BhZGRpbmc6JT8wPyUhaW1wb3J0YW50fS51LW0tbC0we21hcmdpbi1sZWZ0OiU/MD8lIWltcG9ydGFudH0udS1wLWwtMHtwYWRkaW5nLWxlZnQ6JT8wPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTB7bWFyZ2luLWxlZnQ6JT8wPyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0we3BhZGRpbmctbGVmdDolPzA/JSFpbXBvcnRhbnR9LnUtbS10LTB7bWFyZ2luLXRvcDolPzA/JSFpbXBvcnRhbnR9LnUtcC10LTB7cGFkZGluZy10b3A6JT8wPyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMHttYXJnaW4tdG9wOiU/MD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0we3BhZGRpbmctdG9wOiU/MD8lIWltcG9ydGFudH0udS1tLXItMHttYXJnaW4tcmlnaHQ6JT8wPyUhaW1wb3J0YW50fS51LXAtci0we3BhZGRpbmctcmlnaHQ6JT8wPyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0we21hcmdpbi1yaWdodDolPzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0we3BhZGRpbmctcmlnaHQ6JT8wPyUhaW1wb3J0YW50fS51LW0tYi0we21hcmdpbi1ib3R0b206JT8wPyUhaW1wb3J0YW50fS51LXAtYi0we3BhZGRpbmctYm90dG9tOiU/MD8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTB7bWFyZ2luLWJvdHRvbTolPzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMHtwYWRkaW5nLWJvdHRvbTolPzA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTIsIC51LW0tMnttYXJnaW46JT8yPyUhaW1wb3J0YW50fS51LXBhZGRpbmctMiwgLnUtcC0ye3BhZGRpbmc6JT8yPyUhaW1wb3J0YW50fS51LW0tbC0ye21hcmdpbi1sZWZ0OiU/Mj8lIWltcG9ydGFudH0udS1wLWwtMntwYWRkaW5nLWxlZnQ6JT8yPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTJ7bWFyZ2luLWxlZnQ6JT8yPyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0ye3BhZGRpbmctbGVmdDolPzI/JSFpbXBvcnRhbnR9LnUtbS10LTJ7bWFyZ2luLXRvcDolPzI/JSFpbXBvcnRhbnR9LnUtcC10LTJ7cGFkZGluZy10b3A6JT8yPyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMnttYXJnaW4tdG9wOiU/Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0ye3BhZGRpbmctdG9wOiU/Mj8lIWltcG9ydGFudH0udS1tLXItMnttYXJnaW4tcmlnaHQ6JT8yPyUhaW1wb3J0YW50fS51LXAtci0ye3BhZGRpbmctcmlnaHQ6JT8yPyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0ye21hcmdpbi1yaWdodDolPzI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0ye3BhZGRpbmctcmlnaHQ6JT8yPyUhaW1wb3J0YW50fS51LW0tYi0ye21hcmdpbi1ib3R0b206JT8yPyUhaW1wb3J0YW50fS51LXAtYi0ye3BhZGRpbmctYm90dG9tOiU/Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTJ7bWFyZ2luLWJvdHRvbTolPzI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMntwYWRkaW5nLWJvdHRvbTolPzI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTQsIC51LW0tNHttYXJnaW46JT80PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNCwgLnUtcC00e3BhZGRpbmc6JT80PyUhaW1wb3J0YW50fS51LW0tbC00e21hcmdpbi1sZWZ0OiU/ND8lIWltcG9ydGFudH0udS1wLWwtNHtwYWRkaW5nLWxlZnQ6JT80PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTR7bWFyZ2luLWxlZnQ6JT80PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC00e3BhZGRpbmctbGVmdDolPzQ/JSFpbXBvcnRhbnR9LnUtbS10LTR7bWFyZ2luLXRvcDolPzQ/JSFpbXBvcnRhbnR9LnUtcC10LTR7cGFkZGluZy10b3A6JT80PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNHttYXJnaW4tdG9wOiU/ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC00e3BhZGRpbmctdG9wOiU/ND8lIWltcG9ydGFudH0udS1tLXItNHttYXJnaW4tcmlnaHQ6JT80PyUhaW1wb3J0YW50fS51LXAtci00e3BhZGRpbmctcmlnaHQ6JT80PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC00e21hcmdpbi1yaWdodDolPzQ/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC00e3BhZGRpbmctcmlnaHQ6JT80PyUhaW1wb3J0YW50fS51LW0tYi00e21hcmdpbi1ib3R0b206JT80PyUhaW1wb3J0YW50fS51LXAtYi00e3BhZGRpbmctYm90dG9tOiU/ND8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTR7bWFyZ2luLWJvdHRvbTolPzQ/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNHtwYWRkaW5nLWJvdHRvbTolPzQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTUsIC51LW0tNXttYXJnaW46JT81PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNSwgLnUtcC01e3BhZGRpbmc6JT81PyUhaW1wb3J0YW50fS51LW0tbC01e21hcmdpbi1sZWZ0OiU/NT8lIWltcG9ydGFudH0udS1wLWwtNXtwYWRkaW5nLWxlZnQ6JT81PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTV7bWFyZ2luLWxlZnQ6JT81PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC01e3BhZGRpbmctbGVmdDolPzU/JSFpbXBvcnRhbnR9LnUtbS10LTV7bWFyZ2luLXRvcDolPzU/JSFpbXBvcnRhbnR9LnUtcC10LTV7cGFkZGluZy10b3A6JT81PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNXttYXJnaW4tdG9wOiU/NT8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC01e3BhZGRpbmctdG9wOiU/NT8lIWltcG9ydGFudH0udS1tLXItNXttYXJnaW4tcmlnaHQ6JT81PyUhaW1wb3J0YW50fS51LXAtci01e3BhZGRpbmctcmlnaHQ6JT81PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC01e21hcmdpbi1yaWdodDolPzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC01e3BhZGRpbmctcmlnaHQ6JT81PyUhaW1wb3J0YW50fS51LW0tYi01e21hcmdpbi1ib3R0b206JT81PyUhaW1wb3J0YW50fS51LXAtYi01e3BhZGRpbmctYm90dG9tOiU/NT8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTV7bWFyZ2luLWJvdHRvbTolPzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNXtwYWRkaW5nLWJvdHRvbTolPzU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTYsIC51LW0tNnttYXJnaW46JT82PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNiwgLnUtcC02e3BhZGRpbmc6JT82PyUhaW1wb3J0YW50fS51LW0tbC02e21hcmdpbi1sZWZ0OiU/Nj8lIWltcG9ydGFudH0udS1wLWwtNntwYWRkaW5nLWxlZnQ6JT82PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTZ7bWFyZ2luLWxlZnQ6JT82PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC02e3BhZGRpbmctbGVmdDolPzY/JSFpbXBvcnRhbnR9LnUtbS10LTZ7bWFyZ2luLXRvcDolPzY/JSFpbXBvcnRhbnR9LnUtcC10LTZ7cGFkZGluZy10b3A6JT82PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNnttYXJnaW4tdG9wOiU/Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC02e3BhZGRpbmctdG9wOiU/Nj8lIWltcG9ydGFudH0udS1tLXItNnttYXJnaW4tcmlnaHQ6JT82PyUhaW1wb3J0YW50fS51LXAtci02e3BhZGRpbmctcmlnaHQ6JT82PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC02e21hcmdpbi1yaWdodDolPzY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC02e3BhZGRpbmctcmlnaHQ6JT82PyUhaW1wb3J0YW50fS51LW0tYi02e21hcmdpbi1ib3R0b206JT82PyUhaW1wb3J0YW50fS51LXAtYi02e3BhZGRpbmctYm90dG9tOiU/Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTZ7bWFyZ2luLWJvdHRvbTolPzY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNntwYWRkaW5nLWJvdHRvbTolPzY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTgsIC51LW0tOHttYXJnaW46JT84PyUhaW1wb3J0YW50fS51LXBhZGRpbmctOCwgLnUtcC04e3BhZGRpbmc6JT84PyUhaW1wb3J0YW50fS51LW0tbC04e21hcmdpbi1sZWZ0OiU/OD8lIWltcG9ydGFudH0udS1wLWwtOHtwYWRkaW5nLWxlZnQ6JT84PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTh7bWFyZ2luLWxlZnQ6JT84PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC04e3BhZGRpbmctbGVmdDolPzg/JSFpbXBvcnRhbnR9LnUtbS10LTh7bWFyZ2luLXRvcDolPzg/JSFpbXBvcnRhbnR9LnUtcC10LTh7cGFkZGluZy10b3A6JT84PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtOHttYXJnaW4tdG9wOiU/OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC04e3BhZGRpbmctdG9wOiU/OD8lIWltcG9ydGFudH0udS1tLXItOHttYXJnaW4tcmlnaHQ6JT84PyUhaW1wb3J0YW50fS51LXAtci04e3BhZGRpbmctcmlnaHQ6JT84PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC04e21hcmdpbi1yaWdodDolPzg/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC04e3BhZGRpbmctcmlnaHQ6JT84PyUhaW1wb3J0YW50fS51LW0tYi04e21hcmdpbi1ib3R0b206JT84PyUhaW1wb3J0YW50fS51LXAtYi04e3BhZGRpbmctYm90dG9tOiU/OD8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTh7bWFyZ2luLWJvdHRvbTolPzg/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tOHtwYWRkaW5nLWJvdHRvbTolPzg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTEwLCAudS1tLTEwe21hcmdpbjolPzEwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctMTAsIC51LXAtMTB7cGFkZGluZzolPzEwPyUhaW1wb3J0YW50fS51LW0tbC0xMHttYXJnaW4tbGVmdDolPzEwPyUhaW1wb3J0YW50fS51LXAtbC0xMHtwYWRkaW5nLWxlZnQ6JT8xMD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC0xMHttYXJnaW4tbGVmdDolPzEwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0xMHtwYWRkaW5nLWxlZnQ6JT8xMD8lIWltcG9ydGFudH0udS1tLXQtMTB7bWFyZ2luLXRvcDolPzEwPyUhaW1wb3J0YW50fS51LXAtdC0xMHtwYWRkaW5nLXRvcDolPzEwPyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMTB7bWFyZ2luLXRvcDolPzEwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTEwe3BhZGRpbmctdG9wOiU/MTA/JSFpbXBvcnRhbnR9LnUtbS1yLTEwe21hcmdpbi1yaWdodDolPzEwPyUhaW1wb3J0YW50fS51LXAtci0xMHtwYWRkaW5nLXJpZ2h0OiU/MTA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTEwe21hcmdpbi1yaWdodDolPzEwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtMTB7cGFkZGluZy1yaWdodDolPzEwPyUhaW1wb3J0YW50fS51LW0tYi0xMHttYXJnaW4tYm90dG9tOiU/MTA/JSFpbXBvcnRhbnR9LnUtcC1iLTEwe3BhZGRpbmctYm90dG9tOiU/MTA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS0xMHttYXJnaW4tYm90dG9tOiU/MTA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMTB7cGFkZGluZy1ib3R0b206JT8xMD8lIWltcG9ydGFudH0udS1tYXJnaW4tMTIsIC51LW0tMTJ7bWFyZ2luOiU/MTI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0xMiwgLnUtcC0xMntwYWRkaW5nOiU/MTI/JSFpbXBvcnRhbnR9LnUtbS1sLTEye21hcmdpbi1sZWZ0OiU/MTI/JSFpbXBvcnRhbnR9LnUtcC1sLTEye3BhZGRpbmctbGVmdDolPzEyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTEye21hcmdpbi1sZWZ0OiU/MTI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTEye3BhZGRpbmctbGVmdDolPzEyPyUhaW1wb3J0YW50fS51LW0tdC0xMnttYXJnaW4tdG9wOiU/MTI/JSFpbXBvcnRhbnR9LnUtcC10LTEye3BhZGRpbmctdG9wOiU/MTI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0xMnttYXJnaW4tdG9wOiU/MTI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtMTJ7cGFkZGluZy10b3A6JT8xMj8lIWltcG9ydGFudH0udS1tLXItMTJ7bWFyZ2luLXJpZ2h0OiU/MTI/JSFpbXBvcnRhbnR9LnUtcC1yLTEye3BhZGRpbmctcmlnaHQ6JT8xMj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtMTJ7bWFyZ2luLXJpZ2h0OiU/MTI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0xMntwYWRkaW5nLXJpZ2h0OiU/MTI/JSFpbXBvcnRhbnR9LnUtbS1iLTEye21hcmdpbi1ib3R0b206JT8xMj8lIWltcG9ydGFudH0udS1wLWItMTJ7cGFkZGluZy1ib3R0b206JT8xMj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTEye21hcmdpbi1ib3R0b206JT8xMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0xMntwYWRkaW5nLWJvdHRvbTolPzEyPyUhaW1wb3J0YW50fS51LW1hcmdpbi0xNCwgLnUtbS0xNHttYXJnaW46JT8xND8lIWltcG9ydGFudH0udS1wYWRkaW5nLTE0LCAudS1wLTE0e3BhZGRpbmc6JT8xND8lIWltcG9ydGFudH0udS1tLWwtMTR7bWFyZ2luLWxlZnQ6JT8xND8lIWltcG9ydGFudH0udS1wLWwtMTR7cGFkZGluZy1sZWZ0OiU/MTQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMTR7bWFyZ2luLWxlZnQ6JT8xND8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtMTR7cGFkZGluZy1sZWZ0OiU/MTQ/JSFpbXBvcnRhbnR9LnUtbS10LTE0e21hcmdpbi10b3A6JT8xND8lIWltcG9ydGFudH0udS1wLXQtMTR7cGFkZGluZy10b3A6JT8xND8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTE0e21hcmdpbi10b3A6JT8xND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0xNHtwYWRkaW5nLXRvcDolPzE0PyUhaW1wb3J0YW50fS51LW0tci0xNHttYXJnaW4tcmlnaHQ6JT8xND8lIWltcG9ydGFudH0udS1wLXItMTR7cGFkZGluZy1yaWdodDolPzE0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0xNHttYXJnaW4tcmlnaHQ6JT8xND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTE0e3BhZGRpbmctcmlnaHQ6JT8xND8lIWltcG9ydGFudH0udS1tLWItMTR7bWFyZ2luLWJvdHRvbTolPzE0PyUhaW1wb3J0YW50fS51LXAtYi0xNHtwYWRkaW5nLWJvdHRvbTolPzE0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMTR7bWFyZ2luLWJvdHRvbTolPzE0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTE0e3BhZGRpbmctYm90dG9tOiU/MTQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTE1LCAudS1tLTE1e21hcmdpbjolPzE1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctMTUsIC51LXAtMTV7cGFkZGluZzolPzE1PyUhaW1wb3J0YW50fS51LW0tbC0xNXttYXJnaW4tbGVmdDolPzE1PyUhaW1wb3J0YW50fS51LXAtbC0xNXtwYWRkaW5nLWxlZnQ6JT8xNT8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC0xNXttYXJnaW4tbGVmdDolPzE1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0xNXtwYWRkaW5nLWxlZnQ6JT8xNT8lIWltcG9ydGFudH0udS1tLXQtMTV7bWFyZ2luLXRvcDolPzE1PyUhaW1wb3J0YW50fS51LXAtdC0xNXtwYWRkaW5nLXRvcDolPzE1PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMTV7bWFyZ2luLXRvcDolPzE1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTE1e3BhZGRpbmctdG9wOiU/MTU/JSFpbXBvcnRhbnR9LnUtbS1yLTE1e21hcmdpbi1yaWdodDolPzE1PyUhaW1wb3J0YW50fS51LXAtci0xNXtwYWRkaW5nLXJpZ2h0OiU/MTU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTE1e21hcmdpbi1yaWdodDolPzE1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtMTV7cGFkZGluZy1yaWdodDolPzE1PyUhaW1wb3J0YW50fS51LW0tYi0xNXttYXJnaW4tYm90dG9tOiU/MTU/JSFpbXBvcnRhbnR9LnUtcC1iLTE1e3BhZGRpbmctYm90dG9tOiU/MTU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS0xNXttYXJnaW4tYm90dG9tOiU/MTU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMTV7cGFkZGluZy1ib3R0b206JT8xNT8lIWltcG9ydGFudH0udS1tYXJnaW4tMTYsIC51LW0tMTZ7bWFyZ2luOiU/MTY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0xNiwgLnUtcC0xNntwYWRkaW5nOiU/MTY/JSFpbXBvcnRhbnR9LnUtbS1sLTE2e21hcmdpbi1sZWZ0OiU/MTY/JSFpbXBvcnRhbnR9LnUtcC1sLTE2e3BhZGRpbmctbGVmdDolPzE2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTE2e21hcmdpbi1sZWZ0OiU/MTY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTE2e3BhZGRpbmctbGVmdDolPzE2PyUhaW1wb3J0YW50fS51LW0tdC0xNnttYXJnaW4tdG9wOiU/MTY/JSFpbXBvcnRhbnR9LnUtcC10LTE2e3BhZGRpbmctdG9wOiU/MTY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0xNnttYXJnaW4tdG9wOiU/MTY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtMTZ7cGFkZGluZy10b3A6JT8xNj8lIWltcG9ydGFudH0udS1tLXItMTZ7bWFyZ2luLXJpZ2h0OiU/MTY/JSFpbXBvcnRhbnR9LnUtcC1yLTE2e3BhZGRpbmctcmlnaHQ6JT8xNj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtMTZ7bWFyZ2luLXJpZ2h0OiU/MTY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0xNntwYWRkaW5nLXJpZ2h0OiU/MTY/JSFpbXBvcnRhbnR9LnUtbS1iLTE2e21hcmdpbi1ib3R0b206JT8xNj8lIWltcG9ydGFudH0udS1wLWItMTZ7cGFkZGluZy1ib3R0b206JT8xNj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTE2e21hcmdpbi1ib3R0b206JT8xNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0xNntwYWRkaW5nLWJvdHRvbTolPzE2PyUhaW1wb3J0YW50fS51LW1hcmdpbi0xOCwgLnUtbS0xOHttYXJnaW46JT8xOD8lIWltcG9ydGFudH0udS1wYWRkaW5nLTE4LCAudS1wLTE4e3BhZGRpbmc6JT8xOD8lIWltcG9ydGFudH0udS1tLWwtMTh7bWFyZ2luLWxlZnQ6JT8xOD8lIWltcG9ydGFudH0udS1wLWwtMTh7cGFkZGluZy1sZWZ0OiU/MTg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMTh7bWFyZ2luLWxlZnQ6JT8xOD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtMTh7cGFkZGluZy1sZWZ0OiU/MTg/JSFpbXBvcnRhbnR9LnUtbS10LTE4e21hcmdpbi10b3A6JT8xOD8lIWltcG9ydGFudH0udS1wLXQtMTh7cGFkZGluZy10b3A6JT8xOD8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTE4e21hcmdpbi10b3A6JT8xOD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0xOHtwYWRkaW5nLXRvcDolPzE4PyUhaW1wb3J0YW50fS51LW0tci0xOHttYXJnaW4tcmlnaHQ6JT8xOD8lIWltcG9ydGFudH0udS1wLXItMTh7cGFkZGluZy1yaWdodDolPzE4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0xOHttYXJnaW4tcmlnaHQ6JT8xOD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTE4e3BhZGRpbmctcmlnaHQ6JT8xOD8lIWltcG9ydGFudH0udS1tLWItMTh7bWFyZ2luLWJvdHRvbTolPzE4PyUhaW1wb3J0YW50fS51LXAtYi0xOHtwYWRkaW5nLWJvdHRvbTolPzE4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMTh7bWFyZ2luLWJvdHRvbTolPzE4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTE4e3BhZGRpbmctYm90dG9tOiU/MTg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTIwLCAudS1tLTIwe21hcmdpbjolPzIwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctMjAsIC51LXAtMjB7cGFkZGluZzolPzIwPyUhaW1wb3J0YW50fS51LW0tbC0yMHttYXJnaW4tbGVmdDolPzIwPyUhaW1wb3J0YW50fS51LXAtbC0yMHtwYWRkaW5nLWxlZnQ6JT8yMD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC0yMHttYXJnaW4tbGVmdDolPzIwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0yMHtwYWRkaW5nLWxlZnQ6JT8yMD8lIWltcG9ydGFudH0udS1tLXQtMjB7bWFyZ2luLXRvcDolPzIwPyUhaW1wb3J0YW50fS51LXAtdC0yMHtwYWRkaW5nLXRvcDolPzIwPyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMjB7bWFyZ2luLXRvcDolPzIwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTIwe3BhZGRpbmctdG9wOiU/MjA/JSFpbXBvcnRhbnR9LnUtbS1yLTIwe21hcmdpbi1yaWdodDolPzIwPyUhaW1wb3J0YW50fS51LXAtci0yMHtwYWRkaW5nLXJpZ2h0OiU/MjA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTIwe21hcmdpbi1yaWdodDolPzIwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtMjB7cGFkZGluZy1yaWdodDolPzIwPyUhaW1wb3J0YW50fS51LW0tYi0yMHttYXJnaW4tYm90dG9tOiU/MjA/JSFpbXBvcnRhbnR9LnUtcC1iLTIwe3BhZGRpbmctYm90dG9tOiU/MjA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS0yMHttYXJnaW4tYm90dG9tOiU/MjA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMjB7cGFkZGluZy1ib3R0b206JT8yMD8lIWltcG9ydGFudH0udS1tYXJnaW4tMjIsIC51LW0tMjJ7bWFyZ2luOiU/MjI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0yMiwgLnUtcC0yMntwYWRkaW5nOiU/MjI/JSFpbXBvcnRhbnR9LnUtbS1sLTIye21hcmdpbi1sZWZ0OiU/MjI/JSFpbXBvcnRhbnR9LnUtcC1sLTIye3BhZGRpbmctbGVmdDolPzIyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTIye21hcmdpbi1sZWZ0OiU/MjI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTIye3BhZGRpbmctbGVmdDolPzIyPyUhaW1wb3J0YW50fS51LW0tdC0yMnttYXJnaW4tdG9wOiU/MjI/JSFpbXBvcnRhbnR9LnUtcC10LTIye3BhZGRpbmctdG9wOiU/MjI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0yMnttYXJnaW4tdG9wOiU/MjI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtMjJ7cGFkZGluZy10b3A6JT8yMj8lIWltcG9ydGFudH0udS1tLXItMjJ7bWFyZ2luLXJpZ2h0OiU/MjI/JSFpbXBvcnRhbnR9LnUtcC1yLTIye3BhZGRpbmctcmlnaHQ6JT8yMj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtMjJ7bWFyZ2luLXJpZ2h0OiU/MjI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0yMntwYWRkaW5nLXJpZ2h0OiU/MjI/JSFpbXBvcnRhbnR9LnUtbS1iLTIye21hcmdpbi1ib3R0b206JT8yMj8lIWltcG9ydGFudH0udS1wLWItMjJ7cGFkZGluZy1ib3R0b206JT8yMj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTIye21hcmdpbi1ib3R0b206JT8yMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0yMntwYWRkaW5nLWJvdHRvbTolPzIyPyUhaW1wb3J0YW50fS51LW1hcmdpbi0yNCwgLnUtbS0yNHttYXJnaW46JT8yND8lIWltcG9ydGFudH0udS1wYWRkaW5nLTI0LCAudS1wLTI0e3BhZGRpbmc6JT8yND8lIWltcG9ydGFudH0udS1tLWwtMjR7bWFyZ2luLWxlZnQ6JT8yND8lIWltcG9ydGFudH0udS1wLWwtMjR7cGFkZGluZy1sZWZ0OiU/MjQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMjR7bWFyZ2luLWxlZnQ6JT8yND8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtMjR7cGFkZGluZy1sZWZ0OiU/MjQ/JSFpbXBvcnRhbnR9LnUtbS10LTI0e21hcmdpbi10b3A6JT8yND8lIWltcG9ydGFudH0udS1wLXQtMjR7cGFkZGluZy10b3A6JT8yND8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTI0e21hcmdpbi10b3A6JT8yND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0yNHtwYWRkaW5nLXRvcDolPzI0PyUhaW1wb3J0YW50fS51LW0tci0yNHttYXJnaW4tcmlnaHQ6JT8yND8lIWltcG9ydGFudH0udS1wLXItMjR7cGFkZGluZy1yaWdodDolPzI0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0yNHttYXJnaW4tcmlnaHQ6JT8yND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTI0e3BhZGRpbmctcmlnaHQ6JT8yND8lIWltcG9ydGFudH0udS1tLWItMjR7bWFyZ2luLWJvdHRvbTolPzI0PyUhaW1wb3J0YW50fS51LXAtYi0yNHtwYWRkaW5nLWJvdHRvbTolPzI0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMjR7bWFyZ2luLWJvdHRvbTolPzI0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTI0e3BhZGRpbmctYm90dG9tOiU/MjQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTI1LCAudS1tLTI1e21hcmdpbjolPzI1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctMjUsIC51LXAtMjV7cGFkZGluZzolPzI1PyUhaW1wb3J0YW50fS51LW0tbC0yNXttYXJnaW4tbGVmdDolPzI1PyUhaW1wb3J0YW50fS51LXAtbC0yNXtwYWRkaW5nLWxlZnQ6JT8yNT8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC0yNXttYXJnaW4tbGVmdDolPzI1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0yNXtwYWRkaW5nLWxlZnQ6JT8yNT8lIWltcG9ydGFudH0udS1tLXQtMjV7bWFyZ2luLXRvcDolPzI1PyUhaW1wb3J0YW50fS51LXAtdC0yNXtwYWRkaW5nLXRvcDolPzI1PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMjV7bWFyZ2luLXRvcDolPzI1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTI1e3BhZGRpbmctdG9wOiU/MjU/JSFpbXBvcnRhbnR9LnUtbS1yLTI1e21hcmdpbi1yaWdodDolPzI1PyUhaW1wb3J0YW50fS51LXAtci0yNXtwYWRkaW5nLXJpZ2h0OiU/MjU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTI1e21hcmdpbi1yaWdodDolPzI1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtMjV7cGFkZGluZy1yaWdodDolPzI1PyUhaW1wb3J0YW50fS51LW0tYi0yNXttYXJnaW4tYm90dG9tOiU/MjU/JSFpbXBvcnRhbnR9LnUtcC1iLTI1e3BhZGRpbmctYm90dG9tOiU/MjU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS0yNXttYXJnaW4tYm90dG9tOiU/MjU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMjV7cGFkZGluZy1ib3R0b206JT8yNT8lIWltcG9ydGFudH0udS1tYXJnaW4tMjYsIC51LW0tMjZ7bWFyZ2luOiU/MjY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0yNiwgLnUtcC0yNntwYWRkaW5nOiU/MjY/JSFpbXBvcnRhbnR9LnUtbS1sLTI2e21hcmdpbi1sZWZ0OiU/MjY/JSFpbXBvcnRhbnR9LnUtcC1sLTI2e3BhZGRpbmctbGVmdDolPzI2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTI2e21hcmdpbi1sZWZ0OiU/MjY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTI2e3BhZGRpbmctbGVmdDolPzI2PyUhaW1wb3J0YW50fS51LW0tdC0yNnttYXJnaW4tdG9wOiU/MjY/JSFpbXBvcnRhbnR9LnUtcC10LTI2e3BhZGRpbmctdG9wOiU/MjY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0yNnttYXJnaW4tdG9wOiU/MjY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtMjZ7cGFkZGluZy10b3A6JT8yNj8lIWltcG9ydGFudH0udS1tLXItMjZ7bWFyZ2luLXJpZ2h0OiU/MjY/JSFpbXBvcnRhbnR9LnUtcC1yLTI2e3BhZGRpbmctcmlnaHQ6JT8yNj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtMjZ7bWFyZ2luLXJpZ2h0OiU/MjY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0yNntwYWRkaW5nLXJpZ2h0OiU/MjY/JSFpbXBvcnRhbnR9LnUtbS1iLTI2e21hcmdpbi1ib3R0b206JT8yNj8lIWltcG9ydGFudH0udS1wLWItMjZ7cGFkZGluZy1ib3R0b206JT8yNj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTI2e21hcmdpbi1ib3R0b206JT8yNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0yNntwYWRkaW5nLWJvdHRvbTolPzI2PyUhaW1wb3J0YW50fS51LW1hcmdpbi0yOCwgLnUtbS0yOHttYXJnaW46JT8yOD8lIWltcG9ydGFudH0udS1wYWRkaW5nLTI4LCAudS1wLTI4e3BhZGRpbmc6JT8yOD8lIWltcG9ydGFudH0udS1tLWwtMjh7bWFyZ2luLWxlZnQ6JT8yOD8lIWltcG9ydGFudH0udS1wLWwtMjh7cGFkZGluZy1sZWZ0OiU/Mjg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMjh7bWFyZ2luLWxlZnQ6JT8yOD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtMjh7cGFkZGluZy1sZWZ0OiU/Mjg/JSFpbXBvcnRhbnR9LnUtbS10LTI4e21hcmdpbi10b3A6JT8yOD8lIWltcG9ydGFudH0udS1wLXQtMjh7cGFkZGluZy10b3A6JT8yOD8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTI4e21hcmdpbi10b3A6JT8yOD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0yOHtwYWRkaW5nLXRvcDolPzI4PyUhaW1wb3J0YW50fS51LW0tci0yOHttYXJnaW4tcmlnaHQ6JT8yOD8lIWltcG9ydGFudH0udS1wLXItMjh7cGFkZGluZy1yaWdodDolPzI4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0yOHttYXJnaW4tcmlnaHQ6JT8yOD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTI4e3BhZGRpbmctcmlnaHQ6JT8yOD8lIWltcG9ydGFudH0udS1tLWItMjh7bWFyZ2luLWJvdHRvbTolPzI4PyUhaW1wb3J0YW50fS51LXAtYi0yOHtwYWRkaW5nLWJvdHRvbTolPzI4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMjh7bWFyZ2luLWJvdHRvbTolPzI4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTI4e3BhZGRpbmctYm90dG9tOiU/Mjg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTMwLCAudS1tLTMwe21hcmdpbjolPzMwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctMzAsIC51LXAtMzB7cGFkZGluZzolPzMwPyUhaW1wb3J0YW50fS51LW0tbC0zMHttYXJnaW4tbGVmdDolPzMwPyUhaW1wb3J0YW50fS51LXAtbC0zMHtwYWRkaW5nLWxlZnQ6JT8zMD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC0zMHttYXJnaW4tbGVmdDolPzMwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0zMHtwYWRkaW5nLWxlZnQ6JT8zMD8lIWltcG9ydGFudH0udS1tLXQtMzB7bWFyZ2luLXRvcDolPzMwPyUhaW1wb3J0YW50fS51LXAtdC0zMHtwYWRkaW5nLXRvcDolPzMwPyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMzB7bWFyZ2luLXRvcDolPzMwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTMwe3BhZGRpbmctdG9wOiU/MzA/JSFpbXBvcnRhbnR9LnUtbS1yLTMwe21hcmdpbi1yaWdodDolPzMwPyUhaW1wb3J0YW50fS51LXAtci0zMHtwYWRkaW5nLXJpZ2h0OiU/MzA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTMwe21hcmdpbi1yaWdodDolPzMwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtMzB7cGFkZGluZy1yaWdodDolPzMwPyUhaW1wb3J0YW50fS51LW0tYi0zMHttYXJnaW4tYm90dG9tOiU/MzA/JSFpbXBvcnRhbnR9LnUtcC1iLTMwe3BhZGRpbmctYm90dG9tOiU/MzA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS0zMHttYXJnaW4tYm90dG9tOiU/MzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMzB7cGFkZGluZy1ib3R0b206JT8zMD8lIWltcG9ydGFudH0udS1tYXJnaW4tMzIsIC51LW0tMzJ7bWFyZ2luOiU/MzI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0zMiwgLnUtcC0zMntwYWRkaW5nOiU/MzI/JSFpbXBvcnRhbnR9LnUtbS1sLTMye21hcmdpbi1sZWZ0OiU/MzI/JSFpbXBvcnRhbnR9LnUtcC1sLTMye3BhZGRpbmctbGVmdDolPzMyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTMye21hcmdpbi1sZWZ0OiU/MzI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTMye3BhZGRpbmctbGVmdDolPzMyPyUhaW1wb3J0YW50fS51LW0tdC0zMnttYXJnaW4tdG9wOiU/MzI/JSFpbXBvcnRhbnR9LnUtcC10LTMye3BhZGRpbmctdG9wOiU/MzI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0zMnttYXJnaW4tdG9wOiU/MzI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtMzJ7cGFkZGluZy10b3A6JT8zMj8lIWltcG9ydGFudH0udS1tLXItMzJ7bWFyZ2luLXJpZ2h0OiU/MzI/JSFpbXBvcnRhbnR9LnUtcC1yLTMye3BhZGRpbmctcmlnaHQ6JT8zMj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtMzJ7bWFyZ2luLXJpZ2h0OiU/MzI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0zMntwYWRkaW5nLXJpZ2h0OiU/MzI/JSFpbXBvcnRhbnR9LnUtbS1iLTMye21hcmdpbi1ib3R0b206JT8zMj8lIWltcG9ydGFudH0udS1wLWItMzJ7cGFkZGluZy1ib3R0b206JT8zMj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTMye21hcmdpbi1ib3R0b206JT8zMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0zMntwYWRkaW5nLWJvdHRvbTolPzMyPyUhaW1wb3J0YW50fS51LW1hcmdpbi0zNCwgLnUtbS0zNHttYXJnaW46JT8zND8lIWltcG9ydGFudH0udS1wYWRkaW5nLTM0LCAudS1wLTM0e3BhZGRpbmc6JT8zND8lIWltcG9ydGFudH0udS1tLWwtMzR7bWFyZ2luLWxlZnQ6JT8zND8lIWltcG9ydGFudH0udS1wLWwtMzR7cGFkZGluZy1sZWZ0OiU/MzQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMzR7bWFyZ2luLWxlZnQ6JT8zND8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtMzR7cGFkZGluZy1sZWZ0OiU/MzQ/JSFpbXBvcnRhbnR9LnUtbS10LTM0e21hcmdpbi10b3A6JT8zND8lIWltcG9ydGFudH0udS1wLXQtMzR7cGFkZGluZy10b3A6JT8zND8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTM0e21hcmdpbi10b3A6JT8zND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0zNHtwYWRkaW5nLXRvcDolPzM0PyUhaW1wb3J0YW50fS51LW0tci0zNHttYXJnaW4tcmlnaHQ6JT8zND8lIWltcG9ydGFudH0udS1wLXItMzR7cGFkZGluZy1yaWdodDolPzM0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0zNHttYXJnaW4tcmlnaHQ6JT8zND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTM0e3BhZGRpbmctcmlnaHQ6JT8zND8lIWltcG9ydGFudH0udS1tLWItMzR7bWFyZ2luLWJvdHRvbTolPzM0PyUhaW1wb3J0YW50fS51LXAtYi0zNHtwYWRkaW5nLWJvdHRvbTolPzM0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMzR7bWFyZ2luLWJvdHRvbTolPzM0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTM0e3BhZGRpbmctYm90dG9tOiU/MzQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTM1LCAudS1tLTM1e21hcmdpbjolPzM1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctMzUsIC51LXAtMzV7cGFkZGluZzolPzM1PyUhaW1wb3J0YW50fS51LW0tbC0zNXttYXJnaW4tbGVmdDolPzM1PyUhaW1wb3J0YW50fS51LXAtbC0zNXtwYWRkaW5nLWxlZnQ6JT8zNT8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC0zNXttYXJnaW4tbGVmdDolPzM1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0zNXtwYWRkaW5nLWxlZnQ6JT8zNT8lIWltcG9ydGFudH0udS1tLXQtMzV7bWFyZ2luLXRvcDolPzM1PyUhaW1wb3J0YW50fS51LXAtdC0zNXtwYWRkaW5nLXRvcDolPzM1PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMzV7bWFyZ2luLXRvcDolPzM1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTM1e3BhZGRpbmctdG9wOiU/MzU/JSFpbXBvcnRhbnR9LnUtbS1yLTM1e21hcmdpbi1yaWdodDolPzM1PyUhaW1wb3J0YW50fS51LXAtci0zNXtwYWRkaW5nLXJpZ2h0OiU/MzU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTM1e21hcmdpbi1yaWdodDolPzM1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtMzV7cGFkZGluZy1yaWdodDolPzM1PyUhaW1wb3J0YW50fS51LW0tYi0zNXttYXJnaW4tYm90dG9tOiU/MzU/JSFpbXBvcnRhbnR9LnUtcC1iLTM1e3BhZGRpbmctYm90dG9tOiU/MzU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS0zNXttYXJnaW4tYm90dG9tOiU/MzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMzV7cGFkZGluZy1ib3R0b206JT8zNT8lIWltcG9ydGFudH0udS1tYXJnaW4tMzYsIC51LW0tMzZ7bWFyZ2luOiU/MzY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0zNiwgLnUtcC0zNntwYWRkaW5nOiU/MzY/JSFpbXBvcnRhbnR9LnUtbS1sLTM2e21hcmdpbi1sZWZ0OiU/MzY/JSFpbXBvcnRhbnR9LnUtcC1sLTM2e3BhZGRpbmctbGVmdDolPzM2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTM2e21hcmdpbi1sZWZ0OiU/MzY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTM2e3BhZGRpbmctbGVmdDolPzM2PyUhaW1wb3J0YW50fS51LW0tdC0zNnttYXJnaW4tdG9wOiU/MzY/JSFpbXBvcnRhbnR9LnUtcC10LTM2e3BhZGRpbmctdG9wOiU/MzY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0zNnttYXJnaW4tdG9wOiU/MzY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtMzZ7cGFkZGluZy10b3A6JT8zNj8lIWltcG9ydGFudH0udS1tLXItMzZ7bWFyZ2luLXJpZ2h0OiU/MzY/JSFpbXBvcnRhbnR9LnUtcC1yLTM2e3BhZGRpbmctcmlnaHQ6JT8zNj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtMzZ7bWFyZ2luLXJpZ2h0OiU/MzY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0zNntwYWRkaW5nLXJpZ2h0OiU/MzY/JSFpbXBvcnRhbnR9LnUtbS1iLTM2e21hcmdpbi1ib3R0b206JT8zNj8lIWltcG9ydGFudH0udS1wLWItMzZ7cGFkZGluZy1ib3R0b206JT8zNj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTM2e21hcmdpbi1ib3R0b206JT8zNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0zNntwYWRkaW5nLWJvdHRvbTolPzM2PyUhaW1wb3J0YW50fS51LW1hcmdpbi0zOCwgLnUtbS0zOHttYXJnaW46JT8zOD8lIWltcG9ydGFudH0udS1wYWRkaW5nLTM4LCAudS1wLTM4e3BhZGRpbmc6JT8zOD8lIWltcG9ydGFudH0udS1tLWwtMzh7bWFyZ2luLWxlZnQ6JT8zOD8lIWltcG9ydGFudH0udS1wLWwtMzh7cGFkZGluZy1sZWZ0OiU/Mzg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMzh7bWFyZ2luLWxlZnQ6JT8zOD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtMzh7cGFkZGluZy1sZWZ0OiU/Mzg/JSFpbXBvcnRhbnR9LnUtbS10LTM4e21hcmdpbi10b3A6JT8zOD8lIWltcG9ydGFudH0udS1wLXQtMzh7cGFkZGluZy10b3A6JT8zOD8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTM4e21hcmdpbi10b3A6JT8zOD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0zOHtwYWRkaW5nLXRvcDolPzM4PyUhaW1wb3J0YW50fS51LW0tci0zOHttYXJnaW4tcmlnaHQ6JT8zOD8lIWltcG9ydGFudH0udS1wLXItMzh7cGFkZGluZy1yaWdodDolPzM4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0zOHttYXJnaW4tcmlnaHQ6JT8zOD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTM4e3BhZGRpbmctcmlnaHQ6JT8zOD8lIWltcG9ydGFudH0udS1tLWItMzh7bWFyZ2luLWJvdHRvbTolPzM4PyUhaW1wb3J0YW50fS51LXAtYi0zOHtwYWRkaW5nLWJvdHRvbTolPzM4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMzh7bWFyZ2luLWJvdHRvbTolPzM4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTM4e3BhZGRpbmctYm90dG9tOiU/Mzg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTQwLCAudS1tLTQwe21hcmdpbjolPzQwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctNDAsIC51LXAtNDB7cGFkZGluZzolPzQwPyUhaW1wb3J0YW50fS51LW0tbC00MHttYXJnaW4tbGVmdDolPzQwPyUhaW1wb3J0YW50fS51LXAtbC00MHtwYWRkaW5nLWxlZnQ6JT80MD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC00MHttYXJnaW4tbGVmdDolPzQwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC00MHtwYWRkaW5nLWxlZnQ6JT80MD8lIWltcG9ydGFudH0udS1tLXQtNDB7bWFyZ2luLXRvcDolPzQwPyUhaW1wb3J0YW50fS51LXAtdC00MHtwYWRkaW5nLXRvcDolPzQwPyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNDB7bWFyZ2luLXRvcDolPzQwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTQwe3BhZGRpbmctdG9wOiU/NDA/JSFpbXBvcnRhbnR9LnUtbS1yLTQwe21hcmdpbi1yaWdodDolPzQwPyUhaW1wb3J0YW50fS51LXAtci00MHtwYWRkaW5nLXJpZ2h0OiU/NDA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTQwe21hcmdpbi1yaWdodDolPzQwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNDB7cGFkZGluZy1yaWdodDolPzQwPyUhaW1wb3J0YW50fS51LW0tYi00MHttYXJnaW4tYm90dG9tOiU/NDA/JSFpbXBvcnRhbnR9LnUtcC1iLTQwe3BhZGRpbmctYm90dG9tOiU/NDA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS00MHttYXJnaW4tYm90dG9tOiU/NDA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNDB7cGFkZGluZy1ib3R0b206JT80MD8lIWltcG9ydGFudH0udS1tYXJnaW4tNDIsIC51LW0tNDJ7bWFyZ2luOiU/NDI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy00MiwgLnUtcC00MntwYWRkaW5nOiU/NDI/JSFpbXBvcnRhbnR9LnUtbS1sLTQye21hcmdpbi1sZWZ0OiU/NDI/JSFpbXBvcnRhbnR9LnUtcC1sLTQye3BhZGRpbmctbGVmdDolPzQyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTQye21hcmdpbi1sZWZ0OiU/NDI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTQye3BhZGRpbmctbGVmdDolPzQyPyUhaW1wb3J0YW50fS51LW0tdC00MnttYXJnaW4tdG9wOiU/NDI/JSFpbXBvcnRhbnR9LnUtcC10LTQye3BhZGRpbmctdG9wOiU/NDI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC00MnttYXJnaW4tdG9wOiU/NDI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNDJ7cGFkZGluZy10b3A6JT80Mj8lIWltcG9ydGFudH0udS1tLXItNDJ7bWFyZ2luLXJpZ2h0OiU/NDI/JSFpbXBvcnRhbnR9LnUtcC1yLTQye3BhZGRpbmctcmlnaHQ6JT80Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNDJ7bWFyZ2luLXJpZ2h0OiU/NDI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC00MntwYWRkaW5nLXJpZ2h0OiU/NDI/JSFpbXBvcnRhbnR9LnUtbS1iLTQye21hcmdpbi1ib3R0b206JT80Mj8lIWltcG9ydGFudH0udS1wLWItNDJ7cGFkZGluZy1ib3R0b206JT80Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTQye21hcmdpbi1ib3R0b206JT80Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS00MntwYWRkaW5nLWJvdHRvbTolPzQyPyUhaW1wb3J0YW50fS51LW1hcmdpbi00NCwgLnUtbS00NHttYXJnaW46JT80ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLTQ0LCAudS1wLTQ0e3BhZGRpbmc6JT80ND8lIWltcG9ydGFudH0udS1tLWwtNDR7bWFyZ2luLWxlZnQ6JT80ND8lIWltcG9ydGFudH0udS1wLWwtNDR7cGFkZGluZy1sZWZ0OiU/NDQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNDR7bWFyZ2luLWxlZnQ6JT80ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNDR7cGFkZGluZy1sZWZ0OiU/NDQ/JSFpbXBvcnRhbnR9LnUtbS10LTQ0e21hcmdpbi10b3A6JT80ND8lIWltcG9ydGFudH0udS1wLXQtNDR7cGFkZGluZy10b3A6JT80ND8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTQ0e21hcmdpbi10b3A6JT80ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC00NHtwYWRkaW5nLXRvcDolPzQ0PyUhaW1wb3J0YW50fS51LW0tci00NHttYXJnaW4tcmlnaHQ6JT80ND8lIWltcG9ydGFudH0udS1wLXItNDR7cGFkZGluZy1yaWdodDolPzQ0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC00NHttYXJnaW4tcmlnaHQ6JT80ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTQ0e3BhZGRpbmctcmlnaHQ6JT80ND8lIWltcG9ydGFudH0udS1tLWItNDR7bWFyZ2luLWJvdHRvbTolPzQ0PyUhaW1wb3J0YW50fS51LXAtYi00NHtwYWRkaW5nLWJvdHRvbTolPzQ0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNDR7bWFyZ2luLWJvdHRvbTolPzQ0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTQ0e3BhZGRpbmctYm90dG9tOiU/NDQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTQ1LCAudS1tLTQ1e21hcmdpbjolPzQ1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNDUsIC51LXAtNDV7cGFkZGluZzolPzQ1PyUhaW1wb3J0YW50fS51LW0tbC00NXttYXJnaW4tbGVmdDolPzQ1PyUhaW1wb3J0YW50fS51LXAtbC00NXtwYWRkaW5nLWxlZnQ6JT80NT8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC00NXttYXJnaW4tbGVmdDolPzQ1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC00NXtwYWRkaW5nLWxlZnQ6JT80NT8lIWltcG9ydGFudH0udS1tLXQtNDV7bWFyZ2luLXRvcDolPzQ1PyUhaW1wb3J0YW50fS51LXAtdC00NXtwYWRkaW5nLXRvcDolPzQ1PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNDV7bWFyZ2luLXRvcDolPzQ1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTQ1e3BhZGRpbmctdG9wOiU/NDU/JSFpbXBvcnRhbnR9LnUtbS1yLTQ1e21hcmdpbi1yaWdodDolPzQ1PyUhaW1wb3J0YW50fS51LXAtci00NXtwYWRkaW5nLXJpZ2h0OiU/NDU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTQ1e21hcmdpbi1yaWdodDolPzQ1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNDV7cGFkZGluZy1yaWdodDolPzQ1PyUhaW1wb3J0YW50fS51LW0tYi00NXttYXJnaW4tYm90dG9tOiU/NDU/JSFpbXBvcnRhbnR9LnUtcC1iLTQ1e3BhZGRpbmctYm90dG9tOiU/NDU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS00NXttYXJnaW4tYm90dG9tOiU/NDU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNDV7cGFkZGluZy1ib3R0b206JT80NT8lIWltcG9ydGFudH0udS1tYXJnaW4tNDYsIC51LW0tNDZ7bWFyZ2luOiU/NDY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy00NiwgLnUtcC00NntwYWRkaW5nOiU/NDY/JSFpbXBvcnRhbnR9LnUtbS1sLTQ2e21hcmdpbi1sZWZ0OiU/NDY/JSFpbXBvcnRhbnR9LnUtcC1sLTQ2e3BhZGRpbmctbGVmdDolPzQ2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTQ2e21hcmdpbi1sZWZ0OiU/NDY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTQ2e3BhZGRpbmctbGVmdDolPzQ2PyUhaW1wb3J0YW50fS51LW0tdC00NnttYXJnaW4tdG9wOiU/NDY/JSFpbXBvcnRhbnR9LnUtcC10LTQ2e3BhZGRpbmctdG9wOiU/NDY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC00NnttYXJnaW4tdG9wOiU/NDY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNDZ7cGFkZGluZy10b3A6JT80Nj8lIWltcG9ydGFudH0udS1tLXItNDZ7bWFyZ2luLXJpZ2h0OiU/NDY/JSFpbXBvcnRhbnR9LnUtcC1yLTQ2e3BhZGRpbmctcmlnaHQ6JT80Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNDZ7bWFyZ2luLXJpZ2h0OiU/NDY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC00NntwYWRkaW5nLXJpZ2h0OiU/NDY/JSFpbXBvcnRhbnR9LnUtbS1iLTQ2e21hcmdpbi1ib3R0b206JT80Nj8lIWltcG9ydGFudH0udS1wLWItNDZ7cGFkZGluZy1ib3R0b206JT80Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTQ2e21hcmdpbi1ib3R0b206JT80Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS00NntwYWRkaW5nLWJvdHRvbTolPzQ2PyUhaW1wb3J0YW50fS51LW1hcmdpbi00OCwgLnUtbS00OHttYXJnaW46JT80OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLTQ4LCAudS1wLTQ4e3BhZGRpbmc6JT80OD8lIWltcG9ydGFudH0udS1tLWwtNDh7bWFyZ2luLWxlZnQ6JT80OD8lIWltcG9ydGFudH0udS1wLWwtNDh7cGFkZGluZy1sZWZ0OiU/NDg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNDh7bWFyZ2luLWxlZnQ6JT80OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNDh7cGFkZGluZy1sZWZ0OiU/NDg/JSFpbXBvcnRhbnR9LnUtbS10LTQ4e21hcmdpbi10b3A6JT80OD8lIWltcG9ydGFudH0udS1wLXQtNDh7cGFkZGluZy10b3A6JT80OD8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTQ4e21hcmdpbi10b3A6JT80OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC00OHtwYWRkaW5nLXRvcDolPzQ4PyUhaW1wb3J0YW50fS51LW0tci00OHttYXJnaW4tcmlnaHQ6JT80OD8lIWltcG9ydGFudH0udS1wLXItNDh7cGFkZGluZy1yaWdodDolPzQ4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC00OHttYXJnaW4tcmlnaHQ6JT80OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTQ4e3BhZGRpbmctcmlnaHQ6JT80OD8lIWltcG9ydGFudH0udS1tLWItNDh7bWFyZ2luLWJvdHRvbTolPzQ4PyUhaW1wb3J0YW50fS51LXAtYi00OHtwYWRkaW5nLWJvdHRvbTolPzQ4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNDh7bWFyZ2luLWJvdHRvbTolPzQ4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTQ4e3BhZGRpbmctYm90dG9tOiU/NDg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTUwLCAudS1tLTUwe21hcmdpbjolPzUwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctNTAsIC51LXAtNTB7cGFkZGluZzolPzUwPyUhaW1wb3J0YW50fS51LW0tbC01MHttYXJnaW4tbGVmdDolPzUwPyUhaW1wb3J0YW50fS51LXAtbC01MHtwYWRkaW5nLWxlZnQ6JT81MD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC01MHttYXJnaW4tbGVmdDolPzUwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC01MHtwYWRkaW5nLWxlZnQ6JT81MD8lIWltcG9ydGFudH0udS1tLXQtNTB7bWFyZ2luLXRvcDolPzUwPyUhaW1wb3J0YW50fS51LXAtdC01MHtwYWRkaW5nLXRvcDolPzUwPyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNTB7bWFyZ2luLXRvcDolPzUwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTUwe3BhZGRpbmctdG9wOiU/NTA/JSFpbXBvcnRhbnR9LnUtbS1yLTUwe21hcmdpbi1yaWdodDolPzUwPyUhaW1wb3J0YW50fS51LXAtci01MHtwYWRkaW5nLXJpZ2h0OiU/NTA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTUwe21hcmdpbi1yaWdodDolPzUwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNTB7cGFkZGluZy1yaWdodDolPzUwPyUhaW1wb3J0YW50fS51LW0tYi01MHttYXJnaW4tYm90dG9tOiU/NTA/JSFpbXBvcnRhbnR9LnUtcC1iLTUwe3BhZGRpbmctYm90dG9tOiU/NTA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS01MHttYXJnaW4tYm90dG9tOiU/NTA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNTB7cGFkZGluZy1ib3R0b206JT81MD8lIWltcG9ydGFudH0udS1tYXJnaW4tNTIsIC51LW0tNTJ7bWFyZ2luOiU/NTI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy01MiwgLnUtcC01MntwYWRkaW5nOiU/NTI/JSFpbXBvcnRhbnR9LnUtbS1sLTUye21hcmdpbi1sZWZ0OiU/NTI/JSFpbXBvcnRhbnR9LnUtcC1sLTUye3BhZGRpbmctbGVmdDolPzUyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTUye21hcmdpbi1sZWZ0OiU/NTI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTUye3BhZGRpbmctbGVmdDolPzUyPyUhaW1wb3J0YW50fS51LW0tdC01MnttYXJnaW4tdG9wOiU/NTI/JSFpbXBvcnRhbnR9LnUtcC10LTUye3BhZGRpbmctdG9wOiU/NTI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC01MnttYXJnaW4tdG9wOiU/NTI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNTJ7cGFkZGluZy10b3A6JT81Mj8lIWltcG9ydGFudH0udS1tLXItNTJ7bWFyZ2luLXJpZ2h0OiU/NTI/JSFpbXBvcnRhbnR9LnUtcC1yLTUye3BhZGRpbmctcmlnaHQ6JT81Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNTJ7bWFyZ2luLXJpZ2h0OiU/NTI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC01MntwYWRkaW5nLXJpZ2h0OiU/NTI/JSFpbXBvcnRhbnR9LnUtbS1iLTUye21hcmdpbi1ib3R0b206JT81Mj8lIWltcG9ydGFudH0udS1wLWItNTJ7cGFkZGluZy1ib3R0b206JT81Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTUye21hcmdpbi1ib3R0b206JT81Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS01MntwYWRkaW5nLWJvdHRvbTolPzUyPyUhaW1wb3J0YW50fS51LW1hcmdpbi01NCwgLnUtbS01NHttYXJnaW46JT81ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLTU0LCAudS1wLTU0e3BhZGRpbmc6JT81ND8lIWltcG9ydGFudH0udS1tLWwtNTR7bWFyZ2luLWxlZnQ6JT81ND8lIWltcG9ydGFudH0udS1wLWwtNTR7cGFkZGluZy1sZWZ0OiU/NTQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNTR7bWFyZ2luLWxlZnQ6JT81ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNTR7cGFkZGluZy1sZWZ0OiU/NTQ/JSFpbXBvcnRhbnR9LnUtbS10LTU0e21hcmdpbi10b3A6JT81ND8lIWltcG9ydGFudH0udS1wLXQtNTR7cGFkZGluZy10b3A6JT81ND8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTU0e21hcmdpbi10b3A6JT81ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC01NHtwYWRkaW5nLXRvcDolPzU0PyUhaW1wb3J0YW50fS51LW0tci01NHttYXJnaW4tcmlnaHQ6JT81ND8lIWltcG9ydGFudH0udS1wLXItNTR7cGFkZGluZy1yaWdodDolPzU0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC01NHttYXJnaW4tcmlnaHQ6JT81ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTU0e3BhZGRpbmctcmlnaHQ6JT81ND8lIWltcG9ydGFudH0udS1tLWItNTR7bWFyZ2luLWJvdHRvbTolPzU0PyUhaW1wb3J0YW50fS51LXAtYi01NHtwYWRkaW5nLWJvdHRvbTolPzU0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNTR7bWFyZ2luLWJvdHRvbTolPzU0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTU0e3BhZGRpbmctYm90dG9tOiU/NTQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTU1LCAudS1tLTU1e21hcmdpbjolPzU1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNTUsIC51LXAtNTV7cGFkZGluZzolPzU1PyUhaW1wb3J0YW50fS51LW0tbC01NXttYXJnaW4tbGVmdDolPzU1PyUhaW1wb3J0YW50fS51LXAtbC01NXtwYWRkaW5nLWxlZnQ6JT81NT8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC01NXttYXJnaW4tbGVmdDolPzU1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC01NXtwYWRkaW5nLWxlZnQ6JT81NT8lIWltcG9ydGFudH0udS1tLXQtNTV7bWFyZ2luLXRvcDolPzU1PyUhaW1wb3J0YW50fS51LXAtdC01NXtwYWRkaW5nLXRvcDolPzU1PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNTV7bWFyZ2luLXRvcDolPzU1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTU1e3BhZGRpbmctdG9wOiU/NTU/JSFpbXBvcnRhbnR9LnUtbS1yLTU1e21hcmdpbi1yaWdodDolPzU1PyUhaW1wb3J0YW50fS51LXAtci01NXtwYWRkaW5nLXJpZ2h0OiU/NTU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTU1e21hcmdpbi1yaWdodDolPzU1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNTV7cGFkZGluZy1yaWdodDolPzU1PyUhaW1wb3J0YW50fS51LW0tYi01NXttYXJnaW4tYm90dG9tOiU/NTU/JSFpbXBvcnRhbnR9LnUtcC1iLTU1e3BhZGRpbmctYm90dG9tOiU/NTU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS01NXttYXJnaW4tYm90dG9tOiU/NTU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNTV7cGFkZGluZy1ib3R0b206JT81NT8lIWltcG9ydGFudH0udS1tYXJnaW4tNTYsIC51LW0tNTZ7bWFyZ2luOiU/NTY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy01NiwgLnUtcC01NntwYWRkaW5nOiU/NTY/JSFpbXBvcnRhbnR9LnUtbS1sLTU2e21hcmdpbi1sZWZ0OiU/NTY/JSFpbXBvcnRhbnR9LnUtcC1sLTU2e3BhZGRpbmctbGVmdDolPzU2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTU2e21hcmdpbi1sZWZ0OiU/NTY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTU2e3BhZGRpbmctbGVmdDolPzU2PyUhaW1wb3J0YW50fS51LW0tdC01NnttYXJnaW4tdG9wOiU/NTY/JSFpbXBvcnRhbnR9LnUtcC10LTU2e3BhZGRpbmctdG9wOiU/NTY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC01NnttYXJnaW4tdG9wOiU/NTY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNTZ7cGFkZGluZy10b3A6JT81Nj8lIWltcG9ydGFudH0udS1tLXItNTZ7bWFyZ2luLXJpZ2h0OiU/NTY/JSFpbXBvcnRhbnR9LnUtcC1yLTU2e3BhZGRpbmctcmlnaHQ6JT81Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNTZ7bWFyZ2luLXJpZ2h0OiU/NTY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC01NntwYWRkaW5nLXJpZ2h0OiU/NTY/JSFpbXBvcnRhbnR9LnUtbS1iLTU2e21hcmdpbi1ib3R0b206JT81Nj8lIWltcG9ydGFudH0udS1wLWItNTZ7cGFkZGluZy1ib3R0b206JT81Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTU2e21hcmdpbi1ib3R0b206JT81Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS01NntwYWRkaW5nLWJvdHRvbTolPzU2PyUhaW1wb3J0YW50fS51LW1hcmdpbi01OCwgLnUtbS01OHttYXJnaW46JT81OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLTU4LCAudS1wLTU4e3BhZGRpbmc6JT81OD8lIWltcG9ydGFudH0udS1tLWwtNTh7bWFyZ2luLWxlZnQ6JT81OD8lIWltcG9ydGFudH0udS1wLWwtNTh7cGFkZGluZy1sZWZ0OiU/NTg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNTh7bWFyZ2luLWxlZnQ6JT81OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNTh7cGFkZGluZy1sZWZ0OiU/NTg/JSFpbXBvcnRhbnR9LnUtbS10LTU4e21hcmdpbi10b3A6JT81OD8lIWltcG9ydGFudH0udS1wLXQtNTh7cGFkZGluZy10b3A6JT81OD8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTU4e21hcmdpbi10b3A6JT81OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC01OHtwYWRkaW5nLXRvcDolPzU4PyUhaW1wb3J0YW50fS51LW0tci01OHttYXJnaW4tcmlnaHQ6JT81OD8lIWltcG9ydGFudH0udS1wLXItNTh7cGFkZGluZy1yaWdodDolPzU4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC01OHttYXJnaW4tcmlnaHQ6JT81OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTU4e3BhZGRpbmctcmlnaHQ6JT81OD8lIWltcG9ydGFudH0udS1tLWItNTh7bWFyZ2luLWJvdHRvbTolPzU4PyUhaW1wb3J0YW50fS51LXAtYi01OHtwYWRkaW5nLWJvdHRvbTolPzU4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNTh7bWFyZ2luLWJvdHRvbTolPzU4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTU4e3BhZGRpbmctYm90dG9tOiU/NTg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTYwLCAudS1tLTYwe21hcmdpbjolPzYwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctNjAsIC51LXAtNjB7cGFkZGluZzolPzYwPyUhaW1wb3J0YW50fS51LW0tbC02MHttYXJnaW4tbGVmdDolPzYwPyUhaW1wb3J0YW50fS51LXAtbC02MHtwYWRkaW5nLWxlZnQ6JT82MD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC02MHttYXJnaW4tbGVmdDolPzYwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC02MHtwYWRkaW5nLWxlZnQ6JT82MD8lIWltcG9ydGFudH0udS1tLXQtNjB7bWFyZ2luLXRvcDolPzYwPyUhaW1wb3J0YW50fS51LXAtdC02MHtwYWRkaW5nLXRvcDolPzYwPyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNjB7bWFyZ2luLXRvcDolPzYwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTYwe3BhZGRpbmctdG9wOiU/NjA/JSFpbXBvcnRhbnR9LnUtbS1yLTYwe21hcmdpbi1yaWdodDolPzYwPyUhaW1wb3J0YW50fS51LXAtci02MHtwYWRkaW5nLXJpZ2h0OiU/NjA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTYwe21hcmdpbi1yaWdodDolPzYwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNjB7cGFkZGluZy1yaWdodDolPzYwPyUhaW1wb3J0YW50fS51LW0tYi02MHttYXJnaW4tYm90dG9tOiU/NjA/JSFpbXBvcnRhbnR9LnUtcC1iLTYwe3BhZGRpbmctYm90dG9tOiU/NjA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS02MHttYXJnaW4tYm90dG9tOiU/NjA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNjB7cGFkZGluZy1ib3R0b206JT82MD8lIWltcG9ydGFudH0udS1tYXJnaW4tNjIsIC51LW0tNjJ7bWFyZ2luOiU/NjI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy02MiwgLnUtcC02MntwYWRkaW5nOiU/NjI/JSFpbXBvcnRhbnR9LnUtbS1sLTYye21hcmdpbi1sZWZ0OiU/NjI/JSFpbXBvcnRhbnR9LnUtcC1sLTYye3BhZGRpbmctbGVmdDolPzYyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTYye21hcmdpbi1sZWZ0OiU/NjI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTYye3BhZGRpbmctbGVmdDolPzYyPyUhaW1wb3J0YW50fS51LW0tdC02MnttYXJnaW4tdG9wOiU/NjI/JSFpbXBvcnRhbnR9LnUtcC10LTYye3BhZGRpbmctdG9wOiU/NjI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC02MnttYXJnaW4tdG9wOiU/NjI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNjJ7cGFkZGluZy10b3A6JT82Mj8lIWltcG9ydGFudH0udS1tLXItNjJ7bWFyZ2luLXJpZ2h0OiU/NjI/JSFpbXBvcnRhbnR9LnUtcC1yLTYye3BhZGRpbmctcmlnaHQ6JT82Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNjJ7bWFyZ2luLXJpZ2h0OiU/NjI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC02MntwYWRkaW5nLXJpZ2h0OiU/NjI/JSFpbXBvcnRhbnR9LnUtbS1iLTYye21hcmdpbi1ib3R0b206JT82Mj8lIWltcG9ydGFudH0udS1wLWItNjJ7cGFkZGluZy1ib3R0b206JT82Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTYye21hcmdpbi1ib3R0b206JT82Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS02MntwYWRkaW5nLWJvdHRvbTolPzYyPyUhaW1wb3J0YW50fS51LW1hcmdpbi02NCwgLnUtbS02NHttYXJnaW46JT82ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLTY0LCAudS1wLTY0e3BhZGRpbmc6JT82ND8lIWltcG9ydGFudH0udS1tLWwtNjR7bWFyZ2luLWxlZnQ6JT82ND8lIWltcG9ydGFudH0udS1wLWwtNjR7cGFkZGluZy1sZWZ0OiU/NjQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNjR7bWFyZ2luLWxlZnQ6JT82ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNjR7cGFkZGluZy1sZWZ0OiU/NjQ/JSFpbXBvcnRhbnR9LnUtbS10LTY0e21hcmdpbi10b3A6JT82ND8lIWltcG9ydGFudH0udS1wLXQtNjR7cGFkZGluZy10b3A6JT82ND8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTY0e21hcmdpbi10b3A6JT82ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC02NHtwYWRkaW5nLXRvcDolPzY0PyUhaW1wb3J0YW50fS51LW0tci02NHttYXJnaW4tcmlnaHQ6JT82ND8lIWltcG9ydGFudH0udS1wLXItNjR7cGFkZGluZy1yaWdodDolPzY0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC02NHttYXJnaW4tcmlnaHQ6JT82ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTY0e3BhZGRpbmctcmlnaHQ6JT82ND8lIWltcG9ydGFudH0udS1tLWItNjR7bWFyZ2luLWJvdHRvbTolPzY0PyUhaW1wb3J0YW50fS51LXAtYi02NHtwYWRkaW5nLWJvdHRvbTolPzY0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNjR7bWFyZ2luLWJvdHRvbTolPzY0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTY0e3BhZGRpbmctYm90dG9tOiU/NjQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTY1LCAudS1tLTY1e21hcmdpbjolPzY1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNjUsIC51LXAtNjV7cGFkZGluZzolPzY1PyUhaW1wb3J0YW50fS51LW0tbC02NXttYXJnaW4tbGVmdDolPzY1PyUhaW1wb3J0YW50fS51LXAtbC02NXtwYWRkaW5nLWxlZnQ6JT82NT8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC02NXttYXJnaW4tbGVmdDolPzY1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC02NXtwYWRkaW5nLWxlZnQ6JT82NT8lIWltcG9ydGFudH0udS1tLXQtNjV7bWFyZ2luLXRvcDolPzY1PyUhaW1wb3J0YW50fS51LXAtdC02NXtwYWRkaW5nLXRvcDolPzY1PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNjV7bWFyZ2luLXRvcDolPzY1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTY1e3BhZGRpbmctdG9wOiU/NjU/JSFpbXBvcnRhbnR9LnUtbS1yLTY1e21hcmdpbi1yaWdodDolPzY1PyUhaW1wb3J0YW50fS51LXAtci02NXtwYWRkaW5nLXJpZ2h0OiU/NjU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTY1e21hcmdpbi1yaWdodDolPzY1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNjV7cGFkZGluZy1yaWdodDolPzY1PyUhaW1wb3J0YW50fS51LW0tYi02NXttYXJnaW4tYm90dG9tOiU/NjU/JSFpbXBvcnRhbnR9LnUtcC1iLTY1e3BhZGRpbmctYm90dG9tOiU/NjU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS02NXttYXJnaW4tYm90dG9tOiU/NjU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNjV7cGFkZGluZy1ib3R0b206JT82NT8lIWltcG9ydGFudH0udS1tYXJnaW4tNjYsIC51LW0tNjZ7bWFyZ2luOiU/NjY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy02NiwgLnUtcC02NntwYWRkaW5nOiU/NjY/JSFpbXBvcnRhbnR9LnUtbS1sLTY2e21hcmdpbi1sZWZ0OiU/NjY/JSFpbXBvcnRhbnR9LnUtcC1sLTY2e3BhZGRpbmctbGVmdDolPzY2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTY2e21hcmdpbi1sZWZ0OiU/NjY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTY2e3BhZGRpbmctbGVmdDolPzY2PyUhaW1wb3J0YW50fS51LW0tdC02NnttYXJnaW4tdG9wOiU/NjY/JSFpbXBvcnRhbnR9LnUtcC10LTY2e3BhZGRpbmctdG9wOiU/NjY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC02NnttYXJnaW4tdG9wOiU/NjY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNjZ7cGFkZGluZy10b3A6JT82Nj8lIWltcG9ydGFudH0udS1tLXItNjZ7bWFyZ2luLXJpZ2h0OiU/NjY/JSFpbXBvcnRhbnR9LnUtcC1yLTY2e3BhZGRpbmctcmlnaHQ6JT82Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNjZ7bWFyZ2luLXJpZ2h0OiU/NjY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC02NntwYWRkaW5nLXJpZ2h0OiU/NjY/JSFpbXBvcnRhbnR9LnUtbS1iLTY2e21hcmdpbi1ib3R0b206JT82Nj8lIWltcG9ydGFudH0udS1wLWItNjZ7cGFkZGluZy1ib3R0b206JT82Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTY2e21hcmdpbi1ib3R0b206JT82Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS02NntwYWRkaW5nLWJvdHRvbTolPzY2PyUhaW1wb3J0YW50fS51LW1hcmdpbi02OCwgLnUtbS02OHttYXJnaW46JT82OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLTY4LCAudS1wLTY4e3BhZGRpbmc6JT82OD8lIWltcG9ydGFudH0udS1tLWwtNjh7bWFyZ2luLWxlZnQ6JT82OD8lIWltcG9ydGFudH0udS1wLWwtNjh7cGFkZGluZy1sZWZ0OiU/Njg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNjh7bWFyZ2luLWxlZnQ6JT82OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNjh7cGFkZGluZy1sZWZ0OiU/Njg/JSFpbXBvcnRhbnR9LnUtbS10LTY4e21hcmdpbi10b3A6JT82OD8lIWltcG9ydGFudH0udS1wLXQtNjh7cGFkZGluZy10b3A6JT82OD8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTY4e21hcmdpbi10b3A6JT82OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC02OHtwYWRkaW5nLXRvcDolPzY4PyUhaW1wb3J0YW50fS51LW0tci02OHttYXJnaW4tcmlnaHQ6JT82OD8lIWltcG9ydGFudH0udS1wLXItNjh7cGFkZGluZy1yaWdodDolPzY4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC02OHttYXJnaW4tcmlnaHQ6JT82OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTY4e3BhZGRpbmctcmlnaHQ6JT82OD8lIWltcG9ydGFudH0udS1tLWItNjh7bWFyZ2luLWJvdHRvbTolPzY4PyUhaW1wb3J0YW50fS51LXAtYi02OHtwYWRkaW5nLWJvdHRvbTolPzY4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNjh7bWFyZ2luLWJvdHRvbTolPzY4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTY4e3BhZGRpbmctYm90dG9tOiU/Njg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTcwLCAudS1tLTcwe21hcmdpbjolPzcwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctNzAsIC51LXAtNzB7cGFkZGluZzolPzcwPyUhaW1wb3J0YW50fS51LW0tbC03MHttYXJnaW4tbGVmdDolPzcwPyUhaW1wb3J0YW50fS51LXAtbC03MHtwYWRkaW5nLWxlZnQ6JT83MD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC03MHttYXJnaW4tbGVmdDolPzcwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC03MHtwYWRkaW5nLWxlZnQ6JT83MD8lIWltcG9ydGFudH0udS1tLXQtNzB7bWFyZ2luLXRvcDolPzcwPyUhaW1wb3J0YW50fS51LXAtdC03MHtwYWRkaW5nLXRvcDolPzcwPyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNzB7bWFyZ2luLXRvcDolPzcwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTcwe3BhZGRpbmctdG9wOiU/NzA/JSFpbXBvcnRhbnR9LnUtbS1yLTcwe21hcmdpbi1yaWdodDolPzcwPyUhaW1wb3J0YW50fS51LXAtci03MHtwYWRkaW5nLXJpZ2h0OiU/NzA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTcwe21hcmdpbi1yaWdodDolPzcwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNzB7cGFkZGluZy1yaWdodDolPzcwPyUhaW1wb3J0YW50fS51LW0tYi03MHttYXJnaW4tYm90dG9tOiU/NzA/JSFpbXBvcnRhbnR9LnUtcC1iLTcwe3BhZGRpbmctYm90dG9tOiU/NzA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS03MHttYXJnaW4tYm90dG9tOiU/NzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNzB7cGFkZGluZy1ib3R0b206JT83MD8lIWltcG9ydGFudH0udS1tYXJnaW4tNzIsIC51LW0tNzJ7bWFyZ2luOiU/NzI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy03MiwgLnUtcC03MntwYWRkaW5nOiU/NzI/JSFpbXBvcnRhbnR9LnUtbS1sLTcye21hcmdpbi1sZWZ0OiU/NzI/JSFpbXBvcnRhbnR9LnUtcC1sLTcye3BhZGRpbmctbGVmdDolPzcyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTcye21hcmdpbi1sZWZ0OiU/NzI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTcye3BhZGRpbmctbGVmdDolPzcyPyUhaW1wb3J0YW50fS51LW0tdC03MnttYXJnaW4tdG9wOiU/NzI/JSFpbXBvcnRhbnR9LnUtcC10LTcye3BhZGRpbmctdG9wOiU/NzI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC03MnttYXJnaW4tdG9wOiU/NzI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNzJ7cGFkZGluZy10b3A6JT83Mj8lIWltcG9ydGFudH0udS1tLXItNzJ7bWFyZ2luLXJpZ2h0OiU/NzI/JSFpbXBvcnRhbnR9LnUtcC1yLTcye3BhZGRpbmctcmlnaHQ6JT83Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNzJ7bWFyZ2luLXJpZ2h0OiU/NzI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC03MntwYWRkaW5nLXJpZ2h0OiU/NzI/JSFpbXBvcnRhbnR9LnUtbS1iLTcye21hcmdpbi1ib3R0b206JT83Mj8lIWltcG9ydGFudH0udS1wLWItNzJ7cGFkZGluZy1ib3R0b206JT83Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTcye21hcmdpbi1ib3R0b206JT83Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS03MntwYWRkaW5nLWJvdHRvbTolPzcyPyUhaW1wb3J0YW50fS51LW1hcmdpbi03NCwgLnUtbS03NHttYXJnaW46JT83ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLTc0LCAudS1wLTc0e3BhZGRpbmc6JT83ND8lIWltcG9ydGFudH0udS1tLWwtNzR7bWFyZ2luLWxlZnQ6JT83ND8lIWltcG9ydGFudH0udS1wLWwtNzR7cGFkZGluZy1sZWZ0OiU/NzQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNzR7bWFyZ2luLWxlZnQ6JT83ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNzR7cGFkZGluZy1sZWZ0OiU/NzQ/JSFpbXBvcnRhbnR9LnUtbS10LTc0e21hcmdpbi10b3A6JT83ND8lIWltcG9ydGFudH0udS1wLXQtNzR7cGFkZGluZy10b3A6JT83ND8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTc0e21hcmdpbi10b3A6JT83ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC03NHtwYWRkaW5nLXRvcDolPzc0PyUhaW1wb3J0YW50fS51LW0tci03NHttYXJnaW4tcmlnaHQ6JT83ND8lIWltcG9ydGFudH0udS1wLXItNzR7cGFkZGluZy1yaWdodDolPzc0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC03NHttYXJnaW4tcmlnaHQ6JT83ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTc0e3BhZGRpbmctcmlnaHQ6JT83ND8lIWltcG9ydGFudH0udS1tLWItNzR7bWFyZ2luLWJvdHRvbTolPzc0PyUhaW1wb3J0YW50fS51LXAtYi03NHtwYWRkaW5nLWJvdHRvbTolPzc0PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNzR7bWFyZ2luLWJvdHRvbTolPzc0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTc0e3BhZGRpbmctYm90dG9tOiU/NzQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTc1LCAudS1tLTc1e21hcmdpbjolPzc1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNzUsIC51LXAtNzV7cGFkZGluZzolPzc1PyUhaW1wb3J0YW50fS51LW0tbC03NXttYXJnaW4tbGVmdDolPzc1PyUhaW1wb3J0YW50fS51LXAtbC03NXtwYWRkaW5nLWxlZnQ6JT83NT8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC03NXttYXJnaW4tbGVmdDolPzc1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC03NXtwYWRkaW5nLWxlZnQ6JT83NT8lIWltcG9ydGFudH0udS1tLXQtNzV7bWFyZ2luLXRvcDolPzc1PyUhaW1wb3J0YW50fS51LXAtdC03NXtwYWRkaW5nLXRvcDolPzc1PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNzV7bWFyZ2luLXRvcDolPzc1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTc1e3BhZGRpbmctdG9wOiU/NzU/JSFpbXBvcnRhbnR9LnUtbS1yLTc1e21hcmdpbi1yaWdodDolPzc1PyUhaW1wb3J0YW50fS51LXAtci03NXtwYWRkaW5nLXJpZ2h0OiU/NzU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTc1e21hcmdpbi1yaWdodDolPzc1PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNzV7cGFkZGluZy1yaWdodDolPzc1PyUhaW1wb3J0YW50fS51LW0tYi03NXttYXJnaW4tYm90dG9tOiU/NzU/JSFpbXBvcnRhbnR9LnUtcC1iLTc1e3BhZGRpbmctYm90dG9tOiU/NzU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS03NXttYXJnaW4tYm90dG9tOiU/NzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNzV7cGFkZGluZy1ib3R0b206JT83NT8lIWltcG9ydGFudH0udS1tYXJnaW4tNzYsIC51LW0tNzZ7bWFyZ2luOiU/NzY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy03NiwgLnUtcC03NntwYWRkaW5nOiU/NzY/JSFpbXBvcnRhbnR9LnUtbS1sLTc2e21hcmdpbi1sZWZ0OiU/NzY/JSFpbXBvcnRhbnR9LnUtcC1sLTc2e3BhZGRpbmctbGVmdDolPzc2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTc2e21hcmdpbi1sZWZ0OiU/NzY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTc2e3BhZGRpbmctbGVmdDolPzc2PyUhaW1wb3J0YW50fS51LW0tdC03NnttYXJnaW4tdG9wOiU/NzY/JSFpbXBvcnRhbnR9LnUtcC10LTc2e3BhZGRpbmctdG9wOiU/NzY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC03NnttYXJnaW4tdG9wOiU/NzY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNzZ7cGFkZGluZy10b3A6JT83Nj8lIWltcG9ydGFudH0udS1tLXItNzZ7bWFyZ2luLXJpZ2h0OiU/NzY/JSFpbXBvcnRhbnR9LnUtcC1yLTc2e3BhZGRpbmctcmlnaHQ6JT83Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNzZ7bWFyZ2luLXJpZ2h0OiU/NzY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC03NntwYWRkaW5nLXJpZ2h0OiU/NzY/JSFpbXBvcnRhbnR9LnUtbS1iLTc2e21hcmdpbi1ib3R0b206JT83Nj8lIWltcG9ydGFudH0udS1wLWItNzZ7cGFkZGluZy1ib3R0b206JT83Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTc2e21hcmdpbi1ib3R0b206JT83Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS03NntwYWRkaW5nLWJvdHRvbTolPzc2PyUhaW1wb3J0YW50fS51LW1hcmdpbi03OCwgLnUtbS03OHttYXJnaW46JT83OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLTc4LCAudS1wLTc4e3BhZGRpbmc6JT83OD8lIWltcG9ydGFudH0udS1tLWwtNzh7bWFyZ2luLWxlZnQ6JT83OD8lIWltcG9ydGFudH0udS1wLWwtNzh7cGFkZGluZy1sZWZ0OiU/Nzg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNzh7bWFyZ2luLWxlZnQ6JT83OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNzh7cGFkZGluZy1sZWZ0OiU/Nzg/JSFpbXBvcnRhbnR9LnUtbS10LTc4e21hcmdpbi10b3A6JT83OD8lIWltcG9ydGFudH0udS1wLXQtNzh7cGFkZGluZy10b3A6JT83OD8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTc4e21hcmdpbi10b3A6JT83OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC03OHtwYWRkaW5nLXRvcDolPzc4PyUhaW1wb3J0YW50fS51LW0tci03OHttYXJnaW4tcmlnaHQ6JT83OD8lIWltcG9ydGFudH0udS1wLXItNzh7cGFkZGluZy1yaWdodDolPzc4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC03OHttYXJnaW4tcmlnaHQ6JT83OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTc4e3BhZGRpbmctcmlnaHQ6JT83OD8lIWltcG9ydGFudH0udS1tLWItNzh7bWFyZ2luLWJvdHRvbTolPzc4PyUhaW1wb3J0YW50fS51LXAtYi03OHtwYWRkaW5nLWJvdHRvbTolPzc4PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNzh7bWFyZ2luLWJvdHRvbTolPzc4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTc4e3BhZGRpbmctYm90dG9tOiU/Nzg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTgwLCAudS1tLTgwe21hcmdpbjolPzgwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctODAsIC51LXAtODB7cGFkZGluZzolPzgwPyUhaW1wb3J0YW50fS51LW0tbC04MHttYXJnaW4tbGVmdDolPzgwPyUhaW1wb3J0YW50fS51LXAtbC04MHtwYWRkaW5nLWxlZnQ6JT84MD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC04MHttYXJnaW4tbGVmdDolPzgwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC04MHtwYWRkaW5nLWxlZnQ6JT84MD8lIWltcG9ydGFudH0udS1tLXQtODB7bWFyZ2luLXRvcDolPzgwPyUhaW1wb3J0YW50fS51LXAtdC04MHtwYWRkaW5nLXRvcDolPzgwPyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtODB7bWFyZ2luLXRvcDolPzgwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTgwe3BhZGRpbmctdG9wOiU/ODA/JSFpbXBvcnRhbnR9LnUtbS1yLTgwe21hcmdpbi1yaWdodDolPzgwPyUhaW1wb3J0YW50fS51LXAtci04MHtwYWRkaW5nLXJpZ2h0OiU/ODA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTgwe21hcmdpbi1yaWdodDolPzgwPyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtODB7cGFkZGluZy1yaWdodDolPzgwPyUhaW1wb3J0YW50fS51LW0tYi04MHttYXJnaW4tYm90dG9tOiU/ODA/JSFpbXBvcnRhbnR9LnUtcC1iLTgwe3BhZGRpbmctYm90dG9tOiU/ODA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS04MHttYXJnaW4tYm90dG9tOiU/ODA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tODB7cGFkZGluZy1ib3R0b206JT84MD8lIWltcG9ydGFudH0udS1yZXNldC1udnVle2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXJ9LnUtdHlwZS1wcmltYXJ5LWxpZ2h0e2NvbG9yOiNlY2Y1ZmZ9LnUtdHlwZS13YXJuaW5nLWxpZ2h0e2NvbG9yOiNmZGY2ZWN9LnUtdHlwZS1zdWNjZXNzLWxpZ2h0e2NvbG9yOiNkYmYxZTF9LnUtdHlwZS1lcnJvci1saWdodHtjb2xvcjojZmVmMGYwfS51LXR5cGUtaW5mby1saWdodHtjb2xvcjojZjRmNGY1fS51LXR5cGUtcHJpbWFyeS1saWdodC1iZ3tiYWNrZ3JvdW5kLWNvbG9yOiNlY2Y1ZmZ9LnUtdHlwZS13YXJuaW5nLWxpZ2h0LWJne2JhY2tncm91bmQtY29sb3I6I2ZkZjZlY30udS10eXBlLXN1Y2Nlc3MtbGlnaHQtYmd7YmFja2dyb3VuZC1jb2xvcjojZGJmMWUxfS51LXR5cGUtZXJyb3ItbGlnaHQtYmd7YmFja2dyb3VuZC1jb2xvcjojZmVmMGYwfS51LXR5cGUtaW5mby1saWdodC1iZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmNGY0ZjV9LnUtdHlwZS1wcmltYXJ5LWRhcmt7Y29sb3I6IzJiODVlNH0udS10eXBlLXdhcm5pbmctZGFya3tjb2xvcjojZjI5MTAwfS51LXR5cGUtc3VjY2Vzcy1kYXJre2NvbG9yOiMxOGI1NjZ9LnUtdHlwZS1lcnJvci1kYXJre2NvbG9yOiNkZDYxNjF9LnUtdHlwZS1pbmZvLWRhcmt7Y29sb3I6IzgyODQ4YX0udS10eXBlLXByaW1hcnktZGFyay1iZ3tiYWNrZ3JvdW5kLWNvbG9yOiMyYjg1ZTR9LnUtdHlwZS13YXJuaW5nLWRhcmstYmd7YmFja2dyb3VuZC1jb2xvcjojZjI5MTAwfS51LXR5cGUtc3VjY2Vzcy1kYXJrLWJne2JhY2tncm91bmQtY29sb3I6IzE4YjU2Nn0udS10eXBlLWVycm9yLWRhcmstYmd7YmFja2dyb3VuZC1jb2xvcjojZGQ2MTYxfS51LXR5cGUtaW5mby1kYXJrLWJne2JhY2tncm91bmQtY29sb3I6IzgyODQ4YX0udS10eXBlLXByaW1hcnktZGlzYWJsZWR7Y29sb3I6I2EwY2ZmZn0udS10eXBlLXdhcm5pbmctZGlzYWJsZWR7Y29sb3I6I2ZjYmQ3MX0udS10eXBlLXN1Y2Nlc3MtZGlzYWJsZWR7Y29sb3I6IzcxZDVhMX0udS10eXBlLWVycm9yLWRpc2FibGVke2NvbG9yOiNmYWI2YjZ9LnUtdHlwZS1pbmZvLWRpc2FibGVke2NvbG9yOiNjOGM5Y2N9LnUtdHlwZS1wcmltYXJ5e2NvbG9yOiMyOTc5ZmZ9LnUtdHlwZS13YXJuaW5ne2NvbG9yOiNmOTB9LnUtdHlwZS1zdWNjZXNze2NvbG9yOiMxOWJlNmJ9LnUtdHlwZS1lcnJvcntjb2xvcjojZmEzNTM0fS51LXR5cGUtaW5mb3tjb2xvcjojOTA5Mzk5fS51LXR5cGUtcHJpbWFyeS1iZ3tiYWNrZ3JvdW5kLWNvbG9yOiMyOTc5ZmZ9LnUtdHlwZS13YXJuaW5nLWJne2JhY2tncm91bmQtY29sb3I6I2Y5MH0udS10eXBlLXN1Y2Nlc3MtYmd7YmFja2dyb3VuZC1jb2xvcjojMTliZTZifS51LXR5cGUtZXJyb3ItYmd7YmFja2dyb3VuZC1jb2xvcjojZmEzNTM0fS51LXR5cGUtaW5mby1iZ3tiYWNrZ3JvdW5kLWNvbG9yOiM5MDkzOTl9LnUtbWFpbi1jb2xvcntjb2xvcjojMzAzMTMzfS51LWNvbnRlbnQtY29sb3J7Y29sb3I6IzYwNjI2Nn0udS10aXBzLWNvbG9ye2NvbG9yOiM5MDkzOTl9LnUtbGlnaHQtY29sb3J7Y29sb3I6I2MwYzRjY311bmktcGFnZS1ib2R5e2NvbG9yOiMzMDMxMzM7Zm9udC1zaXplOiU/Mjg/JX1cclxuLyogc3RhcnQtLeWOu+mZpHdlYmtpdOeahOm7mOiupOagt+W8jy0tc3RhcnQgKi8udS1maXgtaW9zLWFwcGVhcmFuY2V7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9XHJcbi8qIGVuZC0t5Y676Zmkd2Via2l055qE6buY6K6k5qC35byPLS1lbmQgKi9cclxuLyogc3RhcnQtLWljb27lm77moIflpJblsYLlpZfkuIDkuKp2aWV377yM6K6p5YW26L6+5Yiw5pu05aW955qE5Z6C55u05bGF5Lit55qE5pWI5p6cLS1zdGFydCAqLy51LWljb24td3JhcHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfVxyXG4vKiBlbmQtaWNvbuWbvuagh+WkluWxguWll+S4gOS4qnZpZXfvvIzorqnlhbbovr7liLDmm7Tlpb3nmoTlnoLnm7TlsYXkuK3nmoTmlYjmnpwtLWVuZCAqL1xyXG4vKiBzdGFydC0taVBob25lWOW6lemDqOWuieWFqOWMuuWumuS5iS0tc3RhcnQgKi8uc2FmZS1hcmVhLWluc2V0LWJvdHRvbXtwYWRkaW5nLWJvdHRvbTowO3BhZGRpbmctYm90dG9tOmNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO3BhZGRpbmctYm90dG9tOmVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKX1cclxuLyogZW5kLWlQaG9uZVjlupXpg6jlronlhajljLrlrprkuYktLWVuZCAqL1xyXG4vKiBzdGFydC0t5ZCE56eNaG92ZXLngrnlh7vlj43ppojnm7jlhbPnmoTnsbvlkI0tc3RhcnQgKi8udS1ob3Zlci1jbGFzc3tvcGFjaXR5Oi42fS51LWNlbGwtaG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjdmOGY5IWltcG9ydGFudH1cclxuLyogZW5kLS3lkITnp41ob3ZlcueCueWHu+WPjemmiOebuOWFs+eahOexu+WQjS0tZW5kICovXHJcbi8qIHN0YXJ0LS3mlofmnKzooYzmlbDpmZDliLYtLXN0YXJ0ICovLnUtbGluZS0xe292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30udS1saW5lLTJ7LXdlYmtpdC1saW5lLWNsYW1wOjJ9LnUtbGluZS0zey13ZWJraXQtbGluZS1jbGFtcDozfS51LWxpbmUtNHstd2Via2l0LWxpbmUtY2xhbXA6NH0udS1saW5lLTV7LXdlYmtpdC1saW5lLWNsYW1wOjV9LnUtbGluZS0yLCAudS1saW5lLTMsIC51LWxpbmUtNCwgLnUtbGluZS01e292ZXJmbG93OmhpZGRlbjt3b3JkLWJyZWFrOmJyZWFrLWFsbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsfVxyXG4vKiBlbmQtLeaWh+acrOihjOaVsOmZkOWIti0tZW5kICovXHJcbi8qIHN0YXJ0LS1SZXRpbmEg5bGP5bmV5LiL55qEIDFweCDovrnmoYYtLXN0YXJ0ICovLnUtYm9yZGVyLFxyXG4udS1ib3JkZXItYm90dG9tLFxyXG4udS1ib3JkZXItbGVmdCxcclxuLnUtYm9yZGVyLXJpZ2h0LFxyXG4udS1ib3JkZXItdG9wLFxyXG4udS1ib3JkZXItdG9wLWJvdHRvbXtwb3NpdGlvbjpyZWxhdGl2ZX0udS1ib3JkZXItYm90dG9tOmFmdGVyLFxyXG4udS1ib3JkZXItbGVmdDphZnRlcixcclxuLnUtYm9yZGVyLXJpZ2h0OmFmdGVyLFxyXG4udS1ib3JkZXItdG9wLWJvdHRvbTphZnRlcixcclxuLnUtYm9yZGVyLXRvcDphZnRlcixcclxuLnUtYm9yZGVyOmFmdGVye2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtwb2ludGVyLWV2ZW50czpub25lO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCAwO3RyYW5zZm9ybS1vcmlnaW46MCAwO3dpZHRoOjE5OS44JTtoZWlnaHQ6MTk5LjclOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC41KTt0cmFuc2Zvcm06c2NhbGUoLjUpO2JvcmRlcjowIHNvbGlkICNlNGU3ZWQ7ei1pbmRleDoyfS51LWJvcmRlci10b3A6YWZ0ZXJ7Ym9yZGVyLXRvcC13aWR0aDoxcHh9LnUtYm9yZGVyLWxlZnQ6YWZ0ZXJ7Ym9yZGVyLWxlZnQtd2lkdGg6MXB4fS51LWJvcmRlci1yaWdodDphZnRlcntib3JkZXItcmlnaHQtd2lkdGg6MXB4fS51LWJvcmRlci1ib3R0b206YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHh9LnUtYm9yZGVyLXRvcC1ib3R0b206YWZ0ZXJ7Ym9yZGVyLXdpZHRoOjFweCAwfS51LWJvcmRlcjphZnRlcntib3JkZXItd2lkdGg6MXB4fVxyXG4vKiBlbmQtLVJldGluYSDlsY/luZXkuIvnmoQgMXB4IOi+ueahhi0tZW5kICovXHJcbi8qIHN0YXJ0LS1jbGVhcmZpeC0tc3RhcnQgKi8udS1jbGVhcmZpeDphZnRlcixcclxuLmNsZWFyZml4OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTp0YWJsZTtjbGVhcjpib3RofVxyXG4vKiBlbmQtLWNsZWFyZml4LS1lbmQgKi9cclxuLyogc3RhcnQtLemrmOaWr+aooeezinRhYmJhcuW6lemDqOWkhOeQhi0tc3RhcnQgKi8udS1ibHVyLWVmZmVjdC1pbnNldHt3aWR0aDolPzc1MD8lO2hlaWdodDp2YXIoLS13aW5kb3ctYm90dG9tKTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9XHJcbi8qIGVuZC0t6auY5pav5qih57OKdGFiYmFy5bqV6YOo5aSE55CGLS1lbmQgKi9cclxuLyogc3RhcnQtLeaPkOWNh0g156uvdW5pLnRvYXN0KCnnmoTlsYLnuqfvvIzpgb/lhY3ooqt1Vmlld+eahG1vZGFs562J6YGu55uWLS1zdGFydCAqL3VuaS10b2FzdHt6LWluZGV4OjEwMDkwfXVuaS10b2FzdCAudW5pLXRvYXN0e3otaW5kZXg6MTAwOTB9XHJcbi8qIGVuZC0t5o+Q5Y2HSDXnq691bmkudG9hc3QoKeeahOWxgue6p++8jOmBv+WFjeiiq3VWaWV355qEbW9kYWznrYnpga7nm5YtLWVuZCAqL1xyXG4vKiBzdGFydC0t5Y676ZmkYnV0dG9u55qE5omA5pyJ6buY6K6k5qC35byPLS1zdGFydCAqLy51LXJlc2V0LWJ1dHRvbntwYWRkaW5nOjA7Zm9udC1zaXplOmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Y29sb3I6aW5oZXJpdH0udS1yZXNldC1idXR0b246OmFmdGVye2JvcmRlcjpub25lfVxyXG4vKiBlbmQtLeWOu+mZpGJ1dHRvbueahOaJgOaciem7mOiupOagt+W8jy0tZW5kICovXHJcbi8qIEg155qE5pe25YCZ77yM6ZqQ6JeP5rua5Yqo5p2hICovOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmU7d2lkdGg6MCFpbXBvcnRhbnQ7aGVpZ2h0OjAhaW1wb3J0YW50Oy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LnBhZ2V7bWFyZ2luOjA7cGFkZGluZzowO2ZvbnQtc2l6ZTolPzI4PyV9LnN1Ym1pdF9idXR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMzE1ZGVnLCMxOTFiNWMsIzE5MWI1Yyk7Ym9yZGVyLXJhZGl1czolPzUwPyU7Ym94LXNoYWRvdzolPzA/JSAlPzI/JSAlPzE2PyUgJT8wPyUgcmdiYSgyMTYsNjAsMTAwLC42KTtmb250LXdlaWdodDo1MDA7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOiU/MzU/JSAwfS50aXRfYm9ye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDMxNWRlZywjZDgzYzY0LCNkODNjNjQpO3dpZHRoOiU/OD8lO2hlaWdodDolPzI4PyU7Ym9yZGVyLXJhZGl1czolPzY/JTttYXJnaW4tcmlnaHQ6JT8xNj8lfS5uYXZ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOiU/MjU/JTt3aWR0aDoxMDAlfS5uYXZfbGVmdHtmb250LXNpemU6JT8zMD8lO3dpZHRoOjI1JX0ubmF2X3RpdHt3aWR0aDo1MCU7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOiU/Mjg/JTtmb250LWZhbWlseTpQaW5nRmFuZ1NDLU1lZGl1bSxQaW5nRmFuZyBTQztmb250LXdlaWdodDo1MDA7Y29sb3I6IzMzM30ubmF2X3JpZ2h0e2NvbG9yOiM4YzhjOGM7d2lkdGg6MjUlO3RleHQtYWxpZ246cmlnaHR9LmlucHV0e3dpZHRoOjkyJTttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO2JveC1zaGFkb3c6JT8wPyUgJT8yPyUgJT8xMj8lICU/MD8lIHJnYmEoMCwwLDAsLjA4KTtwYWRkaW5nOiU/MTA/JSAwIDAgMDtib3JkZXItcmFkaXVzOiU/MTY/JTttYXJnaW4tdG9wOiU/MzI/JX0uaW5wdXRfdGl0e2ZvbnQtc2l6ZTolPzMyPyU7Zm9udC13ZWlnaHQ6NTUwO3BhZGRpbmctbGVmdDolPzIwPyU7d2lkdGg6OTUlO21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uaW5wdXRfYm94e3dpZHRoOjgyJTttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO21hcmdpbi10b3A6JT8yND8lO3BhZGRpbmctYm90dG9tOiU/NTA/JX0uaW5wdXRfYm94IHVuaS1pbnB1dHtib3JkZXI6JT8yPyUgc29saWQgI2Q2ZDZkNjtwYWRkaW5nOiU/MjU/JTtib3JkZXItcmFkaXVzOiU/OD8lO2ZvbnQtc2l6ZTolPzI4PyU7Y29sb3I6I2Q2ZDZkNn0ubW9kYWx7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzolPzIwPyUgMH0ubW9kYWxfdGl0e3BhZGRpbmc6JT8yMD8lIDA7Zm9udC1zaXplOiU/Mjg/JTtmb250LWZhbWlseTpQaW5nRmFuZ1NDLVJlZ3VsYXIsUGluZ0ZhbmcgU0M7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiMzMzN9Lm1vZGFsX21zZ3tmb250LXNpemU6JT8yND8lO2ZvbnQtZmFtaWx5OlBpbmdGYW5nU0MtUmVndWxhcixQaW5nRmFuZyBTQztmb250LXdlaWdodDo0MDA7Y29sb3I6IzhjOGM4YztwYWRkaW5nLWJvdHRvbTolPzIwPyU7cGFkZGluZzolPzA/JSAlPzEwPyV9LmVtcHR5e3BhZGRpbmctdG9wOiU/MTgwPyV9JywiIl0pLHQuZXhwb3J0cz1ufSxmYzVkOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwLGEoImM5NzUiKSxhKCIxNGQ5IiksYSgiZDNiNyIpLGEoIjE1OWIiKTt2YXIgaT1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxuPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sYT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06ImJyYWNrZXRzIixpPW4/Ij8iOiIiLGU9W107LTE9PVsiaW5kaWNlcyIsImJyYWNrZXRzIiwicmVwZWF0IiwiY29tbWEiXS5pbmRleE9mKGEpJiYoYT0iYnJhY2tldHMiKTt2YXIgcj1mdW5jdGlvbihuKXt2YXIgaT10W25dO2lmKFsiIix2b2lkIDAsbnVsbF0uaW5kZXhPZihpKT49MClyZXR1cm4iY29udGludWUiO2lmKGkuY29uc3RydWN0b3I9PT1BcnJheSlzd2l0Y2goYSl7Y2FzZSJpbmRpY2VzIjpmb3IodmFyIHI9MDtyPGkubGVuZ3RoO3IrKyllLnB1c2gobisiWyIrcisiXT0iK2lbcl0pO2JyZWFrO2Nhc2UiYnJhY2tldHMiOmkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5wdXNoKG4rIltdPSIrdCl9KSk7YnJlYWs7Y2FzZSJyZXBlYXQiOmkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5wdXNoKG4rIj0iK3QpfSkpO2JyZWFrO2Nhc2UiY29tbWEiOnZhciBvPSIiO2kuZm9yRWFjaCgoZnVuY3Rpb24odCl7bys9KG8/IiwiOiIiKSt0fSkpLGUucHVzaChuKyI9IitvKTticmVhaztkZWZhdWx0OmkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5wdXNoKG4rIltdPSIrdCl9KSl9ZWxzZSBlLnB1c2gobisiPSIraSl9O2Zvcih2YXIgbyBpbiB0KXIobyk7cmV0dXJuIGUubGVuZ3RoP2krZS5qb2luKCImIik6IiJ9O24uZGVmYXVsdD1pfSxmYzY2OmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpO3ZhciBpPWEoIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06ImF1dG8iLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJycHgiO3JldHVybiB0PVN0cmluZyh0KSxlLmRlZmF1bHQubnVtYmVyKHQpPyIiLmNvbmNhdCh0KS5jb25jYXQobik6dH0sYSgiOTlhZiIpO3ZhciBlPWkoYSgiOTU0YSIpKX19KTs="}},"time_used":1075,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":1075,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"breeze-shopping.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"breeze-shopping.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/icon/tab/49.png","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://breeze-shopping.com/","date":"2026-07-27T04:15:49.598Z","timestamp":1785125749598,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"breeze-shopping.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 15 Jul 2026 01:06:08 GMT","end":"Tue, 13 Oct 2026 01:06:07 GMT"},"fingerprint":{"sha1":"FC:2A:A7:4D:FF:04:7D:30:4B:17:B3:A5:DB:B5:51:EC:F4:17:89:0B","sha256":"6A:08:9D:6F:EB:0E:C9:60:FA:2A:59:01:4E:AE:44:51:20:B4:4D:8B:55:ED:47:9F:26:7D:74:49:BF:79:D4:02"}}},"request":{"raw":"GET /h5/static/icon/tab/49.png HTTP/1.1\r\nHost: breeze-shopping.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://breeze-shopping.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 04:15:49 GMT\r\ncontent-type: image/png\r\ncontent-length: 2749\r\nlast-modified: Wed, 15 Jul 2026 02:04:11 GMT\r\nvary: Accept-Encoding\r\netag: \"6a56ea9b-abd\"\r\nexpires: Mon, 03 Aug 2026 04:15:49 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":2749,"size_decoded":3305,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"84d67b9adfd11bec4bb5aa5fd269546c","sha1":"b07d2b18eb09245a6d6b9a175b643f1e30bdbb29","sha256":"e866df2f3c30453ad03854f7c2431a7f445ad8270b55f1a281b12bde5995734a","sha512":"fd2fc8807da787289679801eb3e809715b72787019c88390f7bde5dbba7e225e76c9474d5ad953c485bc29bfb7bbf1ed5faa4e07dab9a7120b4d4afb3b608e09","ssdeep":"","tlshash":"c5514b27354bfd68974cf051a460a082f49216ac0859d4dfe689402d71b7875b6ab9fc","first_seen":"2026-02-01T06:56:24.371566Z","last_seen":"2026-07-27T14:18:45.086779Z","times_seen":14,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAHYAAAB2AH6XKZyAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAACkpJREFUeJztm3uMVNUdxz+/e+/M3J1ddkEFAUGRx7IIqK2JoAJGa5s0rWhrffMQNRBRY2htbKhNMLVNY0y1tYrWBxWxKrba98NqtcX6ak0RhX0AYqMolMfCsrM7d+6959c/hoHdZWb3zss1qd9kkr3n/M7v/L6/+zvn/M65Z2EQ4Te7Z/tt7pzBtMEZzM5V+CMGA9QNlg3WYHWsigA1QHKwbIAqOEC30pBpdZ/LNCduqJROf1Pi85mWxE2V0tcTUmmF3S3uiTZsAXxj61R3krc1n5wq4re6BtB4U7rgi9C3a4/1Y2EbUB8L7VEyNbWjkvZWPAJqmtLbgFVAwg65s1x9fiz8HlAvqs9WmjxUaQ6I+fa3gQ5FLvTb3PPyyYigwH8VCpLKbEp+FlgEeKHDN6tha1UcINNTO0XluwBquEs1fz8+1mfixjotX50qgmV+BFgKdxcaSmXbWg2lALqRuG+7bwFjYl56pJxCqpj23ZvcE2yL9xQ+ipOeLE0cqJKp1YNuY2iqJTm61PZeizsv01Z7aiVtqgi85vj0TLN7lW4kXo6ei9dq/OK1WpaOclHSEMi0uM8DnwPaLNVvOFO830Vpd+0aHWMILhW4QJUmhOEAKLsQmlF+HRjnqdULZXsUfbqx/ijf8W9D9WpVmZ+Y0v1MsVxKc8CmmpmIPoxwEoDCn7HMskRjpjmf/OK12uB7wa0i3AC4A6hPA/d4OLc/Pk868gnoizj+6MQSVG4DjgYCo/pVd4r322K5lDwJ6os4/sjEdYisAI4CPBPqNHeqt6Wn3DWPpSeq2L8BphTZxWZjmbk/uyLR0rPQa403iVpPA9MOMviLBmZZYmpmYyk8Sl4G5RyC+BTvnpjGGhH5CcK/E058X0+Zg+Rfo3jyAJMsY61b+GR6Qi+Djf1lYBrCFoNeEJ+c/kKp5KGKy+CVa7Q+QfA60FSmqk1u3Jlx3yXSCaCbSQTqznYkvU4m4ZVrZ9V2gwkNllMC+cYRynmTDUNczRWd1J0Jbsk9yCS8WGP6+UqQhypFwFWrdKQVC94lu92NjDNOVC46JUSALbuFlS/buaouy3LGP3SF7Ky0rVWJACvmX0wZ5AHidq/qpBr/ogqZ1wtVcYCKnF+MfF/yXb7wi/W9TVOK0xkVkY/EdDP1GZM8F9VYr3LMBrfJa+1ZJnp41q+JKYtmGIbVKGvX22ze1XvU5SN//8sW2/f3HZ1a7mSaF5Ed4Ac13xcx1/ctF6RDlaEHt7egKjwejMjVTx8NE47JVl01I+Tulxx2dWbropMHVEahKogogN9Sc5aidwCJPpItscnphSKEUXhFdoBY+pQqw6XvxKmsP0T+MEzuj//sFYIQHBtcBxbNCLj7JYfTju9NPpURHvhHAfIAgsmRP9jvTIQz80hO4V2uB/ZH4hVFqFhcvSazDWRc7vmMccrXTj38Qj7cD6MaiE4eEJWtD893JuaeVbH8zbUnE2qv6TKwdEdycnekvQRU7Vhc3gHG5Z5efU8YM1SYOS77Akc3HJbs9uHBV/snn1Wp7/R6FAyk1pdraVVWAdvf81zfsmc22Gzb25tktw8PvGLzfvvAgeh2vPN65Sw8jIoOgdXzm84PRZZ7sWGnvznr91YY6/29o6FGWXZ2NsuLEvY5WJkOxv7hS9RqRyZpBw8uXdtWsSP3sh2wdkHjcV3YPwhV5hqkPlf+wfhreH/SjUfID61Rmo6Flp2wrzta98PeuouG1kcPPccsqHHMrqTFFYvXNj9fjv0lO+CRBSfNU2W5QfLu9IyVYOPpD9PZMK1064DE7g2MfOlaxGSOqBMB1yZ07eC5G55unSsQFKu/KAc8umDayYHRFSr6RUUGOtjATwxnw8zVZNxRxdoFgJPazqgXFmKndw8sa4HrmP1ujJuXPtH8UNQ+IjvgT0saf7Urbc9NG6sopwXxYbSeeicdw/KefhdEYvcGRrzy9UjkcxCBWkc5sT58+yurWk+O1CaK0Lrrmk4D808ECVXY7QkdgUWo0XxhrBg7x17GBxOuJYg19CtrZ/ZRv+kh6rc8hRg/kv6YBUMThvENIUmHbFZmmDHn/rY3Bmo7IAMFeXlp49+BWX3rOgOhPWPRFVpHpIL5EDh17Bs+h70jzqarbiJ+4hiMgt29i3jHVpLbX6Lmo3VYfueAuiyB2pgyMhkypi5v76/Nuq/tTKF/0wZ0wLrrG+ejrO5PxgB7PWG/b+NHjIocPoqUsB5G3FKOrjGMrzd9t8xHQFXmz1nZuqY/mX6t/dfi0cnu2JBmVI+PamBXAO2+TWcgaIQRFsUBtgV1McPYWsPwZJRYO4TtAbGmc+7bWDCk+k2Fu50hy4shD5B0IOmEgNDuQ3vGxjdH7paiwHVgRE3IuAbDAC+7EI5zNLgF+E4hgYKv6G9LJ4y1cFpAy77B4RnY41l0BhamT5d9I8AWGJJQxtf5NLgVSVTTgbGmnHN/y3v5KgtGgIX1w0qQB0hYMLrGAIYDgbDHs/BMjyEiUOvAyNqA4w9NaBXL0l3HNncAl+SrzNvLuuubGsG8jZb37a8/+AZ2eRb7uuDEBkNNNa9rCRmwps++t6Wtb1Xe3eDse1vaMImRKEuADdWwKWZBrW0YVRNWk3wrKt+ywnBsPvJQRCLkqbkvLpwuFYrMUOHDFBgv5LhhFk5xCWZBKOAF7HBt5s9a2fbCQHlApPOA2Stb3tzRxbMfpGBPGtKRTtv6x14vmz+oQnuqlDWiNzKBsjelvL/HsHO/eWv2yrbnByIPRZ4IGaAzyP5iFtTFoM7JZmXFwAuz+UIOKU8Z4oIbK9wmrz0GUhnlQNqQ6aFPigjTkkefb6Ddg31edr2uc7I5wEBQoP3InS17UyGjhw682iuQ9pVUWkllFC0zeMqefhToDrI/R7JOGBLLbk/zIRVkI6AvMgF0ppW6Amt/aKDTMxxIK0EFhmAOFZ1/A4UOHw74kLAPR0UuIo1mI6YQ2rsMybiNddB5CqQzSmdaSfkaYUQXj6osQEp2okyHYGUgaWejIhVkZ/9CCA3s6zYMcYXOdPaNh6awfCVQ9dviRg9PnFGmpgPdSkd3FV51AXyst8Wj0Pr4qGcxaNflPyn41AGDbcBg41MHDLYBg43/ewdEzgOMho/Y4ijo1QqN1TSqVIhIBuEFQm6O3KaUjh5f2HSaMWaxCFcCtaXoyEErsbe2+ECFe+Y/sfVO6XE7JQrKOoVYc+XEenGsy1RZAJxVio6SHSB4IvJX34/dtOiXzZtLU1LBk8c1V048SW1rgcA1wDFR2xXpAMWSFkFun/fk5p8XbWQeVPyO0I9vnJg4ep89V0UXk/2fgn77iOIAFbosS55J0bVsyRMfRv9aGgFVuywN8MSiCWNN6Fyh6HXACflkCjpAMCLyBphb5z357gvVsrGqDshhxQqsSe82nqvCYpQLgUOHX30dICJ71bYe7aobcuuSn77ZVW3bPhYH9MSqq6aOdExwqaDXANM1HaKW+AKvODG55fLHNlflMtQnDgry+MJJc9ZcPulGHcSE7H/sfw/mq3p2dAAAAABJRU5ErkJggg=="}},"time_used":268,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":268,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"breeze-shopping.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"breeze-shopping.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/icon/tab/50.png","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://breeze-shopping.com/","date":"2026-07-27T04:15:49.600Z","timestamp":1785125749600,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"breeze-shopping.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 15 Jul 2026 01:06:08 GMT","end":"Tue, 13 Oct 2026 01:06:07 GMT"},"fingerprint":{"sha1":"FC:2A:A7:4D:FF:04:7D:30:4B:17:B3:A5:DB:B5:51:EC:F4:17:89:0B","sha256":"6A:08:9D:6F:EB:0E:C9:60:FA:2A:59:01:4E:AE:44:51:20:B4:4D:8B:55:ED:47:9F:26:7D:74:49:BF:79:D4:02"}}},"request":{"raw":"GET /h5/static/icon/tab/50.png HTTP/1.1\r\nHost: breeze-shopping.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://breeze-shopping.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 04:15:49 GMT\r\ncontent-type: image/png\r\ncontent-length: 1732\r\nlast-modified: Wed, 15 Jul 2026 02:04:11 GMT\r\nvary: Accept-Encoding\r\netag: \"6a56ea9b-6c4\"\r\nexpires: Mon, 03 Aug 2026 04:15:49 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":1732,"size_decoded":2288,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"7bc89ba9b856f97a4c1969709b7b1867","sha1":"fa6d698a124cbc5f085e532c17320357d75f9e91","sha256":"e6e80eeaca92ea87ae4db96fcadce083a10719535d122aaa7762b6a91bca5b90","sha512":"4db483e7ce6ac56752c6f1e800d2b33de82f61caa1ad1592cb226d2a9bcdffbad813c29004ad1ad59afe05eef773a9f51160fcc562f4a536cf552f3b94629a14","ssdeep":"","tlshash":"c7311a65e2c93578af49717b3ae1033df5ebc3d5648436376d4908b850159c5900d3e9","first_seen":"2026-02-01T06:56:24.372543Z","last_seen":"2026-07-27T14:18:45.087333Z","times_seen":14,"resource_available":false,"data":"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"}},"time_used":267,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":267,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"breeze-shopping.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"breeze-shopping.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/index.97465e7b.css","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://breeze-shopping.com/","date":"2026-07-27T04:15:48.003Z","timestamp":1785125748003,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"breeze-shopping.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 15 Jul 2026 01:06:08 GMT","end":"Tue, 13 Oct 2026 01:06:07 GMT"},"fingerprint":{"sha1":"FC:2A:A7:4D:FF:04:7D:30:4B:17:B3:A5:DB:B5:51:EC:F4:17:89:0B","sha256":"6A:08:9D:6F:EB:0E:C9:60:FA:2A:59:01:4E:AE:44:51:20:B4:4D:8B:55:ED:47:9F:26:7D:74:49:BF:79:D4:02"}}},"request":{"raw":"GET /h5/static/index.97465e7b.css HTTP/1.1\r\nHost: breeze-shopping.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://breeze-shopping.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 04:15:48 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 15 Jul 2026 02:04:11 GMT\r\nvary: Accept-Encoding, Accept-Encoding\r\netag: W/\"6a56ea9b-17894\"\r\nexpires: Mon, 03 Aug 2026 04:15:48 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\ncontent-encoding: gzip\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":96404,"size_decoded":30236,"mime_type":"text/css","magic":"ASCII text, with very long lines (65536), with no line terminators","md5":"97a29764a1df91af2f287e5641b1efeb","sha1":"887cbd5cd4630164c4ac6b8738d8a32459c920d6","sha256":"f6789ee8a50f44f18ba717956bd34c4cd17b1d658443e92408976907b83a0242","sha512":"b54537789bc819ff8b1edd39e579ad2c5731e399379e817f3bedbc3105853d87891bb19dc0373f4d3af03554173ef4c486e5f6b85cab3b8cd9edcb8b5624f67a","ssdeep":"1536:OlIApuK7hmVmb2RS1Wu3xdyn37ehgnKhlvbc:VApuK7hmVrS1Wu3iy6nKPI","tlshash":"aa93f73719012e39e52bcd26b6c1ab5a1e61c033e15307adfba47628cbcf9c9167b345","first_seen":"2023-07-13T05:53:18Z","last_seen":"2026-07-27T14:18:45.089381Z","times_seen":1067,"resource_available":false,"data":"dW5pLXRhYmJhcntkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO3otaW5kZXg6OTk4fXVuaS10YWJiYXIgLnVuaS10YWJiYXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7ei1pbmRleDo5OTg7Ym94LXNpemluZzpib3JkZXItYm94fXVuaS10YWJiYXIudW5pLXRhYmJhci1ib3R0b20sdW5pLXRhYmJhci51bmktdGFiYmFyLWJvdHRvbSAudW5pLXRhYmJhcix1bmktdGFiYmFyLnVuaS10YWJiYXItdG9wLHVuaS10YWJiYXIudW5pLXRhYmJhci10b3AgLnVuaS10YWJiYXJ7cG9zaXRpb246Zml4ZWQ7bGVmdDp2YXIoLS13aW5kb3ctbGVmdCk7cmlnaHQ6dmFyKC0td2luZG93LXJpZ2h0KX0udW5pLWFwcC0tc2hvd2xheW91dCt1bmktdGFiYmFyLnVuaS10YWJiYXItYm90dG9tLC51bmktYXBwLS1zaG93bGF5b3V0K3VuaS10YWJiYXIudW5pLXRhYmJhci1ib3R0b20gLnVuaS10YWJiYXIsLnVuaS1hcHAtLXNob3dsYXlvdXQrdW5pLXRhYmJhci51bmktdGFiYmFyLXRvcCwudW5pLWFwcC0tc2hvd2xheW91dCt1bmktdGFiYmFyLnVuaS10YWJiYXItdG9wIC51bmktdGFiYmFye2xlZnQ6dmFyKC0td2luZG93LW1hcmdpbik7cmlnaHQ6dmFyKC0td2luZG93LW1hcmdpbil9dW5pLXRhYmJhci51bmktdGFiYmFyLWJvdHRvbSAudW5pLXRhYmJhcntib3R0b206MDtwYWRkaW5nLWJvdHRvbTowO3BhZGRpbmctYm90dG9tOmNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO3BhZGRpbmctYm90dG9tOmVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKX11bmktdGFiYmFyIC51bmktdGFiYmFyfi51bmktcGxhY2Vob2xkZXJ7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjA7bWFyZ2luLWJvdHRvbTpjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTttYXJnaW4tYm90dG9tOmVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKX11bmktdGFiYmFyIC51bmktdGFiYmFyICp7Ym94LXNpemluZzpib3JkZXItYm94fXVuaS10YWJiYXIgLnVuaS10YWJiYXJfX2l0ZW17LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTtmbGV4OjE7Zm9udC1zaXplOjA7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCl9dW5pLXRhYmJhciAudW5pLXRhYmJhcl9fYmQsdW5pLXRhYmJhciAudW5pLXRhYmJhcl9faXRlbXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsfXVuaS10YWJiYXIgLnVuaS10YWJiYXJfX2Jke3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtjdXJzb3I6cG9pbnRlcn11bmktdGFiYmFyIC51bmktdGFiYmFyX19pY29ue3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6NXB4fXVuaS10YWJiYXIgLnVuaS10YWJiYXJfX2ljb24udW5pLXRhYmJhcl9faWNvbl9fZGlmZnttYXJnaW4tdG9wOjA7d2lkdGg6MzRweDtoZWlnaHQ6MzRweH11bmktdGFiYmFyIC51bmktdGFiYmFyX19pY29uIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlfXVuaS10YWJiYXIgLnVuaS10YWJiYXJfX2ljb25mb250e2ZvbnQtZmFtaWx5OlVuaVRhYmJhckljb25Gb250fXVuaS10YWJiYXIgLnVuaS10YWJiYXJfX2xhYmVse3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxMHB4fXVuaS10YWJiYXIgLnVuaS10YWJiYXItYm9yZGVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxcHg7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVZKC41KTt0cmFuc2Zvcm06c2NhbGVZKC41KX11bmktdGFiYmFyIC51bmktdGFiYmFyX19yZWRkb3R7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDowO3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjojZjQzNTMwO2NvbG9yOiNmZmY7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDQwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSg0MCUpfXVuaS10YWJiYXIgLnVuaS10YWJiYXJfX2JhZGdle3dpZHRoOmF1dG87aGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjE2cHg7bWluLXdpZHRoOjE2cHg7cGFkZGluZzowIDJweDtmb250LXNpemU6MTJweDt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXB9dW5pLXRhYmJhciAudW5pLXRhYmJhcl9fbWlkey13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9dW5pLWNvbnRlbnQsdW5pLXRhYmJhciAudW5pLXRhYmJhcl9fbWlke2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fXVuaS1jb250ZW50ey13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MSAwIGF1dG87ZmxleDoxIDAgYXV0bztoZWlnaHQ6MTAwJX11bmktbWFpbnstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO3dpZHRoOjEwMCV9dW5pLXRvcC13aW5kb3crdW5pLWNvbnRlbnR7aGVpZ2h0OmNhbGMoMTAwdmggLSB2YXIoLS10b3Atd2luZG93LWhlaWdodCkpfXVuaS1sZWZ0LXdpbmRvd3t3aWR0aDp2YXIoLS13aW5kb3ctbGVmdCk7LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDowOy13ZWJraXQtb3JkZXI6LTE7b3JkZXI6LTF9dW5pLWxlZnQtd2luZG93LHVuaS1yaWdodC13aW5kb3d7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3cteDpoaWRkZW59dW5pLXJpZ2h0LXdpbmRvd3t3aWR0aDp2YXIoLS13aW5kb3ctcmlnaHQpfXVuaS1sZWZ0LXdpbmRvd1tkYXRhLXNob3ddLHVuaS1yaWdodC13aW5kb3dbZGF0YS1zaG93XXtwb3NpdGlvbjphYnNvbHV0ZX11bmktcmlnaHQtd2luZG93W2RhdGEtc2hvd117cmlnaHQ6MH0udW5pLWxlZnQtd2luZG93LC51bmktcmlnaHQtd2luZG93LHVuaS1jb250ZW50IC51bmktbWFza3t6LWluZGV4Ojk5N30udW5pLW1hc2srLnVuaS1sZWZ0LXdpbmRvdywudW5pLW1hc2srLnVuaS1yaWdodC13aW5kb3d7cG9zaXRpb246Zml4ZWR9LnVuaS10b3Atd2luZG93e3Bvc2l0aW9uOmZpeGVkO2xlZnQ6dmFyKC0td2luZG93LW1hcmdpbik7cmlnaHQ6dmFyKC0td2luZG93LW1hcmdpbik7dG9wOjA7ei1pbmRleDo5OTg7b3ZlcmZsb3c6aGlkZGVufXVuaS10b2FzdHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDt6LWluZGV4Ojk5OTtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb2ludGVyLWV2ZW50czpub25lO2ZvbnQtc2l6ZToxNnB4fXVuaS10b2FzdCAudW5pLXNhbXBsZS10b2FzdHtwb3NpdGlvbjpmaXhlZDt6LWluZGV4Ojk5OTt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt0ZXh0LWFsaWduOmNlbnRlcjttYXgtd2lkdGg6ODAlfXVuaS10b2FzdCAudW5pLXNpbXBsZS10b2FzdF9fdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTcsMTcsMTcsLjcpO3BhZGRpbmc6MTBweCAyMHB4O2JvcmRlci1yYWRpdXM6NXB4O2ZvbnQtc2l6ZToxM3B4O3RleHQtYWxpZ246Y2VudGVyO21heC13aWR0aDoxMDAlO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpub3JtYWx9dW5pLXRvYXN0IC51bmktbWFza3twb2ludGVyLWV2ZW50czphdXRvfXVuaS10b2FzdCAudW5pLXRvYXN0e3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6OTk5O3dpZHRoOjhlbTt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtiYWNrZ3JvdW5kOnJnYmEoMTcsMTcsMTcsLjcpO3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1yYWRpdXM6NXB4O2NvbG9yOiNmZmZ9dW5pLXRvYXN0IC51bmktdG9hc3QgKntib3gtc2l6aW5nOmJvcmRlci1ib3h9dW5pLXRvYXN0IC51bmktdG9hc3RfX2ljb257bWFyZ2luOjIwcHggMCAwO3dpZHRoOjM4cHg7aGVpZ2h0OjM4cHg7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9dW5pLXRvYXN0IC51bmktaWNvbl90b2FzdHttYXJnaW46MTVweCAwIDB9dW5pLXRvYXN0IC51bmktaWNvbl90b2FzdC51bmktaWNvbi1zdWNjZXNzLW5vLWNpcmNsZTpiZWZvcmV7Y29sb3I6I2ZmZjtmb250LXNpemU6NTVweH11bmktdG9hc3QgLnVuaS1pY29uX3RvYXN0LnVuaS1pY29uLWVycm9yOmJlZm9yZXtjb2xvcjojZmZmO2ZvbnQtc2l6ZTo1MHB4fXVuaS10b2FzdCAudW5pLWljb25fdG9hc3QudW5pLWxvYWRpbmd7bWFyZ2luOjIwcHggMCAwO3dpZHRoOjM4cHg7aGVpZ2h0OjM4cHg7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9dW5pLXRvYXN0IC51bmktdG9hc3RfX2NvbnRlbnR7bWFyZ2luOjAgMCAxNXB4fXVuaS1tb2RhbHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDt6LWluZGV4Ojk5OTtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH11bmktbW9kYWwgLnVuaS1tb2RhbHtwb3NpdGlvbjpmaXhlZDt6LWluZGV4Ojk5OTt3aWR0aDo4MCU7bWF4LXdpZHRoOjMwMHB4O3RvcDo1MCU7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO2JhY2tncm91bmQtY29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItcmFkaXVzOjNweDtvdmVyZmxvdzpoaWRkZW59dW5pLW1vZGFsIC51bmktbW9kYWwgKntib3gtc2l6aW5nOmJvcmRlci1ib3h9dW5pLW1vZGFsIC51bmktbW9kYWxfX2hke3BhZGRpbmc6MWVtIDEuNmVtIC4zZW19dW5pLW1vZGFsIC51bmktbW9kYWxfX3RpdGxle2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MThweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbH11bmktbW9kYWwgLnVuaS1tb2RhbF9fYmQsdW5pLW1vZGFsIC51bmktbW9kYWxfX3RpdGxle3dvcmQtd3JhcDpicmVhay13b3JkO3dvcmQtYnJlYWs6YnJlYWstYWxsO3doaXRlLXNwYWNlOnByZS13cmFwfXVuaS1tb2RhbCAudW5pLW1vZGFsX19iZHtwYWRkaW5nOjEuM2VtIDEuNmVtIDEuM2VtO21pbi1oZWlnaHQ6NDBweDtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6Izk5OTttYXgtaGVpZ2h0OjQwMHB4O292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0b311bmktbW9kYWwgLnVuaS1tb2RhbF9fdGV4dGFyZWF7cmVzaXplOm5vbmU7Ym9yZGVyOjA7bWFyZ2luOjA7d2lkdGg6OTAlO3BhZGRpbmc6MTBweDtmb250LXNpemU6MjBweDtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZWVlO3RleHQtZGVjb3JhdGlvbjppbmhlcml0fXVuaS1tb2RhbCAudW5pLW1vZGFsX19mdHtwb3NpdGlvbjpyZWxhdGl2ZTtsaW5lLWhlaWdodDo0OHB4O2ZvbnQtc2l6ZToxOHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fXVuaS1tb2RhbCAudW5pLW1vZGFsX19mdDphZnRlcntjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7cmlnaHQ6MDtoZWlnaHQ6MXB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNkNWQ1ZDY7Y29sb3I6I2Q1ZDVkNjstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCAwO3RyYW5zZm9ybS1vcmlnaW46MCAwOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSguNSk7dHJhbnNmb3JtOnNjYWxlWSguNSl9dW5pLW1vZGFsIC51bmktbW9kYWxfX2J0bntkaXNwbGF5OmJsb2NrOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTtmbGV4OjE7Y29sb3I6IzNjYzUxZjt0ZXh0LWRlY29yYXRpb246bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTtwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcn11bmktbW9kYWwgLnVuaS1tb2RhbF9fYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9dW5pLW1vZGFsIC51bmktbW9kYWxfX2J0bjphZnRlcntjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MXB4O2JvdHRvbTowO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZDVkNWQ2O2NvbG9yOiNkNWQ1ZDY7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMDt0cmFuc2Zvcm0tb3JpZ2luOjAgMDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoLjUpO3RyYW5zZm9ybTpzY2FsZVgoLjUpfXVuaS1tb2RhbCAudW5pLW1vZGFsX19idG46Zmlyc3QtY2hpbGQ6YWZ0ZXJ7ZGlzcGxheTpub25lfXVuaS1tb2RhbCAudW5pLW1vZGFsX19idG5fZGVmYXVsdHtjb2xvcjojMzUzNTM1fXVuaS1tb2RhbCAudW5pLW1vZGFsX19idG5fcHJpbWFyeXtjb2xvcjojMDA3YWZmfXVuaS1hY3Rpb25zaGVldHtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH11bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldHtwb3NpdGlvbjpmaXhlZDtsZWZ0OjZweDtyaWdodDo2cHg7Ym90dG9tOjZweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47ei1pbmRleDo5OTk7dmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgLjNzLC13ZWJraXQtdHJhbnNmb3JtIC4zczt0cmFuc2l0aW9uOnZpc2liaWxpdHkgLjNzLC13ZWJraXQtdHJhbnNmb3JtIC4zczt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MsdmlzaWJpbGl0eSAuM3M7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzLHZpc2liaWxpdHkgLjNzLC13ZWJraXQtdHJhbnNmb3JtIC4zc311bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldC51bmktYWN0aW9uc2hlZXRfdG9nZ2xle3Zpc2liaWxpdHk6dmlzaWJsZTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX11bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldCAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH11bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldF9fYWN0aW9uLHVuaS1hY3Rpb25zaGVldCAudW5pLWFjdGlvbnNoZWV0X19tZW51e2JvcmRlci1yYWRpdXM6NXB4O2JhY2tncm91bmQtY29sb3I6I2ZjZmNmZH11bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldF9fYWN0aW9ue21hcmdpbi10b3A6NnB4fXVuaS1hY3Rpb25zaGVldCAudW5pLWFjdGlvbnNoZWV0X19jZWxsLHVuaS1hY3Rpb25zaGVldCAudW5pLWFjdGlvbnNoZWV0X190aXRsZXtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjEwcHggNnB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxOHB4O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO2N1cnNvcjpwb2ludGVyfXVuaS1hY3Rpb25zaGVldCAudW5pLWFjdGlvbnNoZWV0X190aXRsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2xlZnQ6MDt6LWluZGV4OjE7Y29sb3I6dmFyKC0tVUktRkcpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjVweCA1cHggMCAwO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTV9dW5pLWFjdGlvbnNoZWV0IC51bmktYWN0aW9uc2hlZXRfX2NlbGw6YmVmb3Jle2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2hlaWdodDoxcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U1ZTVlNTtjb2xvcjojZTVlNWU1Oy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNmb3JtLW9yaWdpbjowIDA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVZKC41KTt0cmFuc2Zvcm06c2NhbGVZKC41KX11bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldF9fY2VsbDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZWNlY2VjfXVuaS1hY3Rpb25zaGVldCAudW5pLWFjdGlvbnNoZWV0X19jZWxsOmZpcnN0LWNoaWxkOmJlZm9yZXtkaXNwbGF5Om5vbmV9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo1MDBweCkgYW5kIChtaW4taGVpZ2h0OjUwMHB4KXsudW5pLW1hc2sudW5pLWFjdGlvbnNoZWV0X19tYXNre2JhY2tncm91bmQ6bm9uZX11bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldHt3aWR0aDozMDBweDtsZWZ0OjUwJTtyaWdodDphdXRvO3RvcDo1MCU7Ym90dG9tOmF1dG87LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuM3MsdmlzaWJpbGl0eSAuM3M7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyx2aXNpYmlsaXR5IC4zc311bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldC51bmktYWN0aW9uc2hlZXRfdG9nZ2xle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSl9dW5pLWFjdGlvbnNoZWV0IC51bmktYWN0aW9uc2hlZXRfX21lbnV7Ym94LXNoYWRvdzowIDAgMjBweCA1cHggcmdiYSgwLDAsMCwuMyl9dW5pLWFjdGlvbnNoZWV0IC51bmktYWN0aW9uc2hlZXRfX2FjdGlvbntkaXNwbGF5Om5vbmV9fS5pbWFnZS12aWV3LWFyZWEsLmltYWdlLXZpZXctdmlld3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0uaW1hZ2Utdmlldy1pbWd7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7bWF4LWhlaWdodDoxMDAlO21heC13aWR0aDoxMDAlfS51bmktc3lzdGVtLXByZXZpZXctaW1hZ2V7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4Ojk5OTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpfS51bmktc3lzdGVtLXByZXZpZXctaW1hZ2Utc3dpcGVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS51bmktc3lzdGVtLXByZXZpZXctaW1hZ2UgLm5hdi1idG4tYmFja3twb3NpdGlvbjphYnNvbHV0ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7dG9wOjA7cmlnaHQ6MDt3aWR0aDo0NHB4O2hlaWdodDo0NHB4O3BhZGRpbmc6NnB4O2xpbmUtaGVpZ2h0OjMycHg7Zm9udC1zaXplOjI2cHg7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtjdXJzb3I6cG9pbnRlcn0qe21hcmdpbjowOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH1AZm9udC1mYWNle2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LWZhbWlseTp1bmk7c3JjOnVybCgiZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LEFBRUFBQUFMQUlBQUF3QXdSMU5WUXJEK3MrMEFBQUU0QUFBQVFrOVRMekpBS0V4K0FBQUJmQUFBQUZaamJXRnc2NWNGSFFBQUFod0FBQUpRWjJ4NVp2Q1JSL0VBQUFTVUFBQUt0R2hsWVdRTEtJTjlBQUFBNEFBQUFEWm9hR1ZoQ0N3RCtnQUFBTHdBQUFBa2FHMTBlRUpvLy84QUFBSFVBQUFBU0d4dlkyRVlxaFc2QUFBRWJBQUFBQ1p0WVhod0FTRUFWUUFBQVJnQUFBQWdibUZ0WmVOY0h0Z0FBQTlJQUFBQjVuQnZjM1Q2YkxoTEFBQVJNQUFBQU9ZQUFRQUFBK2dBQUFCYUErai8vLy8vQStrQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUJJQUFRQUFBQUVBQUNrQ2ozZGZEenoxQUFzRDZBQUFBQURVRVI5WEFBQUFBTlFSSDFmLy93QUFBK2tENmdBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFBRWdCSkFBVUFBQUFBQUFJQUFBQUtBQW9BQUFEL0FBQUFBQUFBQUFFQUFBQUtBQjRBTEFBQlJFWk1WQUFJQUFRQUFBQUFBQUFBQVFBQUFBRnNhV2RoQUFnQUFBQUJBQUFBQVFBRUFBUUFBQUFCQUFnQUFRQUdBQUFBQVFBQUFBQUFBUU93QVpBQUJRQUlBbm9DdkFBQUFJd0NlZ0s4QUFBQjRBQXhBUUlBQUFJQUJRTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUdaRlpBQkE2Z0hxRVFQb0FBQUFXZ1BxQUFBQUFBQUJBQUFBQUFBQUFBQUFBQVBvQUFBRDZBQUFBK2dBQUFQb0FBQUQ2QUFBQStnQUFBUG9BQUFENkFBQUErZ0FBQVBvQUFBRDZBQUFBK2dBQUFQb0FBQUQ2QUFBQStqLy93UG9BQUFENkFBQUFBQUFCUUFBQUFNQUFBQXNBQUFBQkFBQUFYUUFBUUFBQUFBQWJnQURBQUVBQUFBc0FBTUFDZ0FBQVhRQUJBQkNBQUFBQkFBRUFBRUFBT29SLy84QUFPb0IvLzhBQUFBQkFBUUFBQUFCQUFJQUF3QUVBQVVBQmdBSEFBZ0FDUUFLQUFzQURBQU5BQTRBRHdBUUFCRUFBQUVHQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdBQUFBQUFOd0FBQUFBQUFBQUVRQUE2Z0VBQU9vQkFBQUFBUUFBNmdJQUFPb0NBQUFBQWdBQTZnTUFBT29EQUFBQUF3QUE2Z1FBQU9vRUFBQUFCQUFBNmdVQUFPb0ZBQUFBQlFBQTZnWUFBT29HQUFBQUJnQUE2Z2NBQU9vSEFBQUFCd0FBNmdnQUFPb0lBQUFBQ0FBQTZna0FBT29KQUFBQUNRQUE2Z29BQU9vS0FBQUFDZ0FBNmdzQUFPb0xBQUFBQ3dBQTZnd0FBT29NQUFBQURBQUE2ZzBBQU9vTkFBQUFEUUFBNmc0QUFPb09BQUFBRGdBQTZnOEFBT29QQUFBQUR3QUE2aEFBQU9vUUFBQUFFQUFBNmhFQUFPb1JBQUFBRVFBQUFBQUFSZ0NNQU5JQkpnRjRBY1FDTWdKZ0FxZ0MvQU5JQTZZRC9nUk9CS0FFOUFWYUFBQUFBZ0FBQUFBRHJ3T3RBQlFBS1FBQUFTSUhCZ2NHRkJjV0Z4WXlOelkzTmpRbkppY21BeUluSmljbU5EYzJOell5RnhZWEZoUUhCZ2NHQWZWNFoyUTdQRHc3Wkdmd1ptUTdQRHc3WkdaNGJsNWJOamMzTmx0ZTIxNWJOamMzTmx0ZUE2MDhPMlJuOEdkak96dzhPMk5uOEdka096ejhyemMxVzE3YlhsdzFOemMxWEY3YlhsczFOd0FBQUFBQ0FBQUFBQU96QTdNQUZ3QXRBQUFCSWdjR0J3WVZGQmNXRnhZek1qYzJOelkxTkNjbUp5WVRCd1lpTHdFbU5qc0JFVFEyT3dFeUZoVVJNeklXQWU1MloyUTdQVDA3WkdkMmZHcG1PejQrTzJacElYWU9LQTUyRGcwWFhRc0hKZ2NMWFJjTkE3TStPMlpxZkhablpEczlQVHRrWjNaOWFXWTdQdjN3bWhJU21oSWFBUmNJQ3dzSS91a2FBQU1BQUFBQUErVUQ1UUFYQUNNQUxBQUFBU0lIQmdjR0ZSUVhGaGNXTXpJM05qYzJOVFFuSmljbUF4UXJBU0kxQXpRN0FUSUhKeUltTkRZeUZoUUdBZTZFY205QlJFUkJiM0tFaVhaeFFrUkVRbkYxYVFJeEF3Z0NRZ01CSXhJWkdTUVpHUVBrUkVKeGRvbUVjbTlCUkVSQmIzS0VpblZ4UWtUOUhRSUNBV0lDQWpFWkl4a1pJeGtBQUFBQUF3QUFBQUFEc1FQa0FCc0FLZ0F6QUFBQkJnY0dCd1lIQmpjUkZCY1dGeFlYTmpjMk56WTFFU1FYSmljbUJ6TXlGaFVERkFZckFTSW5BelEyRXlJbU5EWXlGaFFHQWZWQlFUZzdMRHQvSUVjK2JGNXNiRjF0UFVqKzJLaFFRVlZ2TkFRR0RBTUNKZ1VCQ3dZZUR4WVdIaFVWQStRUEVnNFNEaElwQ3Y2dGozVmtTVDRkSFQ1SlpIV1BBVk5lTlJrU0dQd0dCUDdHQWdNRkFUb0VCdjVBRlI4VkZSOFZBQUFBQWdBQUFBQURzUVBrQUJrQUxnQUFBUVlIQmdjMkJSRVVGeFlYRmhjMk56WTNOalVSSkJjbUp5WVRBUVl2QVNZL0FUWXlId0VXTmpjbE5qSWZBUllCOVZWVlFrK3YvdEZIUG14ZWJHeGRiVDFJL3RHdlQwSlZvLzdWQkFTS0F3TVNBUVVCY1FFRkFnRVNBZ1VCRVFRRDR4TVlFaGszWVA2c2puVmxTRDhjSEQ5SVpYV09BVlJnTnhrU0dQNjIvdGtEQTQ4RUJCa0NBVllDQVFIbEFRSVFCQUFBQUFBQ0FBQUFBQVBrQStRQUZ3QXRBQUFCSWdjR0J3WVZGQmNXRnhZek1qYzJOelkxTkNjbUp5WVRBUVlpTHdFbVB3RTJNaDhCRmpJM0FUWXlId0VXQWU2RWNtOUJRME5DYm5PRGlYVnhRa1JFUW5GMWtmNmdBUVVCb3dNREZnRUZBWVVDQlFFQlF3SUZBUlVFQStORVFuRjFpWU56YmtKRFEwRnZjb1NKZFhGQ1JQNmovcVVCQWFnRUJSNENBV1lCQVFFTkFnSVZCQUFBQUFRQUFBQUFBNjhEclFBVUFDa0FQd0JEQUFBQklnY0dCd1lVRnhZWEZqSTNOamMyTkNjbUp5WURJaWNtSnlZME56WTNOaklYRmhjV0ZBY0dCd1lUQlE0Qkx3RW1CZzhCQmhZZkFSWXlOd0UrQVNZaUZ6QWZBUUgxZUdka096dzhPMlJuOEdaa096dzhPMlJtZUc1ZVd6WTNOelpiWHR0ZVd6WTNOelpiWG1uKzlnWVNCbUFHRHdVREJRRUdmUVVRQmdFbEJRRUxFQlVCQVFPdFBEdGtaL0JuWXpzOFBEdGpaL0JuWkRzOC9LODNOVnRlMjE1Y05UYzNOVnhlMjE1Yk5UY0NKdDBGQVFWSkJRSUdCQWNSQm9BR0JRRWhCUThMQkFFQkFBQUJBQUFBQUFPN0F6b0FGd0FBRXk0QlB3RStBUjhCRmpZM0FUWVdGeWNXRkFjQkJpSW5QUW9HQndVSEdnekxEQ0VMQWgwTEh3c05DZ3I5dVFvZUNnR3pDeUVPQ3cwSENaTUpBUW9CdmdrQ0NnMExIUXY5c1FzS0FBQUFBQUlBQUFBQUErVUQ1Z0FYQUN3QUFBRWlCd1lIQmhVVUZ4WVhGak15TnpZM05qVTBKeVluSmhNSEJpOEJKaWNtTlJNME5qc0JNaFlWRXhjZUFRSHZoSEp2UVVORFFtNXpnNGwxY1VKRVJFSnhkVmNRQXdUNkF3SUVFQU1DS3dJRERzVUNBUVBsUkVKeGRZbURjMjVDUTBOQmIzS0VpWFZ4UWtUOVZod0VBbmNDQWdNR0FYb0NBd01DL3EyRkFnUUFBQVFBQUFBQUE2OERyUUFEQUJnQUxRQXpBQUFCTUI4QkF5SUhCZ2NHRkJjV0Z4WXlOelkzTmpRbkppY21BeUluSmljbU5EYzJOell5RnhZWEZoUUhCZ2NHQXlNVk16VWpBdVVCQWZKNFoyUTdQRHc3Wkdmd1ptUTdQRHc3WkdaNGJsNWJOamMzTmx0ZTIxNWJOamMzTmx0ZW15VDkyUUtEQVFFQkxEdzdaR2Z3WjJNN1BEdzdZMmZ3WjJRN1BQeXZOelZiWHR0ZVhEVTNOelZjWHR0ZVd6VTNBakg5SkFBQUFBTUFBQUFBQStRRDVBQVhBQ2NBTUFBQUFTSUhCZ2NHRlJRWEZoY1dNekkzTmpjMk5UUW5KaWNtQXpNeUZoVURGQVlyQVNJbU5RTTBOaE1pSmpRMk1oWVVCZ0h1aEhKdlFVTkRRbTV6ZzRsMWNVSkVSRUp4ZFo0MkJBWU1Bd0luQXdNTUJoOFBGaFllRmhZRDQwUkNjWFdKZzNOdVFrTkRRVzl5aElsMWNVSkUvdllHQmY3QUFnTURBZ0ZBQlFiK05oWWZGaFlmRmdBQUJBQUFBQUFEd0FQQUFBZ0FFZ0FvQUQwQUFBRXlOalFtSWdZVUZoY2pGVE1SSXhVek5TTURJZ2NHQndZVkZCWVhGak15TnpZM05qVTBKeTRCQXlJbkppY21ORGMyTnpZeUZ4WVhGaFFIQmdjR0FmUVlJU0V3SVNGUmp6azV5VG9yaEc1clBUOTlhbStEZG1obFBENCtQTXlGYlY1Yk5UYzNOVnRlMmw1Yk5UYzNOVnRlQXFBaUx5SWlMeUk1SGY3RUhCd0NzVDg5YTI2RWQ4dzhQajQ4WldoMmcyOXFmZnlqTnpWYlh0cGVXelUzTnpWYlh0cGVXelUzQUFBREFBQUFBQU9vQTZnQUN3QWdBRFVBQUFFSEp3Y1hCeGMzRnpjbk53TWlCd1lIQmhRWEZoY1dNamMyTnpZMEp5WW5KZ01pSnlZbkpqUTNOamMyTWhjV0Z4WVVCd1lIQmdLT21wb2NtcG9jbXBvY21wcTJkbVppT2pzN09tSm03R1ppT2pzN09tSm1kbXRkV1RRMk5qUlpYZFpkV1RRMk5qUlpYUUtxbXBvY21wb2NtcG9jbXBvQkdUczZZbWJzWm1JNk96czZZbWJzWm1JNk8vekNOalJaWGRaZFdUUTJOalJaWGRaZFdUUTJBQU1BQUFBQUEra0Q2Z0FhQUM4QU1BQUFBUVlIQmlNaUp5WW5KalEzTmpjMk1oY1dGeFlWRkFjR0J3RUhBVEkzTmpjMk5DY21KeVlpQndZSEJoUVhGaGNXTXdLT05VQkNSMjFkV2pVM056VmFYZHBkV3pVMkdCY3JBU001L2VCWFMwZ3JLeXNyU0V1dVNra3FMQ3dxU1VwWEFTTXJGeGcyTlZ0ZDJsMWFOVGMzTlZwZGJVZENRRFgrM2prQkdTc3JTRXV1U2trcUxDd3FTVXF1UzBnckt3QUMvLzhBQUFQb0ErZ0FGQUF3QUFBQklnY0dCd1lRRnhZWEZpQTNOamMyRUNjbUp5WVRGZzRCSWk4QkJ3WXVBVFEvQVNjbVBnRVdId0UzTmg0QkJnOEJBZlNJZEhGRFJFUkRjWFFCRUhSeFEwUkVRM0YwU1FvQkZCc0tvcWdLR3hNS3FLSUtBUlFiQ3FLb0Noc1VBUXFvQStoRVEzRjAvdkIwY1VORVJFTnhkQUVRZEhGRFJQMWpDaHNUQ3FpaUNnRVVHd3FpcUFvYkZBRUtxS0lLQVJRYkNxSUFBQUlBQUFBQUErUUQ1QUFYQURRQUFBRWlCd1lIQmhVVUZ4WVhGak15TnpZM05qVTBKeVluSmhNVUJpTUZGeFlVRHdFR0x3RXVBVDhCTmg4QkZoUVBBUVV5RmgwQkFlNkVjbTlCUTBOQ2JuT0RpWFZ4UWtSRVFuRjFmd1FDL3BHREFRRVZBd1RzQWdFQzdBUUVGQUlCaEFGd0FnTUQ0MFJDY1hXSmczTnVRa05EUVc5eWhJbDFjVUpFL2ZZQ0F3dVZBZ1FDRkFRRTBBSUZBdEVFQkJRQ0JRR1ZDd01ESndBQUFBVUFBQUFBQTlRRDB3QWpBQ2NBTndCSEFFZ0FBQUVSRkFZaklTSW1OUkVqSWlZOUFUUTJNeUUxTkRZeklUSVdIUUVoTWhZZEFSUUdJeUVSSVJFSElnWVZFUlFXT3dFeU5qVVJOQ1lqSVNJR0ZSRVVGanNCTWpZMUVUUW1Ld0VEZXlZYi9YWWJKa01KRFEwSkFRWVpFZ0V2RXhrQkJna05EUW45Q1FKYzBRa05EUWt0Q1EwTkNmN3NDUTBOQ1MwSkRRMEpMUU1pL1RRYkppWWJBc3dNQ2l3SkRTNFNHUmtTTGcwSkxBb00vVXdDdEdzTkNmNU5DUTBOQ1FHekNRME5DZjVOQ1EwTkNRR3pDUTBBQUFBQUVBREdBQUVBQUFBQUFBRUFCQUFBQUFFQUFBQUFBQUlBQndBRUFBRUFBQUFBQUFNQUJBQUxBQUVBQUFBQUFBUUFCQUFQQUFFQUFBQUFBQVVBQ3dBVEFBRUFBQUFBQUFZQUJBQWVBQUVBQUFBQUFBb0FLd0FpQUFFQUFBQUFBQXNBRXdCTkFBTUFBUVFKQUFFQUNBQmdBQU1BQVFRSkFBSUFEZ0JvQUFNQUFRUUpBQU1BQ0FCMkFBTUFBUVFKQUFRQUNBQitBQU1BQVFRSkFBVUFGZ0NHQUFNQUFRUUpBQVlBQ0FDY0FBTUFBUVFKQUFvQVZnQ2tBQU1BQVFRSkFBc0FKZ0Q2ZDJWMWFWSmxaM1ZzWVhKM1pYVnBkMlYxYVZabGNuTnBiMjRnTVM0d2QyVjFhVWRsYm1WeVlYUmxaQ0JpZVNCemRtY3lkSFJtSUdaeWIyMGdSbTl1ZEdWc2JHOGdjSEp2YW1WamRDNW9kSFJ3T2k4dlptOXVkR1ZzYkc4dVkyOXRBSGNBWlFCMUFHa0FVZ0JsQUdjQWRRQnNBR0VBY2dCM0FHVUFkUUJwQUhjQVpRQjFBR2tBVmdCbEFISUFjd0JwQUc4QWJnQWdBREVBTGdBd0FIY0FaUUIxQUdrQVJ3QmxBRzRBWlFCeUFHRUFkQUJsQUdRQUlBQmlBSGtBSUFCekFIWUFad0F5QUhRQWRBQm1BQ0FBWmdCeUFHOEFiUUFnQUVZQWJ3QnVBSFFBWlFCc0FHd0Fid0FnQUhBQWNnQnZBR29BWlFCakFIUUFMZ0JvQUhRQWRBQndBRG9BTHdBdkFHWUFid0J1QUhRQVpRQnNBR3dBYndBdUFHTUFid0J0QUFBQUFnQUFBQUFBQUFBS0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFTQVFJQkF3RUVBUVVCQmdFSEFRZ0JDUUVLQVFzQkRBRU5BUTRCRHdFUUFSRUJFZ0VUQUFaamFYSmpiR1VJWkc5M2JteHZZV1FFYVc1bWJ3eHpZV1psWDNOMVkyTmxjM01KYzJGbVpWOTNZWEp1QjNOMVkyTmxjM01PYzNWalkyVnpjeTFqYVhKamJHVVJjM1ZqWTJWemN5MXVieTFqYVhKamJHVUhkMkZwZEdsdVp3NTNZV2wwYVc1bkxXTnBjbU5zWlFSM1lYSnVDMmx1Wm04dFkybHlZMnhsQm1OaGJtTmxiQVp6WldGeVkyZ0ZZMnhsWVhJRVltRmphd1prWld4bGRHVUFBQUFBIikgZm9ybWF0KCJ0cnVldHlwZSIpfUBmb250LWZhY2V7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtZmFtaWx5OnVuaWJ0bjtzcmM6dXJsKCJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsQUFFQUFBQUtBSUFBQXdBZ1QxTXZNdlVUSFN3QUFBQ3NBQUFBWUdOdFlYRC8xTFNCQUFBQkRBQUFBVnBuYkhsbXowNkw5Z0FBQW1nQUFBUTBhR1ZoWkE1MDFjd0FBQWFjQUFBQU5taG9aV0VIN3dRNkFBQUcxQUFBQUNSb2JYUjRKQ29IQXdBQUJ2Z0FBQUFrYkc5allRUWVCU2dBQUFjY0FBQUFGRzFoZUhBQURRQkxBQUFITUFBQUFDQnVZVzFsNWhFUGtnQUFCMUFBQUFIYWNHOXpkQVFmQkNFQUFBa3NBQUFBUEFBRUJBVUJrQUFGQUFBQ21RTE1BQUFBandLWkFzd0FBQUhyQURNQkNRQUFBQUFBQUFBQUFBQUFBQUFBQUFFUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVEbUFQLzlBOEQvd0FCQUE4QUFRQUFBQUFFQUFBQUFBQUFBQUFBQUFDQUFBQUFBQUFNQUFBQURBQUFBSEFBQkFBQUFBQUJVQUFNQUFRQUFBQndBQkFBNEFBQUFDZ0FJQUFJQUF1WUM1Z2JtVWYvOS8vOEFBT1lBNWdUbVVQLzkvLzhhQVJvQUdiY0FBd0FCQUFBQUFBQUFBQUFBQUFBQUFRWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBV0FBZVFMQkF1b0FGUUFBQVNZME56WXlGd0VlQVJVVUJnY0JCaUluSmpRM0FRRmdDQWdIRmdjQk5RUUVCQVQreXdjV0J3Z0lBU0lDeFFjWEJ3Z0kvdHdFQ3dVR0N3VCszQWdJQnhjSUFSTUFBQUFCQVZnQWVRSzVBdW9BRlFBQUNRSVdGQWNHSWljQkxnRTFORFkzQVRZeUZ4WVVBcm4rM2dFaUNBZ0lGUWorekFVREF3VUJOQWdWQ0FnQ3hmN3QvdTBJRndjSUNBRWtCQXNHQlFzRUFTUUlDQWNYQUFBQ0FOQUFhUU82QXcwQUd3QTBBQUFsRkFZaklTSW1OUkUwTmpzQk5TTWlCaFVSRkJZeklUSTJQUUVqRXljSEZ3Y09BdzhCTXpVK0FUYytBVDhDQnhjM0p3TlNCd1Q5d2dRR0JnU3d3QkVZR0JFQ1h4RVhMbWlrSVc1M1NvSmpQUVVCTHdVMkxTMTFRQVpxYmlHa0FhVUVCd2NFQWFnRkJqRVpFZjQwRVJrWkVxVUJLS3dqY3dFR1BGOStSd2dIUEc0ckt6SUVBUUYwSXF3Q0FBQUNBSmNBWGdOekF4c0FMd0JJQUFBQkxnRXZBaTRCSXlJR0R3SU9BUWNHRmg4QkJ3WVdGeDRCTXpJMlB3RVhIZ0V6TWpZM1BnRW5ORFVuTno0QkJUWW1Md0UzUGdFL0FSY2VBUjhCQnc0Qkh3RW5KZ1lQQVFOekFnb0c0MmNEQ2djR0NnTms0d1lLQWdFREJLVWxBUVVGQXdZRUFnVUR5c3dDQlFNR0NnTUNBUUVvb3dVRC9mb0JBd1NOd2dVSkFsWllBZ2tGdzR3RUF3RWlyZ1VMQks0Q0ZBWUlBUi9OQmdZR0JzNGpBUWdHQmd3RW4rSUdEQVFDQWdJQmJHb0JBUVlHQXdrREFRSGVvUVVNc0FZS0JJZ2RBUVlGc2JBRkJnRWJpUVFMQmNGYUF3RUNYQUFDQUw4QWRRTlFBeEVBSUFBOEFBQUJJZ1lkQVJRR0l5RWlKajBCTkNZaklnWWRBUjRCTXlFeU5qMEJOQ1luTGdFM0FTNEJJeUlHQndFR0ZCY2VBVE15TmpjQk5qSVhBUll5Tno0QkF2Y0tEZ3NIL25VSUN3NEtDUThCSmhzQmpCc25CQU1EQ1ZUKzVnb1lEUTBZQ2Y3bUJnY0RDUVVFQ0FRQkdRVVFCUUVhQnhNSEJnRUJzQTRKNGdjTEN3ZmlDUTRPQ2VJYkp5Y2I0Z1FKQXdRRE5BRWFDZ2tKQ2Y3bEJ4TUdCQU1EQXdFWkJRWCs1d1lIQmhNQUF3RGNBWFlETVFINkFBc0FGd0FqQUFBQk1qWTFOQ1lqSWdZVkZCWWhNalkxTkNZaklnWVZGQlloTWpZMU5DWWpJZ1lWRkJZQkhod25KeHdiSnljQkF4d25KeHdiSnljQkJCc25KeHNjSnljQmRpY2JHeWNuR3hzbkp4c2JKeWNiR3ljbkd4c25KeHNiSndBQUFRRHNBSjBERkFMT0FDVUFBQUUzTmpRbkppSVBBU2NtSWdjR0ZCOEJCd1lVRng0Qk16STJQd0VYSGdFek1qWTNOalFuQWlqc0NRa0lHQWpzNmdnWUNBa0o2dXdKQ1FRS0JnVUxCT3pzQkFzRkJnb0VDUWtCdStvSkZ3a0lDT3ZyQ0FnSUdBanI2d2dZQ0FRRUJBVHI3UVVFQlFRSUZ3a0FBUUJkQUl3RDBBTDRBQjRBQUFFV0ZSWUhBUVlIQmdjR0l5SXZBU1l2QVFFbUp6UTNQZ0VYQ1FFMk16WUR3d3dCRFAzL0JBVUNBZ2NHQ0FjRUF3TUQvdG9KQVFvTUhRd0JEQUhvQ3c4UEF1NExEUkFML2RzRUFnRUNBUUVDQWdNQ0FTRUxEZzhOQ1FJTC92a0NDQW9CQUFFQUFBQUJBQURMV2IyQlh3ODg5UUFMQkFBQUFBQUExWlRJcXdBQUFBRFZsTWlyQUYwQVhnUFFBeHNBQUFBSUFBSUFBQUFBQUFBQUFRQUFBOEQvd0FBQUJDb0FYUUJHQTlBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFrRUFBQUFCQUFCWUFRQUFWZ0VBQURRQkFBQWx3UUFBTDhFQUFEY0JBQUE3QVFxQUYwQUFBQUFBQ29BVkFDaUFSUUJjQUdtQWVJQ0dnQUJBQUFBQ1FCSkFBTUFBQUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQ3VBQUVBQUFBQUFBRUFEZ0FBQUFFQUFBQUFBQUlBQndBT0FBRUFBQUFBQUFNQURnQVZBQUVBQUFBQUFBUUFEZ0FqQUFFQUFBQUFBQVVBQ3dBeEFBRUFBQUFBQUFZQURnQThBQUVBQUFBQUFBb0FHZ0JLQUFNQUFRUUpBQUVBSEFCa0FBTUFBUVFKQUFJQURnQ0FBQU1BQVFRSkFBTUFIQUNPQUFNQUFRUUpBQVFBSEFDcUFBTUFBUVFKQUFVQUZnREdBQU1BQVFRSkFBWUFIQURjQUFNQUFRUUpBQW9BTkFENGMzUnlaV0Z0YVdOdmJtWnZiblJTWldkMWJHRnljM1J5WldGdGFXTnZibVp2Ym5SemRISmxZVzFwWTI5dVptOXVkRlpsY25OcGIyNGdNUzR3YzNSeVpXRnRhV052Ym1admJuUkdiMjUwSUdkbGJtVnlZWFJsWkNCaWVTQkpZMjlOYjI5dUxnQnpBSFFBY2dCbEFHRUFiUUJwQUdNQWJ3QnVBR1lBYndCdUFIUUFVZ0JsQUdjQWRRQnNBR0VBY2dCekFIUUFjZ0JsQUdFQWJRQnBBR01BYndCdUFHWUFid0J1QUhRQWN3QjBBSElBWlFCaEFHMEFhUUJqQUc4QWJnQm1BRzhBYmdCMEFGWUFaUUJ5QUhNQWFRQnZBRzRBSUFBeEFDNEFNQUJ6QUhRQWNnQmxBR0VBYlFCcEFHTUFid0J1QUdZQWJ3QnVBSFFBUmdCdkFHNEFkQUFnQUdjQVpRQnVBR1VBY2dCaEFIUUFaUUJrQUNBQVlnQjVBQ0FBU1FCakFHOEFUUUJ2QUc4QWJnQXVBQUFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNRQUpBQUFCQWdFREFRUUJCUUVHQVFjQkNBRUpBQUFBQUFBQUFBQT0iKSBmb3JtYXQoInRydWV0eXBlIil9Ym9keSxodG1sey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Ym9keXtvdmVyZmxvdy14OmhpZGRlbn1ib2R5LHVuaS1wYWdlLWJvZHl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1VSS1CRy0wKTtjb2xvcjp2YXIoLS1VSS1GRy0wKX1bY2xhc3MqPSIgdW5pLWljb24tIl0sW2NsYXNzXj11bmktaWNvbi1de2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250Om5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSB1bmk7Zm9udC1zaXplOmluaGVyaXQ7dGV4dC1yZW5kZXJpbmc6YXV0bzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkfVtjbGFzcyo9IiB1bmktYnRuLWljb24iXSxbY2xhc3NePXVuaS1idG4taWNvbl17ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udDpub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgdW5pYnRuO2ZvbnQtc2l6ZTppbmhlcml0O3RleHQtcmVuZGVyaW5nOmF1dG87LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZH1bY2xhc3MqPSIgdW5pLWJ0bi1pY29uIl06YmVmb3JlLFtjbGFzc149dW5pLWJ0bi1pY29uXTpiZWZvcmV7bWFyZ2luOjA7Ym94LXNpemluZzpib3JkZXItYm94fS51bmktaWNvbi1zdWNjZXNzLW5vLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXEVBMDgifS51bmktaWNvbi1lcnJvcjpiZWZvcmV7Y29udGVudDoiXEVBMEIifS51bmktbG9hZGluZyx1bmktYnV0dG9uW2xvYWRpbmddOmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCkgdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXhNakFpSUdobGFXZG9kRDBpTVRJd0lpQjJhV1YzUW05NFBTSXdJREFnTVRBd0lERXdNQ0krUEhCaGRHZ2dabWxzYkQwaWJtOXVaU0lnWkQwaVRUQWdNR2d4TURCMk1UQXdTREI2SWk4K1BISmxZM1FnZDJsa2RHZzlJamNpSUdobGFXZG9kRDBpTWpBaUlIZzlJalEyTGpVaUlIazlJalF3SWlCbWFXeHNQU0lqUlRsRk9VVTVJaUJ5ZUQwaU5TSWdjbms5SWpVaUlIUnlZVzV6Wm05eWJUMGlkSEpoYm5Oc1lYUmxLREFnTFRNd0tTSXZQanh5WldOMElIZHBaSFJvUFNJM0lpQm9aV2xuYUhROUlqSXdJaUI0UFNJME5pNDFJaUI1UFNJME1DSWdabWxzYkQwaUl6azRPVFk1TnlJZ2NuZzlJalVpSUhKNVBTSTFJaUIwY21GdWMyWnZjbTA5SW5KdmRHRjBaU2d6TUNBeE1EVXVPVGdnTmpVcElpOCtQSEpsWTNRZ2QybGtkR2c5SWpjaUlHaGxhV2RvZEQwaU1qQWlJSGc5SWpRMkxqVWlJSGs5SWpRd0lpQm1hV3hzUFNJak9VSTVPVGxCSWlCeWVEMGlOU0lnY25rOUlqVWlJSFJ5WVc1elptOXliVDBpY205MFlYUmxLRFl3SURjMUxqazRJRFkxS1NJdlBqeHlaV04wSUhkcFpIUm9QU0kzSWlCb1pXbG5hSFE5SWpJd0lpQjRQU0kwTmk0MUlpQjVQU0kwTUNJZ1ptbHNiRDBpSTBFelFURkJNaUlnY25nOUlqVWlJSEo1UFNJMUlpQjBjbUZ1YzJadmNtMDlJbkp2ZEdGMFpTZzVNQ0EyTlNBMk5Ta2lMejQ4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSXlNQ0lnZUQwaU5EWXVOU0lnZVQwaU5EQWlJR1pwYkd3OUlpTkJRa0U1UVVFaUlISjRQU0kxSWlCeWVUMGlOU0lnZEhKaGJuTm1iM0p0UFNKeWIzUmhkR1VvTVRJd0lEVTRMalkySURZMUtTSXZQanh5WldOMElIZHBaSFJvUFNJM0lpQm9aV2xuYUhROUlqSXdJaUI0UFNJME5pNDFJaUI1UFNJME1DSWdabWxzYkQwaUkwSXlRakpDTWlJZ2NuZzlJalVpSUhKNVBTSTFJaUIwY21GdWMyWnZjbTA5SW5KdmRHRjBaU2d4TlRBZ05UUXVNRElnTmpVcElpOCtQSEpsWTNRZ2QybGtkR2c5SWpjaUlHaGxhV2RvZEQwaU1qQWlJSGc5SWpRMkxqVWlJSGs5SWpRd0lpQm1hV3hzUFNJalFrRkNPRUk1SWlCeWVEMGlOU0lnY25rOUlqVWlJSFJ5WVc1elptOXliVDBpY205MFlYUmxLREU0TUNBMU1DQTJOU2tpTHo0OGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0l5TUNJZ2VEMGlORFl1TlNJZ2VUMGlOREFpSUdacGJHdzlJaU5ETWtNd1F6RWlJSEo0UFNJMUlpQnllVDBpTlNJZ2RISmhibk5tYjNKdFBTSnliM1JoZEdVb0xURTFNQ0EwTlM0NU9DQTJOU2tpTHo0OGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0l5TUNJZ2VEMGlORFl1TlNJZ2VUMGlOREFpSUdacGJHdzlJaU5EUWtOQ1EwSWlJSEo0UFNJMUlpQnllVDBpTlNJZ2RISmhibk5tYjNKdFBTSnliM1JoZEdVb0xURXlNQ0EwTVM0ek5DQTJOU2tpTHo0OGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0l5TUNJZ2VEMGlORFl1TlNJZ2VUMGlOREFpSUdacGJHdzlJaU5FTWtReVJESWlJSEo0UFNJMUlpQnllVDBpTlNJZ2RISmhibk5tYjNKdFBTSnliM1JoZEdVb0xUa3dJRE0xSURZMUtTSXZQanh5WldOMElIZHBaSFJvUFNJM0lpQm9aV2xuYUhROUlqSXdJaUI0UFNJME5pNDFJaUI1UFNJME1DSWdabWxzYkQwaUkwUkJSRUZFUVNJZ2NuZzlJalVpSUhKNVBTSTFJaUIwY21GdWMyWnZjbTA5SW5KdmRHRjBaU2d0TmpBZ01qUXVNRElnTmpVcElpOCtQSEpsWTNRZ2QybGtkR2c5SWpjaUlHaGxhV2RvZEQwaU1qQWlJSGc5SWpRMkxqVWlJSGs5SWpRd0lpQm1hV3hzUFNJalJUSkZNa1V5SWlCeWVEMGlOU0lnY25rOUlqVWlJSFJ5WVc1elptOXliVDBpY205MFlYUmxLQzB6TUNBdE5TNDVPQ0EyTlNraUx6NDhMM04yWno0PSIpIG5vLXJlcGVhdH0udW5pLWxvYWRpbmd7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7LXdlYmtpdC1hbmltYXRpb246dW5pLWxvYWRpbmcgMXMgc3RlcHMoMTIpIGluZmluaXRlO2FuaW1hdGlvbjp1bmktbG9hZGluZyAxcyBzdGVwcygxMikgaW5maW5pdGU7YmFja2dyb3VuZC1zaXplOjEwMCV9QC13ZWJraXQta2V5ZnJhbWVzIHVuaS1sb2FkaW5nezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9fUBrZXlmcmFtZXMgdW5pLWxvYWRpbmd7MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTt0cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19LnVuaS1tYXNre3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6OTk5O3RvcDowO3JpZ2h0OjA7bGVmdDowO2JvdHRvbTowO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNSl9LnVuaS1mYWRlLWVudGVyLWFjdGl2ZSwudW5pLWZhZGUtbGVhdmUtYWN0aXZley13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjouMjVzO3RyYW5zaXRpb24tZHVyYXRpb246LjI1czstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHk7LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2V9LnVuaS1mYWRlLWVudGVyLC51bmktZmFkZS1sZWF2ZS1hY3RpdmV7b3BhY2l0eTowfVtudnVlXSB1bmktbGFiZWwsW252dWVdIHVuaS1zY3JvbGwtdmlldyxbbnZ1ZV0gdW5pLXN3aXBlci1pdGVtLFtudnVlXSB1bmktdmlld3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtc2hyaW5rOjA7ZmxleC1zaHJpbms6MDstd2Via2l0LWJveC1mbGV4OjA7LXdlYmtpdC1mbGV4LWdyb3c6MDtmbGV4LWdyb3c6MDstd2Via2l0LWZsZXgtYmFzaXM6YXV0bztmbGV4LWJhc2lzOmF1dG87LXdlYmtpdC1ib3gtYWxpZ246c3RyZXRjaDstd2Via2l0LWFsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24taXRlbXM6c3RyZXRjaDstd2Via2l0LWFsaWduLWNvbnRlbnQ6ZmxleC1zdGFydDthbGlnbi1jb250ZW50OmZsZXgtc3RhcnR9W252dWVdIHVuaS1idXR0b257bWFyZ2luOjB9W252dWUtZGlyLXJvd10gdW5pLWxhYmVsLFtudnVlLWRpci1yb3ddIHVuaS1zd2lwZXItaXRlbSxbbnZ1ZS1kaXItcm93XSB1bmktdmlld3std2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvd31bbnZ1ZS1kaXItY29sdW1uXSB1bmktbGFiZWwsW252dWUtZGlyLWNvbHVtbl0gdW5pLXN3aXBlci1pdGVtLFtudnVlLWRpci1jb2x1bW5dIHVuaS12aWV3ey13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1bbnZ1ZS1kaXItcm93LXJldmVyc2VdIHVuaS1sYWJlbCxbbnZ1ZS1kaXItcm93LXJldmVyc2VdIHVuaS1zd2lwZXItaXRlbSxbbnZ1ZS1kaXItcm93LXJldmVyc2VdIHVuaS12aWV3ey13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpyZXZlcnNlOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2V9W252dWUtZGlyLWNvbHVtbi1yZXZlcnNlXSB1bmktbGFiZWwsW252dWUtZGlyLWNvbHVtbi1yZXZlcnNlXSB1bmktc3dpcGVyLWl0ZW0sW252dWUtZGlyLWNvbHVtbi1yZXZlcnNlXSB1bmktdmlld3std2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOnJldmVyc2U7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZTtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX1bbnZ1ZV0gdW5pLWltYWdlLFtudnVlXSB1bmktaW5wdXQsW252dWVdIHVuaS1zY3JvbGwtdmlldyxbbnZ1ZV0gdW5pLXN3aXBlcixbbnZ1ZV0gdW5pLXN3aXBlci1pdGVtLFtudnVlXSB1bmktdGV4dCxbbnZ1ZV0gdW5pLXRleHRhcmVhLFtudnVlXSB1bmktdmlkZW8sW252dWVdIHVuaS12aWV3e3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjowIHNvbGlkICMwMDA7Ym94LXNpemluZzpib3JkZXItYm94fVtudnVlXSB1bmktc3dpcGVyLWl0ZW17cG9zaXRpb246YWJzb2x1dGV9aHRtbHstLVVJLUJHOiNmZmY7LS1VSS1CRy0xOiNmN2Y3Zjc7LS1VSS1CRy0yOiNmZmY7LS1VSS1CRy0zOiNmN2Y3Zjc7LS1VSS1CRy00OiM0YzRjNGM7LS1VSS1CRy01OiNmZmY7LS1VSS1GRzojMDAwOy0tVUktRkctMDpyZ2JhKDAsMCwwLDAuOSk7LS1VSS1GRy1IQUxGOnJnYmEoMCwwLDAsMC45KTstLVVJLUZHLTE6cmdiYSgwLDAsMCwwLjUpOy0tVUktRkctMjpyZ2JhKDAsMCwwLDAuMyk7LS1VSS1GRy0zOnJnYmEoMCwwLDAsMC4xKX11bmktYXBwe3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9dW5pLWFwcCx1bmktcGFnZS1oZWFke2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWR7cG9zaXRpb246Zml4ZWQ7bGVmdDp2YXIoLS13aW5kb3ctbGVmdCk7cmlnaHQ6dmFyKC0td2luZG93LXJpZ2h0KTtoZWlnaHQ6NDRweDtoZWlnaHQ6Y2FsYyg0NHB4ICsgY29uc3RhbnQoc2FmZS1hcmVhLWluc2V0LXRvcCkpO2hlaWdodDpjYWxjKDQ0cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkpO3BhZGRpbmc6N3B4IDNweDtwYWRkaW5nLXRvcDpjYWxjKDdweCArIGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC10b3ApKTtwYWRkaW5nLXRvcDpjYWxjKDdweCArIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSk7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4Ojk5ODtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwMDstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6YWxsO3RyYW5zaXRpb24tcHJvcGVydHk6YWxsfXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWQtdGl0bGVQZW5ldHJhdGUsdW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZC10aXRsZVBlbmV0cmF0ZSAudW5pLXBhZ2UtaGVhZC1iZCx1bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkLXRpdGxlUGVuZXRyYXRlIC51bmktcGFnZS1oZWFkLWJkICp7cG9pbnRlci1ldmVudHM6bm9uZX11bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkLXRpdGxlUGVuZXRyYXRlICp7cG9pbnRlci1ldmVudHM6YXV0b311bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkLnVuaS1wYWdlLWhlYWQtdHJhbnNwYXJlbnQgLnVuaS1wYWdlLWhlYWQtZnQ+ZGl2ey13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWR+LnVuaS1wbGFjZWhvbGRlcnt3aWR0aDoxMDAlO2hlaWdodDo0NHB4O2hlaWdodDpjYWxjKDQ0cHggKyBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtdG9wKSk7aGVpZ2h0OmNhbGMoNDRweCArIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSl9dW5pLXBhZ2UtaGVhZCAudW5pLXBsYWNlaG9sZGVyLXRpdGxlUGVuZXRyYXRle3BvaW50ZXItZXZlbnRzOm5vbmV9dW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZCAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH11bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkLWhke2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOjE2cHh9dW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZC1iZHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjcwcHg7cmlnaHQ6NzBweDttaW4td2lkdGg6MH0udW5pLXBhZ2UtaGVhZC1idG57cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6YXV0bzttYXJnaW46MCAycHg7d29yZC1icmVhazprZWVwLWFsbDt3aGl0ZS1zcGFjZTpwcmU7Y3Vyc29yOnBvaW50ZXJ9LnVuaS1wYWdlLWhlYWQtdHJhbnNwYXJlbnQgLnVuaS1wYWdlLWhlYWQtYnRue2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjUpfXVuaS1wYWdlLWhlYWQgLnVuaS1idG4taWNvbntvdmVyZmxvdzpoaWRkZW47bWluLXdpZHRoOjFlbX0udW5pLXBhZ2UtaGVhZC1idG4tcmVkLWRvdDphZnRlcntjb250ZW50OmF0dHIoYmFkZ2UtdGV4dCk7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtiYWNrZ3JvdW5kLWNvbG9yOnJlZDtjb2xvcjojZmZmO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7bGluZS1oZWlnaHQ6MThweDtib3JkZXItcmFkaXVzOjE4cHg7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC41KSB0cmFuc2xhdGUoNDAlLC00MCUpO3RyYW5zZm9ybTpzY2FsZSguNSkgdHJhbnNsYXRlKDQwJSwtNDAlKTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MTAwJSAwO3RyYW5zZm9ybS1vcmlnaW46MTAwJSAwfS51bmktcGFnZS1oZWFkLWJ0bi1yZWQtZG90W2JhZGdlLXRleHRdOmFmdGVye2ZvbnQtc2l6ZToxMnB4O3dpZHRoOmF1dG87bWluLXdpZHRoOjE4cHg7bWF4LXdpZHRoOjQycHg7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzowIDNweDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguNykgdHJhbnNsYXRlKDQwJSwtNDAlKTt0cmFuc2Zvcm06c2NhbGUoLjcpIHRyYW5zbGF0ZSg0MCUsLTQwJSl9LnVuaS1wYWdlLWhlYWQtYnRuLXNlbGVjdD4udW5pLWJ0bi1pY29uOmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OnVuaWJ0bjtjb250ZW50OiJcZTYwMSI7bWFyZ2luLWxlZnQ6MnB4Oy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpIHNjYWxlKC44KTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZykgc2NhbGUoLjgpfS51bmktcGFnZS1oZWFkLXNlYXJjaHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO21hcmdpbjowIDJweDtsaW5lLWhlaWdodDozMHB4O2ZvbnQtc2l6ZToxNXB4fS51bmktcGFnZS1oZWFkLXNlYXJjaC1pbnB1dHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3BhZGRpbmctbGVmdDozNHB4O3RleHQtYWxpZ246bGVmdH0udW5pLXBhZ2UtaGVhZC1zZWFyY2gtcGxhY2Vob2xkZXJ7cG9zaXRpb246YWJzb2x1dGU7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cGFkZGluZy1sZWZ0OjM0cHg7b3ZlcmZsb3c6aGlkZGVuO3dvcmQtYnJlYWs6a2VlcC1hbGw7d2hpdGUtc3BhY2U6cHJlfS51bmktcGFnZS1oZWFkLXNlYXJjaC1wbGFjZWhvbGRlci1yaWdodHtyaWdodDowfS51bmktcGFnZS1oZWFkLXNlYXJjaC1wbGFjZWhvbGRlci1jZW50ZXJ7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX0udW5pLXBhZ2UtaGVhZC1zZWFyY2gtcGxhY2Vob2xkZXI6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MnB4O3dpZHRoOjMwcHg7Y29udGVudDoiXGVhMGUiO2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjIwcHg7Zm9udC1mYW1pbHk6dW5pO3RleHQtYWxpZ246Y2VudGVyfXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWQtZnR7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246cmV2ZXJzZTstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO2ZvbnQtc2l6ZToxM3B4fXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWRfX3RpdGxle2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDozMHB4O3RleHQtYWxpZ246Y2VudGVyO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc311bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkX190aXRsZSAudW5pLWxvYWRpbmd7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDttYXJnaW4tdG9wOi0zcHh9dW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZF9fdGl0bGUgLnVuaS1wYWdlLWhlYWRfX3RpdGxlX2ltYWdle3dpZHRoOmF1dG87aGVpZ2h0OjI2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWQtc2hhZG93e292ZXJmbG93OnZpc2libGV9dW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZC1zaGFkb3c6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MTAwJTtoZWlnaHQ6NXB4O2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9dW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZC1zaGFkb3ctZ3JleTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2Nkbi5kY2xvdWQubmV0LmNuL2ltZy9zaGFkb3ctZ3JleS5wbmcpfXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWQtc2hhZG93LWJsdWU6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jZG4uZGNsb3VkLm5ldC5jbi9pbWcvc2hhZG93LWJsdWUucG5nKX11bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkLXNoYWRvdy1ncmVlbjphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2Nkbi5kY2xvdWQubmV0LmNuL2ltZy9zaGFkb3ctZ3JlZW4ucG5nKX11bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkLXNoYWRvdy1vcmFuZ2U6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jZG4uZGNsb3VkLm5ldC5jbi9pbWcvc2hhZG93LW9yYW5nZS5wbmcpfXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWQtc2hhZG93LXJlZDphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2Nkbi5kY2xvdWQubmV0LmNuL2ltZy9zaGFkb3ctcmVkLnBuZyl9dW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZC1zaGFkb3cteWVsbG93OmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2RuLmRjbG91ZC5uZXQuY24vaW1nL3NoYWRvdy15ZWxsb3cucG5nKX11bmktcGFnZS1oZWFkIC51bmktaWNvbi1jbGVhcnstd2Via2l0LWFsaWduLXNlbGY6Y2VudGVyO2FsaWduLXNlbGY6Y2VudGVyO3BhZGRpbmctcmlnaHQ6NXB4fXVuaS1wYWdlLXdyYXBwZXJ7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX11bmktcGFnZS1oZWFkW3VuaS1wYWdlLWhlYWQtdHlwZT1kZWZhdWx0XX51bmktcGFnZS13cmFwcGVye2hlaWdodDpjYWxjKDEwMCUgLSA0NHB4KTtoZWlnaHQ6Y2FsYygxMDAlIC0gNDRweCAtIGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC10b3ApKTtoZWlnaHQ6Y2FsYygxMDAlIC0gNDRweCAtIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSl9dW5pLXBhZ2UtYm9keSx1bmktcGFnZS1yZWZyZXNoe2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCV9dW5pLXBhZ2UtcmVmcmVzaHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtoZWlnaHQ6NDBweH11bmktcGFnZS1yZWZyZXNoIC51bmktcGFnZS1yZWZyZXNoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNDVweDtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC01MCUsMCwwKTtiYWNrZ3JvdW5kOiNmZmY7Ym94LXNoYWRvdzowIDFweCA2cHggcmdiYSgwLDAsMCwuMTE3NjQ3KSwwIDFweCA0cHggcmdiYSgwLDAsMCwuMTE3NjQ3KTtkaXNwbGF5Om5vbmU7ei1pbmRleDo5OTd9dW5pLXBhZ2UtcmVmcmVzaCAudW5pLXBhZ2UtcmVmcmVzaCx1bmktcGFnZS1yZWZyZXNoIC51bmktcGFnZS1yZWZyZXNoLWlubmVye3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOjUwJX11bmktcGFnZS1yZWZyZXNoIC51bmktcGFnZS1yZWZyZXNoLWlubmVye2xpbmUtaGVpZ2h0OjB9dW5pLXBhZ2UtcmVmcmVzaC51bmktcGFnZS1yZWZyZXNoLS1hYm9ydGluZyAudW5pLXBhZ2UtcmVmcmVzaCx1bmktcGFnZS1yZWZyZXNoLnVuaS1wYWdlLXJlZnJlc2gtLXB1bGxpbmcgLnVuaS1wYWdlLXJlZnJlc2gsdW5pLXBhZ2UtcmVmcmVzaC51bmktcGFnZS1yZWZyZXNoLS1yZWFjaGVkIC51bmktcGFnZS1yZWZyZXNoLHVuaS1wYWdlLXJlZnJlc2gudW5pLXBhZ2UtcmVmcmVzaC0tcmVmcmVzaGluZyAudW5pLXBhZ2UtcmVmcmVzaCx1bmktcGFnZS1yZWZyZXNoLnVuaS1wYWdlLXJlZnJlc2gtLXJlc3RvcmluZyAudW5pLXBhZ2UtcmVmcmVzaCx1bmktcGFnZS1yZWZyZXNoIC51bmktcGFnZS1yZWZyZXNoLWlubmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fXVuaS1wYWdlLXJlZnJlc2gudW5pLXBhZ2UtcmVmcmVzaC0tYWJvcnRpbmcgLnVuaS1wYWdlLXJlZnJlc2hfX3NwaW5uZXIsdW5pLXBhZ2UtcmVmcmVzaC51bmktcGFnZS1yZWZyZXNoLS1wdWxsaW5nIC51bmktcGFnZS1yZWZyZXNoX19zcGlubmVyLHVuaS1wYWdlLXJlZnJlc2gudW5pLXBhZ2UtcmVmcmVzaC0tcmVhY2hlZCAudW5pLXBhZ2UtcmVmcmVzaF9fc3Bpbm5lcix1bmktcGFnZS1yZWZyZXNoLnVuaS1wYWdlLXJlZnJlc2gtLXJlZnJlc2hpbmcgLnVuaS1wYWdlLXJlZnJlc2hfX2ljb24sdW5pLXBhZ2UtcmVmcmVzaC51bmktcGFnZS1yZWZyZXNoLS1yZXN0b3JpbmcgLnVuaS1wYWdlLXJlZnJlc2hfX2ljb257ZGlzcGxheTpub25lfXVuaS1wYWdlLXJlZnJlc2gudW5pLXBhZ2UtcmVmcmVzaC0tcmVmcmVzaGluZyAudW5pLXBhZ2UtcmVmcmVzaF9fc3Bpbm5lcnstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGNlbnRlcjt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBjZW50ZXI7LXdlYmtpdC1hbmltYXRpb246dW5pLXBhZ2UtcmVmcmVzaC1yb3RhdGUgMnMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjp1bmktcGFnZS1yZWZyZXNoLXJvdGF0ZSAycyBsaW5lYXIgaW5maW5pdGV9dW5pLXBhZ2UtcmVmcmVzaC51bmktcGFnZS1yZWZyZXNoLS1yZWZyZXNoaW5nIC51bmktcGFnZS1yZWZyZXNoX19wYXRoe3N0cm9rZS1kYXNoYXJyYXk6MSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2UtbGluZWNhcDpyb3VuZDstd2Via2l0LWFuaW1hdGlvbjp1bmktcGFnZS1yZWZyZXNoLWRhc2ggMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZSx1bmktcGFnZS1yZWZyZXNoLWNvbG9yZnVsIDZzIGVhc2UtaW4tb3V0IGluZmluaXRlO2FuaW1hdGlvbjp1bmktcGFnZS1yZWZyZXNoLWRhc2ggMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZSx1bmktcGFnZS1yZWZyZXNoLWNvbG9yZnVsIDZzIGVhc2UtaW4tb3V0IGluZmluaXRlfUAtd2Via2l0LWtleWZyYW1lcyB1bmktcGFnZS1yZWZyZXNoLXJvdGF0ZXt0b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pO3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX1Aa2V5ZnJhbWVzIHVuaS1wYWdlLXJlZnJlc2gtcm90YXRle3Rvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9fUAtd2Via2l0LWtleWZyYW1lcyB1bmktcGFnZS1yZWZyZXNoLWRhc2h7MCV7c3Ryb2tlLWRhc2hhcnJheToxLDIwMDtzdHJva2UtZGFzaG9mZnNldDowfTUwJXtzdHJva2UtZGFzaGFycmF5Ojg5LDIwMDtzdHJva2UtZGFzaG9mZnNldDotMzVweH10b3tzdHJva2UtZGFzaGFycmF5Ojg5LDIwMDtzdHJva2UtZGFzaG9mZnNldDotMTI0cHh9fUBrZXlmcmFtZXMgdW5pLXBhZ2UtcmVmcmVzaC1kYXNoezAle3N0cm9rZS1kYXNoYXJyYXk6MSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MH01MCV7c3Ryb2tlLWRhc2hhcnJheTo4OSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6LTM1cHh9dG97c3Ryb2tlLWRhc2hhcnJheTo4OSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6LTEyNHB4fX11bmktcGFnZXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnVuaS1hc3luYy1lcnJvcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MDtjb2xvcjojOTk5O3BhZGRpbmc6MTAwcHggMTBweDt0ZXh0LWFsaWduOmNlbnRlcn0udW5pLWFzeW5jLWxvYWRpbmd7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7cGFkZGluZzo1MHB4O3RleHQtYWxpZ246Y2VudGVyfS51bmktYXN5bmMtbG9hZGluZyAudW5pLWxvYWRpbmd7d2lkdGg6MzBweDtoZWlnaHQ6MzBweH1AZm9udC1mYWNle2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LWZhbWlseTp1bmltYXBidG47c3JjOnVybCgiZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LEFBRUFBQUFLQUlBQUF3QWdUMU12TWtMTFhpUUFBQUNzQUFBQVlHTnRZWEFBRGUzWUFBQUJEQUFBQVVKbmJIbG16Q2VPRWdBQUFsQUFBQUQ0YUdWaFpCY0gvTmtBQUFOSUFBQUFObWhvWldFSHZnT2lBQUFEZ0FBQUFDUm9iWFI0QkFBQUFBQUFBNlFBQUFBR2JHOWpZUUI4QUFBQUFBT3NBQUFBQm0xaGVIQUJEd0JsQUFBRHRBQUFBQ0J1WVcxbGF6NXgwQUFBQTlRQUFBTFpjRzl6ZEFFUUFBSUFBQWF3QUFBQUp3QUVCQUFCa0FBRkFBZ0NpUUxNQUFBQWp3S0pBc3dBQUFIckFESUJDQUFBQWdBRkF3QUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUJRWmtWa0FFRHNNdXd5QTREL2dBQmNBNEFBZ0FBQUFBRUFBQUFBQUFBQUFBQUFBQ0FBQUFBQUFBTUFBQUFEQUFBQUhBQUJBQUFBQUFBOEFBTUFBUUFBQUJ3QUJBQWdBQUFBQkFBRUFBRUFBT3d5Ly84QUFPd3kvLzhUendBQkFBQUFBQUFBQVFZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREFBRC9vQVBnQTJBQUNBQXdBRmdBQUFFZUFUSTJOQ1lpQmdVakxnRW5OVFFtSWdZZEFRNEJCeU1pQmhRV093RWVBUmNWRkJZeU5qMEJQZ0UzTXpJMk5DWUJOVFFtSWdZZEFTNEJKek15TmpRbUt3RStBVGNWRkJZeU5qMEJIZ0VYSXlJR0ZCWTdBUTRCQWJBQkxVUXRMVVF0QWc4aUQ5T2NFaHdTbk5NUElnNFNFZzRpRDlPY0Vod1NuTk1QSWc0U0V2NVNFaHdTZ2E4T1BnNFNFZzQrRHErQkVod1NnYThPUGc0U0VnNCtEcThCZ0NJdExVUXRMUUtjMHc4aURoSVNEaUlQMDV3U0hCS2MwdzhpRGhJU0RpSVAwNXdTSEJMK2dqNE9FaElPUGc2dmdSSWNFb0d2RGo0T0VoSU9QZzZ2Z1JJY0VvR3ZBQUVBQUFBQkFBQm1WKzB6WHc4ODlRQUxCQUFBQUFBQTJnUmNiZ0FBQUFEYUJGeHVBQUQvb0FQZ0EyQUFBQUFJQUFJQUFBQUFBQUFBQVFBQUE0RC9nQUJjQkFBQUFBQWdBK0FBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUVFQUFBQUFBQUFBQUFBQUFBQWZBQUFBQUVBQUFBQ0FGa0FBd0FBQUFBQUFnQUFBQW9BQ2dBQUFQOEFBQUFBQUFBQUFBQVNBTjRBQVFBQUFBQUFBQUFWQUFBQUFRQUFBQUFBQVFBUkFCVUFBUUFBQUFBQUFnQUhBQ1lBQVFBQUFBQUFBd0FSQUMwQUFRQUFBQUFBQkFBUkFENEFBUUFBQUFBQUJRQUxBRThBQVFBQUFBQUFCZ0FSQUZvQUFRQUFBQUFBQ2dBckFHc0FBUUFBQUFBQUN3QVRBSllBQXdBQkJBa0FBQUFxQUtrQUF3QUJCQWtBQVFBaUFOTUFBd0FCQkFrQUFnQU9BUFVBQXdBQkJBa0FBd0FpQVFNQUF3QUJCQWtBQkFBaUFTVUFBd0FCQkFrQUJRQVdBVWNBQXdBQkJBa0FCZ0FpQVYwQUF3QUJCQWtBQ2dCV0FYOEFBd0FCQkFrQUN3QW1BZFVLUTNKbFlYUmxaQ0JpZVNCcFkyOXVabTl1ZEFwMWJtbGphRzl2YzJWc2IyTmhkR2x2YmxKbFozVnNZWEoxYm1samFHOXZjMlZzYjJOaGRHbHZiblZ1YVdOb2IyOXpaV3h2WTJGMGFXOXVWbVZ5YzJsdmJpQXhMakIxYm1samFHOXZjMlZzYjJOaGRHbHZia2RsYm1WeVlYUmxaQ0JpZVNCemRtY3lkSFJtSUdaeWIyMGdSbTl1ZEdWc2JHOGdjSEp2YW1WamRDNW9kSFJ3T2k4dlptOXVkR1ZzYkc4dVkyOXRBQW9BUXdCeUFHVUFZUUIwQUdVQVpBQWdBR0lBZVFBZ0FHa0FZd0J2QUc0QVpnQnZBRzRBZEFBS0FIVUFiZ0JwQUdNQWFBQnZBRzhBY3dCbEFHd0Fid0JqQUdFQWRBQnBBRzhBYmdCU0FHVUFad0IxQUd3QVlRQnlBSFVBYmdCcEFHTUFhQUJ2QUc4QWN3QmxBR3dBYndCakFHRUFkQUJwQUc4QWJnQjFBRzRBYVFCakFHZ0Fid0J2QUhNQVpRQnNBRzhBWXdCaEFIUUFhUUJ2QUc0QVZnQmxBSElBY3dCcEFHOEFiZ0FnQURFQUxnQXdBSFVBYmdCcEFHTUFhQUJ2QUc4QWN3QmxBR3dBYndCakFHRUFkQUJwQUc4QWJnQkhBR1VBYmdCbEFISUFZUUIwQUdVQVpBQWdBR0lBZVFBZ0FITUFkZ0JuQURJQWRBQjBBR1lBSUFCbUFISUFid0J0QUNBQVJnQnZBRzRBZEFCbEFHd0FiQUJ2QUNBQWNBQnlBRzhBYWdCbEFHTUFkQUF1QUdnQWRBQjBBSEFBT2dBdkFDOEFaZ0J2QUc0QWRBQmxBR3dBYkFCdkFDNEFZd0J2QUcwQUFBQUFBZ0FBQUFBQUFBQUtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdBQ0FBQUJBZ0FBIikgZm9ybWF0KCJ0cnVldHlwZSIpfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6I2Y4ZjhmOH0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLm1hcHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MzAwcHh9LnVuaS1zeXN0ZW0tY2hvb3NlLWxvY2F0aW9uIC5tYXAtbG9jYXRpb257cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7Ym90dG9tOjUwJTt3aWR0aDozMnB4O2hlaWdodDo1MnB4O21hcmdpbi1sZWZ0Oi0xNnB4O2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtc2l6ZToxMDAlfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubWFwLW1vdmV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjUwcHg7cmlnaHQ6MTBweDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtsaW5lLWhlaWdodDo0MHB4O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czphdXRvO2N1cnNvcjpwb2ludGVyO2JveC1zaGFkb3c6MCAwIDVweCAxcHggcmdiYSgwLDAsMCwuMyl9LnVuaS1zeXN0ZW0tY2hvb3NlLWxvY2F0aW9uIC5tYXAtbW92ZT5pe2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtmb250Om5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSB1bmltYXBidG47bGluZS1oZWlnaHQ6aW5oZXJpdDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MjRweDt0ZXh0LXJlbmRlcmluZzphdXRvOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWR9LnVuaS1zeXN0ZW0tY2hvb3NlLWxvY2F0aW9uIC5uYXZ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjQ0cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLHJnYmEoMCwwLDAsLjMpLHJnYmEoMCwwLDAsMCkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLC4zKSxyZ2JhKDAsMCwwLDApKX0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLm5hdi1idG57cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O3RvcDowO2xlZnQ6MDt3aWR0aDo2MHB4O2hlaWdodDo0NHB4O3BhZGRpbmc6NnB4O2xpbmUtaGVpZ2h0OjMycHg7Zm9udC1zaXplOjI2cHg7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtjdXJzb3I6cG9pbnRlcn0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLm5hdi1idG4uY29uZmlybXtsZWZ0OmF1dG87cmlnaHQ6MH0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLm5hdi1idG4uZGlzYWJsZXtvcGFjaXR5Oi40fS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubmF2LWJ0bj4udW5pLWJ0bi1pY29ue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtsaW5lLWhlaWdodDppbmhlcml0O2JvcmRlci1yYWRpdXM6MnB4fS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubmF2LWJ0bi5jb25maXJtPi51bmktYnRuLWljb257YmFja2dyb3VuZC1jb2xvcjojMDA3YWZmfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubWVudXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MzAwcHg7bGVmdDowO3dpZHRoOjEwMCU7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAuc2VhcmNoe2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93O2hlaWdodDo1MHB4O3BhZGRpbmc6OHB4O2xpbmUtaGVpZ2h0OjM0cHg7Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQtY29sb3I6I2ZmZn0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLnNlYXJjaC1pbnB1dHstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO2hlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6NXB4O3BhZGRpbmc6MCA1cHg7YmFja2dyb3VuZDojZWJlYmVifS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAuc2VhcmNoLWJ0bnttYXJnaW4tbGVmdDo1cHg7Y29sb3I6IzAwN2FmZjtmb250LXNpemU6MTdweDt0ZXh0LWFsaWduOmNlbnRlcn0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLmxpc3R7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwcHg7bGVmdDowO3dpZHRoOjEwMCU7Ym90dG9tOjA7cGFkZGluZy1ib3R0b206MTBweH0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLmxpc3QtbG9hZGluZ3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NTBweDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubGlzdC1pdGVte3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MTBweDtwYWRkaW5nLXJpZ2h0OjQwcHg7Y3Vyc29yOnBvaW50ZXJ9LnVuaS1zeXN0ZW0tY2hvb3NlLWxvY2F0aW9uIC5saXN0LWl0ZW0uc2VsZWN0ZWQ6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTBweDt3aWR0aDozMHB4O2hlaWdodDozMHB4O21hcmdpbi10b3A6LTE1cHg7dGV4dC1hbGlnbjpjZW50ZXI7Y29udGVudDoiXGU2NTEiO2ZvbnQ6bm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIHVuaWJ0bjtmb250LXNpemU6MjRweDtsaW5lLWhlaWdodDozMHB4O2NvbG9yOiMwMDdhZmY7dGV4dC1yZW5kZXJpbmc6YXV0bzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubGlzdC1pdGVtOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtoZWlnaHQ6MXB4O2xlZnQ6MTBweDtib3R0b206MDt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6I2QzZDNkM30udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLmxpc3QtaXRlbS10aXRsZXtmb250LXNpemU6MTRweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LnVuaS1zeXN0ZW0tY2hvb3NlLWxvY2F0aW9uIC5saXN0LWl0ZW0tZGV0YWlse2ZvbnQtc2l6ZToxMnB4O2NvbG9yOmdyZXk7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ODAwcHgpey51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubWFwe3RvcDowO2hlaWdodDoxMDAlfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubWFwLW1vdmV7Ym90dG9tOjEwcHg7cmlnaHQ6MzIwcHh9LnVuaS1zeXN0ZW0tY2hvb3NlLWxvY2F0aW9uIC5tZW51e3RvcDo1NHB4O2xlZnQ6YXV0bztyaWdodDoxMHB4O3dpZHRoOjMwMHB4O2JvdHRvbToxMHB4O21heC1oZWlnaHQ6NjAwcHg7Ym94LXNoYWRvdzowIDAgMjBweCA1cHggcmdiYSgwLDAsMCwuMyl9fS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb257ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiNmOGY4Zjg7ei1pbmRleDo5OTl9LnVuaS1zeXN0ZW0tb3Blbi1sb2NhdGlvbiAubWFwe3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2JvdHRvbTo4MHB4O2hlaWdodDphdXRvfS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLmluZm97cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjgwcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO3BhZGRpbmc6MTVweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bGluZS1oZWlnaHQ6MS41fS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLmluZm8+Lm5hbWV7Zm9udC1zaXplOjE3cHg7Y29sb3I6IzExMX0udW5pLXN5c3RlbS1vcGVuLWxvY2F0aW9uIC5pbmZvPi5hZGRyZXNze2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiM2NjZ9LnVuaS1zeXN0ZW0tb3Blbi1sb2NhdGlvbiAuaW5mbz4ubmF2e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTVweDt3aWR0aDo1MHB4O2hlaWdodDo1MHB4O2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbi10b3A6LTI1cHg7YmFja2dyb3VuZC1jb2xvcjojMDA3YWZmfS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLmluZm8+Lm5hdj5zdmd7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3BhZGRpbmc6MTBweDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LnVuaS1zeXN0ZW0tb3Blbi1sb2NhdGlvbiAubWFwLW1vdmV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjUwcHg7cmlnaHQ6MTBweDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtsaW5lLWhlaWdodDo0MHB4O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czphdXRvO2N1cnNvcjpwb2ludGVyO2JveC1zaGFkb3c6MCAwIDVweCAxcHggcmdiYSgwLDAsMCwuMyl9LnVuaS1zeXN0ZW0tb3Blbi1sb2NhdGlvbiAubWFwLW1vdmU+aXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Zm9udDpub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgdW5pbWFwYnRuO2xpbmUtaGVpZ2h0OmluaGVyaXQ7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjI0cHg7dGV4dC1yZW5kZXJpbmc6YXV0bzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkfS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLm5hdi1idG4tYmFja3twb3NpdGlvbjphYnNvbHV0ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7dG9wOjA7bGVmdDowO3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7cGFkZGluZzo2cHg7bGluZS1oZWlnaHQ6MzJweDtmb250LXNpemU6MjZweDtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO2N1cnNvcjpwb2ludGVyfS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLm5hdi1idG4tYmFjaz4udW5pLWJ0bi1pY29ue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtsaW5lLWhlaWdodDppbmhlcml0O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNSl9LnVuaS1zeXN0ZW0tb3Blbi1sb2NhdGlvbiAubWFwLWNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7Ym90dG9tOjA7b3ZlcmZsb3c6aGlkZGVufS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLm1hcC1jb250ZW50LmZpeC1wb3NpdGlvbnt0b3A6LTc0cHg7Ym90dG9tOi00NHB4fS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLm1hcC1jb250ZW50PmlmcmFtZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlcjpub25lfS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLmFjdFRvbmF2e3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjE2cHg7Ym90dG9tOjU2cHg7d2lkdGg6NjBweDtoZWlnaHQ6NjBweDtib3JkZXItcmFkaXVzOjYwcHh9dW5pLWF1ZGlve2Rpc3BsYXk6bm9uZX11bmktYXVkaW9bY29udHJvbHNde2Rpc3BsYXk6aW5saW5lLWJsb2NrfXVuaS1hdWRpb1toaWRkZW5de2Rpc3BsYXk6bm9uZX0udW5pLWF1ZGlvLWRlZmF1bHR7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjMwMnB4O2hlaWdodDo2NXB4O2JhY2tncm91bmQ6I2ZjZmNmYztib3JkZXI6MXB4IHNvbGlkICNlMGUwZTA7Ym9yZGVyLXJhZGl1czoyLjVweDtkaXNwbGF5OmlubGluZS1ibG9jaztvdmVyZmxvdzpoaWRkZW59LnVuaS1hdWRpby1sZWZ0e3dpZHRoOjY1cHg7aGVpZ2h0OjY1cHg7ZmxvYXQ6bGVmdDtiYWNrZ3JvdW5kLWNvbG9yOiNlNmU2ZTY7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJSA1MCV9LnVuaS1hdWRpby1idXR0b257d2lkdGg6MjRweDtoZWlnaHQ6MjRweDttYXJnaW46MjAuNXB4O2JhY2tncm91bmQtc2l6ZTpjb3Zlcn0udW5pLWF1ZGlvLWJ1dHRvbi5wbGF5e2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBWUFBQUJYQXZtSEFBQUFBWE5TUjBJQXJzNGM2UUFBQjRkSlJFRlVhQVhOV2cxTWxWVVl2cGNmSVJDSitNbkNhT0JsOGRPY09DRVFaOWttSTVjUUc1WWI2TWlmS2JNYUdWb2JPdGxpYlRXSERwZ3B4QlV3RjA3ODI2aUZzTWtZSmhnNTU5SmRHaVFTa1V6U0JBMFFrWjduNC91K25Yc3Z3ZjNqd3J1OTkveS8zL04rM3pudmVjOTdybGJqQUJvZkgzOEdZdGFBVjRNandEcXdIOWdIVEJvRTN3ZDNnQTNnaStCNnJWWTdoSFIyQ0tEOXdGbmdzK0JIWUd1Sll6aVdNcWlzY3dnUDh3THZCUStBSFVXVVJabGUxbXFodFhRQWhMdWk3eFp3UHZnRnNCRU5EZzcrRHJwMDY5YXQyejA5UGYwM2I5Nzh1Nm1wcVorZFZxMWFGUkFWRmVXL2FOR2lnTkRRMEpmRHdzSVNmWHg4d293RVRCVCtRcElQTHNmMEdwdW9tdnJYSWdVQVBoaGl6b0dYaStJSSt0cTFhei9vOWZwTEZSVVZkOFMyNmZKWldWa0xOMi9lbkJnVEUvUFcvUG56RjV2MGIwUDVIU2p4cDBtOVdYRmFCUUQrTll3NkMxYmYrdkR3Y0Y5RFE0TisvZnIxOWNpUG0wbTFvc0xUMDFONzZ0U3BOYUQzUFR3OEZncEQrVFhTb0VTclVHZVduVklCZ00vRWlES3dKMGVpUE5yUzBuSnN3NFlOTmQzZDNhT3NjeFNGaElTNFYxZFhweWNrSkdSQjVqeFo3akRTYlZEaVc3bHNscmlZMWNnVk12ampLRXJnUjBkSC96bDA2TkN1RlN0V2ZPZG84SHdrWlZMMndZTUhQM255NUFsTkxvblBQaTVqa1NwTWZ5YjlBaGpBYWRNSWxzQmpybmRtWjJmbm5UaHhvczlVd0V5VU16SXluajl5NUVnQjFnYjNFeEsveEJ1VFRTY3pCUUNlQy9abnNEVG5DUjZmOVlNYk4yNVFpTk1vT2pyYXM3VzF0Y2piMnp0Y2ZpalhSS3pwd2phYVFnQlBVMGxySTRIbnRPR2Jkelo0QXVZenQyL2Z2bTlzYk93ZXl5QmlPaWRqbENyNFk2UUF5clR6a3FsRXg5R1NrcEo5enBvMkJHTktmSFpSVWRGKzFEK1cyNGlOR0ZWU3B4QUFjeGVrcnlLOS9jdVhMeC9Gb3FwV2U4NWlCbFBwdmJpNHVCMHlCRTRsSGFiU3Z5eUxYMkFYeWhKNDJubVl5dFBzTUJjSSs4MFpXS1plR1FzeEVxdEVrZ0o0KzNTbTlzaDFHbTVTTTJFcUZmbldwc1JTVjFkWElZemJJMk5XdjBBcUdpWFhsKzRCZDFpaHMwWFp1M2Z2SGhnWUdOQlhWVlVsV0RUQXlrN3A2ZWtOSXlNajdmSXdZaVZtSXdXa052bzJ0cmdIQVFFQnkrQ2doVzdjdVBHTHZyNitMM2Z1M1BtU0pOQkJQOFIwOWVyVkh3VnhFd3JnVS9Bd2txUTAwREZUOGxhbXFrRUlDZ3FLS3k0dTFzTVU3bGk2ZEtuVkx2TC9QYmUwdExSRmFFc2lkaTErVWxCNW5nM2N0QllzV0xCVjZHUnhGbko0eWpJajdDWDM2dXZyUzFOVFUrdXdFTTNhcmEzQWwvZ2FUbCtFUEM2VmkvaE5SVWhIUjhkUFN0NVJxYnU3KzNOcjE2NzlyTCsvLzNCQlFZSHlZSnZGZDNWMWlUTmtOUlY0UlpGMkc2VGtIWjM2K3ZwRzV1WGxIY2FoNTlQazVHU2JqNUFZM3kxZ2k2QUNpc09rNFVsS2FKeUpyQlluc3VUYTJ0cmp6YzNONy9yNys5TjFzWW82T3pzZkNBTjBWRUI5R3p3R0NvMHpsblYxZGZWT1RFek1objNYbDVlWHgxcnpJQk9NZmxSQXN2OFVvcHhoclJGb1QxOHZMNjhRSEN1L2FtOXZ6N0ZVamdsR0h5b3c2eFFjSEJ4akt3Z3F3S0NUUkl3ZUtIbG5wWmhHRGZDN0xQNENKaGdIM1FDVXh6ZC9BbWJvQTBrUDh6Tk5jRHQrdzhaVXZIdjM3bCt0ZWRhU0pVdWVGZnJmcHdKMG9TVkx4TGlOMERnaldXeHNEeG9iRzc5SlNVbjUzaGFYUmFmVCtRckFPamlGREVvRmcwNUszdEVwZHVveGc4RndldVhLbFJsSlNVbTF0b0FucHZEd2NCNTVGVEpRQWRVRllNUk1hWEZraWwzNGw5emMzSzJSa1pFbFY2NWNlV1NQYkN6NDE0WHhGNmtBWFdmcGRNTndIeU5tUWdlN3NrTkRRM2RPbmp5NVB6QXdNTGV3c0xETExtRVlESk1iNU9ibUZpWExJZVo2Rnh6TkdPSytJRmV5azkxZjRlblRweU50YlczSElpSWlOc0hDTkNteTdVMXpjbktXQ1RJdUVEdS9BT244UktMUk1GYkpjSjlTdGpSbEJJTjk0WTQwWm1abWJvcU5qYTNpU2NyUzhkUDFJeWFFV3Q0VytrbVlhWVZJTEhBLzhHR2dsYkhLZGV2V3FWK0ZIYVlqT0dvZnc4MTFoY2ZaT1YxZlc5cHh6RTF3Y1hHSmxzY1NxNlNBK3FaaEpmYWk4bk4yd05IdERoYjBwdDdlWG9lOVFjcTFsUmczaFJ2TmtMdHl5dHVIZkFIbEtWT0krVUl3UXhZYVJvbHJhbXJTbVo4TGhMZWZKSUFuUm1LVlNGVUFIYmlxOHllcU5ScEdpV0U1WGxYS3M1V1dsWlV0aHUzL1NIaCt2b3hWcWxLbkVFdVlSdlRQZWU1Y3pqS2p4RENyMmJNVm5ZTkY5SU83ZlJSUUFva0h4SXVQZUNpZzN0NFlLY0FlVUNJWWlScmNmZmp3WVVkOGZQeUh6bzZQd3VKNFhMOSsvUUFXcmpJTE9IV21EdTVTQVdqSGE1MDBzQlNOWm9pYlVXS0d2Tm51RE9LYk53RlBMTHl0SVRZalV0ZUFXSXVPdk5iWnB0UXh4RjFaV1huWUdXdUNjNTdUUm5qemhNRmJHbUl5STdNcEpQYkFkTXBFdVF6c0tkYy9oaStqVDB0TE8rTm9FMHRUU1dzakw5aDU4dlA0NXFlOFlwcFNBUXFCRW1hWGZBeTBNbGJKY0ordFhxVU1VTU1kbHBzVUl1RTc4SllWTzg5bXpubjdMdm1VaDhnTCt4ektrblZTNmhtclpMaVBFVE5ycjFucG1ORzNvWHNnN0xDS2FGb2J4MXl6S2hLaEJFM3NGbkErbUNGdUk0SXlCdXlXellqYi9NSFFoK2xGTjA5U1BJeGdpcnhJbHhoZXBlSVdpSEw0MXZQQkZsOTBpNE10eWtPUk9mVlhBNHRBVDlZSmlzeUpQM3RNdTRnbkEyOWFCMlVZNFY0RFhnMW0vRk1IOWdNck1TZDZqd3dlOFB4dEFQTVU2SkMvMi93SHV5STJjTXNOQlJJQUFBQUFTVVZPUks1Q1lJST0pfS51bmktYXVkaW8tYnV0dG9uLnBhdXNle2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBWUFBQUJYQXZtSEFBQUFBWE5TUjBJQXJzNGM2UUFBQmF0SlJFRlVhQVhWV2wxSXBGVVlubGxaR1VmM3dsejZNWEVSMUVTN3M4M1ZVREp3NktwZGFTVER3TW5ZRlNLNktOaXJvb0h1bGxLUUNOelFSalovd29tMXU5QUxRMG1UMWt0RmRFQldYTGRpYmFIMWp3bXg1em1lODNXK3oySG0rN2JabWM4WDNqbC83M3ZPODM3bi96M2o5YVNCam82TzhsQk5DN2daWEFVdUJ4ZUN6NEZKajhBUHdUSHdDbmdhUE9YMWV2Y1Jab2NBdWhBY0F0OEc3NEtkRW5Xb3l6cG9iR1lJamZuQm40RC9CcWVMV0JmcjlEdTF3bXRYQVpYblFQWTljQmo4SE5oRWUzdDdzYlcxdGZuMTlmVzdtNXViRDVhWGw3ZG5abVllVUtpcHFlbDhkWFYxVVVsSnlmbXlzcklMRlJVVjlYNi9uOFBNU3ZlUkVRWVBZSGdkV2dzVHBXMFpBUERQUTNrQy9KSmVDVUV2TGk3K05EZzQrRXNrRXZsZEwwc1ZENFZDejNaMWRiMVNXMXY3ZWdKajdrRC9Db3k0bDZxZWxBWUFmQjBxdVEwMnZubzhIcjgvT1RrWmFXdHJtem80T0RoSzFVaXljcC9QNXgwZkgyOEpCQUtoM054Y293M29zRGRhWWNSQ012MmtCZ0Q4TzFEK0J1eVRsY1RuNStjajdlM3QwWTJOalgrU1ZleTByTFMwOU96WTJGaXd2cjQrQk4xY3FYK0E4Q3FNK0U2bVR3Um5UdVRJREFuK0ZwSUMvT0hoNFYrOXZiMGZOelEwaktZYlBKdGtuYXliYmJBdENZTnQzNUpZWkpZNVNOZ0RjdGo4REZFQmZuZDNkNjI3dS92VDRlSGhQOHpxVHliVjBkSHhUSDkvLytmNStma1ZzZ1gyeEt1Smh0TUpBd0NlRS9ZM3NCaVBCRjlYVi9maDB0SVNLOGtZMWRUVStCWVdGdm8wSXpnbkxsb250bWtJQVR5WFNxNDJBank3a2w4KzArRDVsZGdtMjlhR0V6Rk5TSXdVRVdReUFEbGM1OVZTR2UvcjYvc3NVOFBtR0k3NWwyMFRBM0xqc29UWWlORWdZd2pCTXU2Q1BLdUlyNC9WcGgrVGFzeVF6R0prYm03dWJheE8xeVFFRHFWeURLVTlwdlVlK0FocEFaN3JQSmJLSHlqZ0J1S3lUVXdTQ3pFU3F5QmhBTDQrRDFQWFpaNkhtOVNUV0NwVi9VNURZaUVtVGUrNnhPd1JRd2lKRUFxL3BRQ1BCMFZGUmRmKzd3N0x1dEpKM0xHM3Q3ZHZhc2VPZHpHTUltb0lYVmFOOFd6ak52REVSa3pFcG5BaUZKalA0T3Z6TWhKUUJUeVlxYmpkRURvdjcrL3ZmNCs2cHUwd1pRY0dCaTdhclYvSldiQUZpTjJMbnpjZzhDT0Z1R2tWRkJTbzJhNzBVb1lFaEM1K09xV2dKb0F2K21kZVh0NWJXcGF0Nk03T3prMXRjN3ZNSWZTYTBseGRYZjFWeFoyRVRzR3o3c2ZSb1Y0c0Z0TXhOdE9BRjFoQXVnczZqcm4zbHhjbURWMFZEVEJ1UnJ4SmFZV3VqRm93bHRNQTQwTE5hNkFyVVd1Z0xCZ0xhWUJ5ZlhqVUhWYVRkMTNVZ3ZFY0RUalZSQVBvZEJKRTc0R0t1elcwWUh4RUErZ3hFMFRYaDRxN05iUmdmRWdEZUlRV1JMK05pcnMxdEdDTTBZQVZCWlpPSnhWM2EyakJ1RUlEcGhWWWVzeFUzRW5JWTRFVGVjbytqZzcxTEJpbmFjQVVXTnh1ZUZTbHg0eUNUbWgwZFBSTEo0QW9Pekl5OG9XVE5paExiTnB4bXBpbjFIMkFucmNyRkpxZG5mMEtNOTAxdHpGaVVvUTk0TTNHeHNZUFpIb0M5NEZXOWdCSm5FWVpvYThTQnkxaEdOTnVJV0lpTmcyUHdLd2JJUFlEZGhGOWxacWdLNkxFcEEwZll2M1BBSFFGOTRJYkNpa2RyY1hGeFdkVk90c2gvYWJFcE9HNElUR2J2Qkk5RUJBM2YzcUpvOUZvVUZQSWFwUk9YODF6VFl6RUtrZ05JUThzNHF3T0gyZDdQUFFTOS9UMHZLalMyUXFKUVhxc0ZZU3d4Q3JTcHNtSzZ5VmRpN3p4MEFQbW9WdXZzN1B6L1d4NTUramtIUm9hK2pvbkorY3A0Z0hkQVYrQ0FjYnJqY2tBU3NDSTArdmNwUUd3N2g2Q1ZyRHdSdk1DVFM4eHZ3YkxNMEZzeStLWkpoYSsxaENiaVl3NW9PZENrTTg2VjFVZWpXQlhabUpPc0EyMnBYa2VDSU92TkFtZm1rNE1JUVdhSVlaVHdpZW1ZREFZM2RyYWNzVVRVMUlEcEJHbjk1RlA5WWFjMktmem1WVXpna3NzSHhmQ1lPR0dSMmdRdlhwMGpORzNsT3loK3dLb3NyTHlrbVdNcTNxNFNZWEJ0aCs2bGFMdEVMM2hxcjhhMkFadUZZUWhydml6UjhwSmJBV2VLQTFqNk9GdUFUZURxOEQwOWhXQ2xjK0pwMGNlR0huLzVoV1d0OEMwL04zbVgxNUM0YkRuQ0l1QUFBQUFBRWxGVGtTdVFtQ0MpfS51bmktYXVkaW8tcmlnaHR7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDo2NXB4O21hcmdpbi1sZWZ0OjY1cHg7cGFkZGluZzoxMXB4IDE2LjVweCAxMy41cHggMTVweDtvdmVyZmxvdzpoaWRkZW59LnVuaS1hdWRpby10aW1le21hcmdpbi10b3A6My41cHg7aGVpZ2h0OjE2LjVweDtmb250LXNpemU6MTJweDtjb2xvcjojODg4O2Zsb2F0OnJpZ2h0fS51bmktYXVkaW8taW5mb3ttYXJnaW4tcmlnaHQ6NzBweDtvdmVyZmxvdzpoaWRkZW59LnVuaS1hdWRpby1uYW1le2hlaWdodDoyMi41cHg7bGluZS1oZWlnaHQ6MjIuNXB4O21hcmdpbi1ib3R0b206My41cHg7Zm9udC1zaXplOjE0cHg7Y29sb3I6IzM1MzUzNX0udW5pLWF1ZGlvLWF1dGhvciwudW5pLWF1ZGlvLW5hbWV7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS51bmktYXVkaW8tYXV0aG9ye2hlaWdodDoxNC41cHg7bGluZS1oZWlnaHQ6MTQuNXB4O2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiM4ODh9dW5pLWJ1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87cGFkZGluZy1sZWZ0OjE0cHg7cGFkZGluZy1yaWdodDoxNHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtmb250LXNpemU6MThweDt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTtsaW5lLWhlaWdodDoyLjU1NTU1NTU2O2JvcmRlci1yYWRpdXM6NXB4Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtvdmVyZmxvdzpoaWRkZW47Y29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY4Zjg7Y3Vyc29yOnBvaW50ZXJ9dW5pLWJ1dHRvbltoaWRkZW5de2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9dW5pLWJ1dHRvbjphZnRlcntjb250ZW50OiIgIjt3aWR0aDoyMDAlO2hlaWdodDoyMDAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjIpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC41KTt0cmFuc2Zvcm06c2NhbGUoLjUpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNmb3JtLW9yaWdpbjowIDA7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6MTBweH11bmktYnV0dG9uW25hdGl2ZV17cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfXVuaS1idXR0b25bbmF0aXZlXSAudW5pLWJ1dHRvbi1jb3Zlci12aWV3LXdyYXBwZXJ7Ym9yZGVyOmluaGVyaXQ7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXJhZGl1czppbmhlcml0O2JhY2tncm91bmQtY29sb3I6aW5oZXJpdH11bmktYnV0dG9uW25hdGl2ZV0gLnVuaS1idXR0b24tY292ZXItdmlldy1pbm5lcntwYWRkaW5nLWxlZnQ6MTRweDtwYWRkaW5nLXJpZ2h0OjE0cHh9dW5pLWJ1dHRvbiB1bmktY292ZXItdmlld3tsaW5lLWhlaWdodDppbmhlcml0O3doaXRlLXNwYWNlOmluaGVyaXR9dW5pLWJ1dHRvblt0eXBlPWRlZmF1bHRde2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojZjhmOGY4fXVuaS1idXR0b25bdHlwZT1wcmltYXJ5XXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwN2FmZn11bmktYnV0dG9uW3R5cGU9d2Fybl17Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNlNjQzNDB9dW5pLWJ1dHRvbltkaXNhYmxlZF17Y29sb3I6aHNsYSgwLDAlLDEwMCUsLjYpO2N1cnNvcjpub3QtYWxsb3dlZH11bmktYnV0dG9uW2Rpc2FibGVkXTpub3QoW3R5cGVdKSx1bmktYnV0dG9uW2Rpc2FibGVkXVt0eXBlPWRlZmF1bHRde2NvbG9yOnJnYmEoMCwwLDAsLjMpO2JhY2tncm91bmQtY29sb3I6I2Y3ZjdmN311bmktYnV0dG9uW2Rpc2FibGVkXVt0eXBlPXByaW1hcnlde2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDEyMiwyNTUsLjYpfXVuaS1idXR0b25bZGlzYWJsZWRdW3R5cGU9d2Fybl17YmFja2dyb3VuZC1jb2xvcjojZWM4Yjg5fXVuaS1idXR0b25bdHlwZT1wcmltYXJ5XVtwbGFpbl17Y29sb3I6IzAwN2FmZjtib3JkZXI6MXB4IHNvbGlkICMwMDdhZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfXVuaS1idXR0b25bdHlwZT1wcmltYXJ5XVtwbGFpbl1bZGlzYWJsZWRde2NvbG9yOnJnYmEoMCwwLDAsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4yKX11bmktYnV0dG9uW3R5cGU9cHJpbWFyeV1bcGxhaW5dOmFmdGVye2JvcmRlci13aWR0aDowfXVuaS1idXR0b25bdHlwZT1kZWZhdWx0XVtwbGFpbl17Y29sb3I6IzM1MzUzNTtib3JkZXI6MXB4IHNvbGlkICMzNTM1MzU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfXVuaS1idXR0b25bdHlwZT1kZWZhdWx0XVtwbGFpbl1bZGlzYWJsZWRde2NvbG9yOnJnYmEoMCwwLDAsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4yKX11bmktYnV0dG9uW3R5cGU9ZGVmYXVsdF1bcGxhaW5dOmFmdGVye2JvcmRlci13aWR0aDowfXVuaS1idXR0b25bcGxhaW5de2NvbG9yOiMzNTM1MzU7Ym9yZGVyOjFweCBzb2xpZCAjMzUzNTM1O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX11bmktYnV0dG9uW3BsYWluXVtkaXNhYmxlZF17Y29sb3I6cmdiYSgwLDAsMCwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjIpfXVuaS1idXR0b25bcGxhaW5dOmFmdGVye2JvcmRlci13aWR0aDowfXVuaS1idXR0b25bcGxhaW5dW25hdGl2ZV0gLnVuaS1idXR0b24tY292ZXItdmlldy1pbm5lcntwYWRkaW5nOjB9dW5pLWJ1dHRvblt0eXBlPXdhcm5dW3BsYWluXXtjb2xvcjojZTY0MzQwO2JvcmRlcjoxcHggc29saWQgI2U2NDM0MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9dW5pLWJ1dHRvblt0eXBlPXdhcm5dW3BsYWluXVtkaXNhYmxlZF17Y29sb3I6cmdiYSgwLDAsMCwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjIpfXVuaS1idXR0b25bdHlwZT13YXJuXVtwbGFpbl06YWZ0ZXJ7Ym9yZGVyLXdpZHRoOjB9dW5pLWJ1dHRvbltzaXplPW1pbmlde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjIuMztmb250LXNpemU6MTNweDtwYWRkaW5nOjAgMS4zNGVtfXVuaS1idXR0b25bc2l6ZT1taW5pXVtuYXRpdmVde3BhZGRpbmc6MH11bmktYnV0dG9uW3NpemU9bWluaV1bbmF0aXZlXSAudW5pLWJ1dHRvbi1jb3Zlci12aWV3LWlubmVye3BhZGRpbmc6MCAxLjM0ZW19dW5pLWJ1dHRvbltsb2FkaW5nXTpub3QoW2Rpc2FibGVkXSl7Y3Vyc29yOnByb2dyZXNzfXVuaS1idXR0b25bbG9hZGluZ106YmVmb3Jle2NvbnRlbnQ6IiAiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7dmVydGljYWwtYWxpZ246bWlkZGxlOy13ZWJraXQtYW5pbWF0aW9uOnVuaS1sb2FkaW5nIDFzIHN0ZXBzKDEyKSBpbmZpbml0ZTthbmltYXRpb246dW5pLWxvYWRpbmcgMXMgc3RlcHMoMTIpIGluZmluaXRlO2JhY2tncm91bmQtc2l6ZToxMDAlfXVuaS1idXR0b25bbG9hZGluZ11bdHlwZT1wcmltYXJ5XXtjb2xvcjpoc2xhKDAsMCUsMTAwJSwuNik7YmFja2dyb3VuZC1jb2xvcjojMDA2MmNjfXVuaS1idXR0b25bbG9hZGluZ11bdHlwZT1wcmltYXJ5XVtwbGFpbl17Y29sb3I6IzAwN2FmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9dW5pLWJ1dHRvbltsb2FkaW5nXVt0eXBlPWRlZmF1bHRde2NvbG9yOnJnYmEoMCwwLDAsLjYpO2JhY2tncm91bmQtY29sb3I6I2RlZGVkZX11bmktYnV0dG9uW2xvYWRpbmddW3R5cGU9ZGVmYXVsdF1bcGxhaW5de2NvbG9yOiMzNTM1MzU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfXVuaS1idXR0b25bbG9hZGluZ11bdHlwZT13YXJuXXtjb2xvcjpoc2xhKDAsMCUsMTAwJSwuNik7YmFja2dyb3VuZC1jb2xvcjojY2UzYzM5fXVuaS1idXR0b25bbG9hZGluZ11bdHlwZT13YXJuXVtwbGFpbl17Y29sb3I6I2U2NDM0MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9dW5pLWJ1dHRvbltsb2FkaW5nXVtuYXRpdmVdOmJlZm9yZXtjb250ZW50Om5vbmV9LmJ1dHRvbi1ob3Zlcntjb2xvcjpyZ2JhKDAsMCwwLC42KTtiYWNrZ3JvdW5kLWNvbG9yOiNkZWRlZGV9LmJ1dHRvbi1ob3ZlcltwbGFpbl17Y29sb3I6cmdiYSg1Myw1Myw1MywuNik7Ym9yZGVyLWNvbG9yOnJnYmEoNTMsNTMsNTMsLjYpO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0uYnV0dG9uLWhvdmVyW3R5cGU9cHJpbWFyeV17Y29sb3I6aHNsYSgwLDAlLDEwMCUsLjYpO2JhY2tncm91bmQtY29sb3I6IzAwNjJjY30uYnV0dG9uLWhvdmVyW3R5cGU9cHJpbWFyeV1bcGxhaW5de2NvbG9yOnJnYmEoMCwxMjIsMjU1LC42KTtib3JkZXItY29sb3I6cmdiYSgwLDEyMiwyNTUsLjYpO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0uYnV0dG9uLWhvdmVyW3R5cGU9ZGVmYXVsdF17Y29sb3I6cmdiYSgwLDAsMCwuNik7YmFja2dyb3VuZC1jb2xvcjojZGVkZWRlfS5idXR0b24taG92ZXJbdHlwZT1kZWZhdWx0XVtwbGFpbl17Y29sb3I6cmdiYSg1Myw1Myw1MywuNik7Ym9yZGVyLWNvbG9yOnJnYmEoNTMsNTMsNTMsLjYpO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0uYnV0dG9uLWhvdmVyW3R5cGU9d2Fybl17Y29sb3I6aHNsYSgwLDAlLDEwMCUsLjYpO2JhY2tncm91bmQtY29sb3I6I2NlM2MzOX0uYnV0dG9uLWhvdmVyW3R5cGU9d2Fybl1bcGxhaW5de2NvbG9yOnJnYmEoMjMwLDY3LDY0LC42KTtib3JkZXItY29sb3I6cmdiYSgyMzAsNjcsNjQsLjYpO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX11bmktY2FudmFze3dpZHRoOjMwMHB4O2hlaWdodDoxNTBweDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlfXVuaS1jYW52YXM+Y2FudmFze3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfXVuaS1jaGVja2JveC1ncm91cFtoaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktY2hlY2tib3h7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2N1cnNvcjpwb2ludGVyfXVuaS1jaGVja2JveFtoaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktY2hlY2tib3hbZGlzYWJsZWRde2N1cnNvcjpub3QtYWxsb3dlZH11bmktY2hlY2tib3ggLnVuaS1jaGVja2JveC13cmFwcGVye2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlfXVuaS1jaGVja2JveCAudW5pLWNoZWNrYm94LWlucHV0e21hcmdpbi1yaWdodDo1cHg7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO291dGxpbmU6MDtib3JkZXI6MXB4IHNvbGlkICNkMWQxZDE7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6M3B4O3dpZHRoOjIycHg7aGVpZ2h0OjIycHg7cG9zaXRpb246cmVsYXRpdmV9dW5pLWNoZWNrYm94Om5vdChbZGlzYWJsZWRdKSAudW5pLWNoZWNrYm94LWlucHV0OmhvdmVye2JvcmRlci1jb2xvcjojMDA3YWZmfXVuaS1jaGVja2JveCAudW5pLWNoZWNrYm94LWlucHV0LnVuaS1jaGVja2JveC1pbnB1dC1jaGVja2Vke2NvbG9yOiMwMDdhZmZ9dW5pLWNoZWNrYm94IC51bmktY2hlY2tib3gtaW5wdXQudW5pLWNoZWNrYm94LWlucHV0LWNoZWNrZWQ6YmVmb3Jle2ZvbnQ6bm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIHVuaTtjb250ZW50OiJcRUEwOCI7Zm9udC1zaXplOjIycHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ4JSkgc2NhbGUoLjczKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNDglKSBzY2FsZSguNzMpfXVuaS1jaGVja2JveCAudW5pLWNoZWNrYm94LWlucHV0LnVuaS1jaGVja2JveC1pbnB1dC1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlMWUxZTF9dW5pLWNoZWNrYm94IC51bmktY2hlY2tib3gtaW5wdXQudW5pLWNoZWNrYm94LWlucHV0LWRpc2FibGVkOmJlZm9yZXtjb2xvcjojYWRhZGFkfXVuaS1jaGVja2JveC1ncm91cHtkaXNwbGF5OmJsb2NrfS5xbC1jb250YWluZXJ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC11c2VyLXNlbGVjdDp0ZXh0O3VzZXItc2VsZWN0OnRleHQ7b3V0bGluZTpub25lO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlO2hlaWdodDoyMDBweDttaW4taGVpZ2h0OjIwMHB4fS5xbC1jb250YWluZXJbaGlkZGVuXXtkaXNwbGF5Om5vbmV9LnFsLWNvbnRhaW5lciAucWwtZWRpdG9ye3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDttaW4taGVpZ2h0OmluaGVyaXQ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwYWRkaW5nOjA7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0ucWwtY29udGFpbmVyIC5xbC1lZGl0b3I6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjAhaW1wb3J0YW50fS5xbC1jb250YWluZXIgLnFsLWVkaXRvci5zY3JvbGwtZGlzYWJsZWR7b3ZlcmZsb3c6aGlkZGVufS5xbC1jb250YWluZXIgLnFsLWltYWdlLW92ZXJsYXl7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjoxcHggZGFzaGVkICNjY2M7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ucWwtY29udGFpbmVyIC5xbC1pbWFnZS1vdmVybGF5IC5xbC1pbWFnZS1zaXple3Bvc2l0aW9uOmFic29sdXRlO3BhZGRpbmc6NHB4IDhweDt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6Izg4ODtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6Ljg7cmlnaHQ6NHB4O3RvcDo0cHg7Zm9udC1zaXplOjEycHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6YXV0b30ucWwtY29udGFpbmVyIC5xbC1pbWFnZS1vdmVybGF5IC5xbC1pbWFnZS10b29sYmFye3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLXJhZGl1czo1cHg7Y29sb3I6I2ZmZjtmb250LXNpemU6MDttaW4taGVpZ2h0OjI0cHg7ei1pbmRleDoxMDB9LnFsLWNvbnRhaW5lciAucWwtaW1hZ2Utb3ZlcmxheSAucWwtaW1hZ2UtdG9vbGJhciBzcGFue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6NXB4O2ZvbnQtc2l6ZToxMnB4O2JvcmRlci1yaWdodDoxcHggc29saWQgI2ZmZn0ucWwtY29udGFpbmVyIC5xbC1pbWFnZS1vdmVybGF5IC5xbC1pbWFnZS10b29sYmFyIHNwYW46bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6MH0ucWwtY29udGFpbmVyIC5xbC1pbWFnZS1vdmVybGF5IC5xbC1pbWFnZS10b29sYmFyIHNwYW4udHJpYW5nbGUtdXB7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMTJweDtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGV4KC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGV4KC01MCUpO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLXdpZHRoOjZweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjMDAwIHJnYmEoMCwwLDAsMCl9LnFsLWNvbnRhaW5lciAucWwtaW1hZ2Utb3ZlcmxheSAucWwtaW1hZ2UtaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMnB4O3dpZHRoOjEycHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kOiNmZmZ9LnFsLWNvbnRhaW5lciBpbWd7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjEwMCV9LnFsLWNsaXBib2FyZCBwe21hcmdpbjowO3BhZGRpbmc6MH0ucWwtZWRpdG9ye2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MTAwJTtvdXRsaW5lOm5vbmU7b3ZlcmZsb3cteTphdXRvO3RhYi1zaXplOjQ7LW1vei10YWItc2l6ZTo0O3RleHQtYWxpZ246bGVmdDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZH0ucWwtZWRpdG9yPip7Y3Vyc29yOnRleHR9LnFsLWVkaXRvciBibG9ja3F1b3RlLC5xbC1lZGl0b3IgaDEsLnFsLWVkaXRvciBoMiwucWwtZWRpdG9yIGgzLC5xbC1lZGl0b3IgaDQsLnFsLWVkaXRvciBoNSwucWwtZWRpdG9yIGg2LC5xbC1lZGl0b3Igb2wsLnFsLWVkaXRvciBwLC5xbC1lZGl0b3IgcHJlLC5xbC1lZGl0b3IgdWx7bWFyZ2luOjA7cGFkZGluZzowO2NvdW50ZXItcmVzZXQ6bGlzdC0xIGxpc3QtMiBsaXN0LTMgbGlzdC00IGxpc3QtNSBsaXN0LTYgbGlzdC03IGxpc3QtOCBsaXN0LTl9LnFsLWVkaXRvciBvbD5saSwucWwtZWRpdG9yIHVsPmxpe2xpc3Qtc3R5bGUtdHlwZTpub25lfS5xbC1lZGl0b3IgdWw+bGk6YmVmb3Jle2NvbnRlbnQ6IlwyMDIyIn0ucWwtZWRpdG9yIHVsW2RhdGEtY2hlY2tlZD1mYWxzZV0sLnFsLWVkaXRvciB1bFtkYXRhLWNoZWNrZWQ9dHJ1ZV17cG9pbnRlci1ldmVudHM6bm9uZX0ucWwtZWRpdG9yIHVsW2RhdGEtY2hlY2tlZD1mYWxzZV0+bGkgKiwucWwtZWRpdG9yIHVsW2RhdGEtY2hlY2tlZD10cnVlXT5saSAqe3BvaW50ZXItZXZlbnRzOmFsbH0ucWwtZWRpdG9yIHVsW2RhdGEtY2hlY2tlZD1mYWxzZV0+bGk6YmVmb3JlLC5xbC1lZGl0b3IgdWxbZGF0YS1jaGVja2VkPXRydWVdPmxpOmJlZm9yZXtjb2xvcjojNzc3O2N1cnNvcjpwb2ludGVyO3BvaW50ZXItZXZlbnRzOmFsbH0ucWwtZWRpdG9yIHVsW2RhdGEtY2hlY2tlZD10cnVlXT5saTpiZWZvcmV7Y29udGVudDoiXDI2MTEifS5xbC1lZGl0b3IgdWxbZGF0YS1jaGVja2VkPWZhbHNlXT5saTpiZWZvcmV7Y29udGVudDoiXDI2MTAifS5xbC1lZGl0b3IgbGk6YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoyZW19LnFsLWVkaXRvciBvbCBsaXtjb3VudGVyLXJlc2V0Omxpc3QtMSBsaXN0LTIgbGlzdC0zIGxpc3QtNCBsaXN0LTUgbGlzdC02IGxpc3QtNyBsaXN0LTggbGlzdC05O2NvdW50ZXItaW5jcmVtZW50Omxpc3QtMH0ucWwtZWRpdG9yIG9sIGxpOmJlZm9yZXtjb250ZW50OmNvdW50ZXIobGlzdC0wLGRlY2ltYWwpICIuICJ9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtMXtjb3VudGVyLWluY3JlbWVudDpsaXN0LTF9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtMTpiZWZvcmV7Y29udGVudDpjb3VudGVyKGxpc3QtMSxsb3dlci1hbHBoYSkgIi4gIn0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC0xe2NvdW50ZXItcmVzZXQ6bGlzdC0yIGxpc3QtMyBsaXN0LTQgbGlzdC01IGxpc3QtNiBsaXN0LTcgbGlzdC04IGxpc3QtOX0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC0ye2NvdW50ZXItaW5jcmVtZW50Omxpc3QtMn0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC0yOmJlZm9yZXtjb250ZW50OmNvdW50ZXIobGlzdC0yLGxvd2VyLXJvbWFuKSAiLiAifS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTJ7Y291bnRlci1yZXNldDpsaXN0LTMgbGlzdC00IGxpc3QtNSBsaXN0LTYgbGlzdC03IGxpc3QtOCBsaXN0LTl9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtM3tjb3VudGVyLWluY3JlbWVudDpsaXN0LTN9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtMzpiZWZvcmV7Y29udGVudDpjb3VudGVyKGxpc3QtMyxkZWNpbWFsKSAiLiAifS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTN7Y291bnRlci1yZXNldDpsaXN0LTQgbGlzdC01IGxpc3QtNiBsaXN0LTcgbGlzdC04IGxpc3QtOX0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC00e2NvdW50ZXItaW5jcmVtZW50Omxpc3QtNH0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC00OmJlZm9yZXtjb250ZW50OmNvdW50ZXIobGlzdC00LGxvd2VyLWFscGhhKSAiLiAifS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTR7Y291bnRlci1yZXNldDpsaXN0LTUgbGlzdC02IGxpc3QtNyBsaXN0LTggbGlzdC05fS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTV7Y291bnRlci1pbmNyZW1lbnQ6bGlzdC01fS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTU6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihsaXN0LTUsbG93ZXItcm9tYW4pICIuICJ9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtNXtjb3VudGVyLXJlc2V0Omxpc3QtNiBsaXN0LTcgbGlzdC04IGxpc3QtOX0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC02e2NvdW50ZXItaW5jcmVtZW50Omxpc3QtNn0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC02OmJlZm9yZXtjb250ZW50OmNvdW50ZXIobGlzdC02LGRlY2ltYWwpICIuICJ9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtNntjb3VudGVyLXJlc2V0Omxpc3QtNyBsaXN0LTggbGlzdC05fS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTd7Y291bnRlci1pbmNyZW1lbnQ6bGlzdC03fS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTc6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihsaXN0LTcsbG93ZXItYWxwaGEpICIuICJ9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtN3tjb3VudGVyLXJlc2V0Omxpc3QtOCBsaXN0LTl9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtOHtjb3VudGVyLWluY3JlbWVudDpsaXN0LTh9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtODpiZWZvcmV7Y29udGVudDpjb3VudGVyKGxpc3QtOCxsb3dlci1yb21hbikgIi4gIn0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC04e2NvdW50ZXItcmVzZXQ6bGlzdC05fS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTl7Y291bnRlci1pbmNyZW1lbnQ6bGlzdC05fS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTk6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihsaXN0LTksZGVjaW1hbCkgIi4gIn0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtMTpub3QoLnFsLWRpcmVjdGlvbi1ydGwpLC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTE6bm90KC5xbC1kaXJlY3Rpb24tcnRsKXtwYWRkaW5nLWxlZnQ6MmVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC0xLnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHQsLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtMS5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0e3BhZGRpbmctcmlnaHQ6MmVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC0yOm5vdCgucWwtZGlyZWN0aW9uLXJ0bCksLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtMjpub3QoLnFsLWRpcmVjdGlvbi1ydGwpe3BhZGRpbmctbGVmdDo0ZW19LnFsLWVkaXRvciAucWwtaW5kZW50LTIucWwtZGlyZWN0aW9uLXJ0bC5xbC1hbGlnbi1yaWdodCwucWwtZWRpdG9yIGxpLnFsLWluZGVudC0yLnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHR7cGFkZGluZy1yaWdodDo0ZW19LnFsLWVkaXRvciAucWwtaW5kZW50LTM6bm90KC5xbC1kaXJlY3Rpb24tcnRsKSwucWwtZWRpdG9yIGxpLnFsLWluZGVudC0zOm5vdCgucWwtZGlyZWN0aW9uLXJ0bCl7cGFkZGluZy1sZWZ0OjZlbX0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtMy5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0LC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTMucWwtZGlyZWN0aW9uLXJ0bC5xbC1hbGlnbi1yaWdodHtwYWRkaW5nLXJpZ2h0OjZlbX0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtNDpub3QoLnFsLWRpcmVjdGlvbi1ydGwpLC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTQ6bm90KC5xbC1kaXJlY3Rpb24tcnRsKXtwYWRkaW5nLWxlZnQ6OGVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC00LnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHQsLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtNC5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0e3BhZGRpbmctcmlnaHQ6OGVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC01Om5vdCgucWwtZGlyZWN0aW9uLXJ0bCksLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtNTpub3QoLnFsLWRpcmVjdGlvbi1ydGwpe3BhZGRpbmctbGVmdDoxMGVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC01LnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHQsLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtNS5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0e3BhZGRpbmctcmlnaHQ6MTBlbX0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtNjpub3QoLnFsLWRpcmVjdGlvbi1ydGwpLC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTY6bm90KC5xbC1kaXJlY3Rpb24tcnRsKXtwYWRkaW5nLWxlZnQ6MTJlbX0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtNi5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0LC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTYucWwtZGlyZWN0aW9uLXJ0bC5xbC1hbGlnbi1yaWdodHtwYWRkaW5nLXJpZ2h0OjEyZW19LnFsLWVkaXRvciAucWwtaW5kZW50LTc6bm90KC5xbC1kaXJlY3Rpb24tcnRsKSwucWwtZWRpdG9yIGxpLnFsLWluZGVudC03Om5vdCgucWwtZGlyZWN0aW9uLXJ0bCl7cGFkZGluZy1sZWZ0OjE0ZW19LnFsLWVkaXRvciAucWwtaW5kZW50LTcucWwtZGlyZWN0aW9uLXJ0bC5xbC1hbGlnbi1yaWdodCwucWwtZWRpdG9yIGxpLnFsLWluZGVudC03LnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHR7cGFkZGluZy1yaWdodDoxNGVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC04Om5vdCgucWwtZGlyZWN0aW9uLXJ0bCksLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtODpub3QoLnFsLWRpcmVjdGlvbi1ydGwpe3BhZGRpbmctbGVmdDoxNmVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC04LnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHQsLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtOC5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0e3BhZGRpbmctcmlnaHQ6MTZlbX0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtOTpub3QoLnFsLWRpcmVjdGlvbi1ydGwpLC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTk6bm90KC5xbC1kaXJlY3Rpb24tcnRsKXtwYWRkaW5nLWxlZnQ6MThlbX0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtOS5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0LC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTkucWwtZGlyZWN0aW9uLXJ0bC5xbC1hbGlnbi1yaWdodHtwYWRkaW5nLXJpZ2h0OjE4ZW19LnFsLWVkaXRvciAucWwtZGlyZWN0aW9uLXJ0bHtkaXJlY3Rpb246cnRsO3RleHQtYWxpZ246aW5oZXJpdH0ucWwtZWRpdG9yIC5xbC1hbGlnbi1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnFsLWVkaXRvciAucWwtYWxpZ24tanVzdGlmeXt0ZXh0LWFsaWduOmp1c3RpZnl9LnFsLWVkaXRvciAucWwtYWxpZ24tcmlnaHR7dGV4dC1hbGlnbjpyaWdodH0ucWwtZWRpdG9yLnFsLWJsYW5rOmJlZm9yZXtjb2xvcjpyZ2JhKDAsMCwwLC42KTtjb250ZW50OmF0dHIoZGF0YS1wbGFjZWhvbGRlcik7Zm9udC1zdHlsZTppdGFsaWM7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZX0ucWwtY29udGFpbmVyLnFsLWRpc2FibGVkIC5xbC1lZGl0b3IgdWxbZGF0YS1jaGVja2VkXT5saTpiZWZvcmV7cG9pbnRlci1ldmVudHM6bm9uZX0ucWwtY2xpcGJvYXJke2xlZnQ6LTEwMDAwMHB4O2hlaWdodDoxcHg7b3ZlcmZsb3cteTpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJX11bmktaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MDtib3gtc2l6aW5nOmJvcmRlci1ib3h9dW5pLWljb25baGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLWljb24+aXtmb250Om5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSB3ZXVpfXVuaS1pY29uPmk6YmVmb3Jle21hcmdpbjowO2JveC1zaXppbmc6Ym9yZGVyLWJveH1AZm9udC1mYWNle2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LWZhbWlseTp3ZXVpO3NyYzp1cmwoImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCxBQUVBQUFBTEFJQUFBd0F3UjFOVlFyRCtzKzBBQUFFNEFBQUFRazlUTHpKQUtFeDhBQUFCZkFBQUFGWmpiV0Z3NjVjRkhRQUFBaHdBQUFKUVoyeDVacCtVRUVjQUFBU1VBQUFJdkdobFlXUVVxYzd4QUFBQTRBQUFBRFpvYUdWaEIvWUQrd0FBQUx3QUFBQWthRzEwZUVKb0FBQUFBQUhVQUFBQVNHeHZZMkVVeGhKZUFBQUViQUFBQUNadFlYaHdBU0VBUXdBQUFSZ0FBQUFnYm1GdFplTmNIdGdBQUExUUFBQUI1bkJ2YzNUNk9vWkxBQUFQT0FBQUFPWUFBUUFBQStnQUFBQmFBK2dBQUFBQUE3TUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFCSUFBUUFBQUFFQUFNQ1UyS2RmRHp6MUFBc0Q2QUFBQUFEWTdFVVVBQUFBQU5qc1JSUUFBQUFBQTdNRDVBQUFBQWdBQWdBQUFBQUFBQUFCQUFBQUVnQTNBQVVBQUFBQUFBSUFBQUFLQUFvQUFBRC9BQUFBQUFBQUFBRUFBQUFLQUI0QUxBQUJSRVpNVkFBSUFBUUFBQUFBQUFBQUFRQUFBQUZzYVdkaEFBZ0FBQUFCQUFBQUFRQUVBQVFBQUFBQkFBZ0FBUUFHQUFBQUFRQUFBQUFBQVFPd0FaQUFCUUFJQW5vQ3ZBQUFBSXdDZWdLOEFBQUI0QUF4QVFJQUFBSUFCUU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVHWkZaQUJBNmdIcUVRUG9BQUFBV2dQb0FBQUFBQUFCQUFBQUFBQUFBQUFBQUFQb0FBQUQ2QUFBQStnQUFBUG9BQUFENkFBQUErZ0FBQVBvQUFBRDZBQUFBK2dBQUFQb0FBQUQ2QUFBQStnQUFBUG9BQUFENkFBQUErZ0FBQVBvQUFBRDZBQUFBQUFBQlFBQUFBTUFBQUFzQUFBQUJBQUFBWFFBQVFBQUFBQUFiZ0FEQUFFQUFBQXNBQU1BQ2dBQUFYUUFCQUJDQUFBQUJBQUVBQUVBQU9vUi8vOEFBT29CLy84QUFBQUJBQVFBQUFBQkFBSUFBd0FFQUFVQUJnQUhBQWdBQ1FBS0FBc0FEQUFOQUE0QUR3QVFBQkVBQUFFR0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3QUFBQUFBTndBQUFBQUFBQUFFUUFBNmdFQUFPb0JBQUFBQVFBQTZnSUFBT29DQUFBQUFnQUE2Z01BQU9vREFBQUFBd0FBNmdRQUFPb0VBQUFBQkFBQTZnVUFBT29GQUFBQUJRQUE2Z1lBQU9vR0FBQUFCZ0FBNmdjQUFPb0hBQUFBQndBQTZnZ0FBT29JQUFBQUNBQUE2Z2tBQU9vSkFBQUFDUUFBNmdvQUFPb0tBQUFBQ2dBQTZnc0FBT29MQUFBQUN3QUE2Z3dBQU9vTUFBQUFEQUFBNmcwQUFPb05BQUFBRFFBQTZnNEFBT29PQUFBQURnQUE2ZzhBQU9vUEFBQUFEd0FBNmhBQUFPb1FBQUFBRUFBQTZoRUFBT29SQUFBQUVRQUFBQUFBUkFDS0FNUUJFZ0ZnQVpJQjRnSDZBaW9DZUFLMEF3d0RaQU9pQTl3RUVBUmVBQUFBQWdBQUFBQURsUU9WQUJRQUtRQUFKU0luSmljbU5EYzJOell5RnhZWEZoUUhCZ2NHSnpJM05qYzJOQ2NtSnlZaUJ3WUhCaFFYRmhjV0FmUnhZVjgzT1RrM1gySGlZVjgzT1RrM1gyRnhaRlZUTVRJeU1WTlZ5RlZUTVRJeU1WTlZVemszWDJIaVlWODNPVGszWDJIaVlWODNPVEl5TVZOVnlGVlRNVEl5TVZOVnlGVlRNVElBQUFJQUFBQUFBN01Ec3dBWEFDMEFBQUVpQndZSEJoVVVGeFlYRmpNeU56WTNOalUwSnlZbkpoTUhCaUl2QVNZMk93RVJORFk3QVRJV0ZSRXpNaFlCN25ablpEczlQVHRrWjNaOGFtWTdQajQ3Wm1raGRnNG9EbllPRFJkZEN3Y21Cd3RkRncwRHN6NDdabXA4ZG1ka096MDlPMlJuZG4xcFpqcysvZkNhRWhLYUVob0JGd2dMQ3dqKzZSb0FBd0FBQUFBRGxRT1ZBQlFBR0FBaEFBQWxJaWNtSnlZME56WTNOaklYRmhjV0ZBY0dCd1lERVRNUkp6STJOQ1lpQmhRV0FmUnhZVjgzT1RrM1gySGlZVjgzT1RrM1gyR1FQaDhSR1JraUdSbFRPVGRmWWVKaFh6YzVPVGRmWWVKaFh6YzVBZlQrM1FFaktoZ2pHQmdqR0FBQUFBQUNBQUFBQUFPeEErUUFGd0FzQUFBQkJnY0dEd0VSRkJjV0Z4WVhOamMyTnpZMUVTY21KeVlUQVFZdkFTWS9BVFl5SHdFV05qY2xOaklmQVJZQjlXbHNQM0EzUno1c1hteHNYVzA5U0Rkd1FHdVAvdFVFQklvREF4SUJCUUZ4QVFVQ0FSSUNCUUVSQkFQakZ5QVNKQkwrckk1MVpVZy9IQncvU0dWMWpnRlVFaVFTSVA2Ni90a0RBNDhFQkJrQ0FWWUNBUUhsQVFJUUJBQUFBQUFEQUFBQUFBT3hBK1FBRndBbUFDOEFBQUVHQndZUEFSRVVGeFlYRmhjMk56WTNOalVSSnlZbkpnY3pNaFlWQXhRR0t3RWlKd00wTmhNaUpqUTJNaFlVQmdIMWFXdEFjRGRIUG14ZWJHeGRiVDFJTjNCQWE0TTBCQVlNQXdJbUJRRUxCaDRQRmhZZUZSVUQ1QmdnRWlRUy9xMlBkV1JKUGgwZFBrbGtkWThCVXhJa0VpRDRCZ1QreGdJREJRRTZCQWIrUUJVZkZSVWZGUUFBQUFBQ0FBQUFBQU9WQTVVQUZBQWFBQUFsSWljbUp5WTBOelkzTmpJWEZoY1dGQWNHQndZREp3Y1hBU2NCOUhGaFh6YzVPVGRmWWVKaFh6YzVPVGRmWWFKekxKOEJGaTFUT1RkZlllSmhYemM1T1RkZlllSmhYemM1QVVoekxKOEJGU3dBQUFBQUF3QUFBQUFEbFFPVkFCUUFLUUF2QUFBbElpY21KeVkwTnpZM05qSVhGaGNXRkFjR0J3WW5NamMyTnpZMEp5WW5KaUlIQmdjR0ZCY1dGeFlUTnhjQkp6Y0I5SEZoWHpjNU9UZGZZZUpoWHpjNU9UZGZZWEZrVlZNeE1qSXhVMVhJVlZNeE1qSXhVMVV6OGlUKzZwOGpVemszWDJIaVlWODNPVGszWDJIaVlWODNPVEl5TVZOVnlGVlRNVEl5TVZOVnlGVlRNVElCQlBJai91dWZKQUFBQUFFQUFBQUFBNWtER0FBSEFBQWxBVGNYQVJjQkJnR0Yvdmc3emdIWU92M3ZBY3NCQ1R2UEFkZzcvZTRCQUFBQUFBSUFBQUFBQTVVRGxRQUZBQm9BQUFFMUl4VVhOd01pSnlZbkpqUTNOamMyTWhjV0Z4WVVCd1lIQmdJVFByRXN2bkZoWHpjNU9UZGZZZUpoWHpjNU9UZGZZUUlPNFBxeExQN2tPVGRmWWVKaFh6YzVPVGRmWWVKaFh6YzVBQUFBQUFNQUFBQUFBNVVEbFFBRkFCb0FMd0FBQVJjSEp6VXpBeUluSmljbU5EYzJOell5RnhZWEZoUUhCZ2NHSnpJM05qYzJOQ2NtSnlZaUJ3WUhCaFFYRmhjV0FnMmlJN0V5R1hGaFh6YzVPVGRmWWVKaFh6YzVPVGRmWVhGa1ZWTXhNakl4VTFYSVZWTXhNakl4VTFVQ0NhSWtzZnI5WlRrM1gySGlZVjgzT1RrM1gySGlZVjgzT1RJeU1WTlZ5RlZUTVRJeU1WTlZ5RlZUTVRJQUFBTUFBQUFBQTVVRGxRQVVBQmdBSVFBQUpTSW5KaWNtTkRjMk56WXlGeFlYRmhRSEJnY0dBeE16RXdNeU5qUW1JZzRCRmdIMGNXRmZOems1TjE5aDRtRmZOems1TjE5aGtRVTJCU0FRRlJVZ0ZRRVdVemszWDJIaVlWODNPVGszWDJIaVlWODNPUUtWL3NRQlBQNDNGaDhWRlI4V0FBQUFBQVFBQUFBQUE1VURsUUFVQUNrQUxRQTJBQUFsSWljbUp5WTBOelkzTmpJWEZoY1dGQWNHQndZbk1qYzJOelkwSnlZbkppSUhCZ2NHRkJjV0Z4WVRNeEVqRXlJbU5EWXlGaFFHQWZSeFlWODNPVGszWDJIaVlWODNPVGszWDJGeFpGVlRNVEl5TVZOVnlGVlRNVEl5TVZOVlN6SXlHUkVaR1NJWkdWTTVOMTloNG1GZk56azVOMTloNG1GZk56a3lNakZUVmNoVlV6RXlNakZUVmNoVlV6RXlBY0wrM1FGTkdDTVlHQ01ZQUFBQUF3QUFBQUFEbFFPVkFCUUFLUUExQUFBbElpY21KeVkwTnpZM05qSVhGaGNXRkFjR0J3WW5NamMyTnpZMEp5WW5KaUlIQmdjR0ZCY1dGeFlURndjbkJ5YzNKemNYTnhjQjlIRmhYemM1T1RkZlllSmhYemM1T1RkZllYRmtWVk14TWpJeFUxWElWVk14TWpJeFUxV0hnaU9DZ2lPQ2dpT0NnaU5UT1RkZlllSmhYemM1T1RkZlllSmhYemM1TWpJeFUxWElWVk14TWpJeFUxWElWVk14TWdGdmdpT0NnaU9DZ2lPQ2dpTUFBQUFDQUFBQUFBTlVBMElBR0FBbEFBQUJGd2NuRGdFaklpY21KeVkwTnpZM05qSVhGaGNXRlJRR0p6UXVBU0lPQVJRZUFUSStBUUtvcXlPc0oxODBUMFJDSnljbkowSkVuMFJDSmlnbERVRnZnMjlCUVcrRGIwRUJZS3dqckNBaktDWkNSSjlFUWljbkp5ZENSRTgyWVpkQmIwRkJiNE52UVVGdkFBQUFBZ0FBQUFBRGxRT1ZBQXNBSUFBQUFUY25CeWNIRndjWE54YzNBeUluSmljbU5EYzJOell5RnhZWEZoUUhCZ2NHQWlCOUxIMTlMSDE5TEgxOUxLbHhZVjgzT1RrM1gySGlZVjgzT1RrM1gyRUI5SDBzZlgwc2ZYMHNmWDBzL3R3NU4xOWg0bUZmTnprNU4xOWg0bUZmTnprQUFBQUNBQUFBQUFPVkE1VUFGQUFjQUFBbElpY21KeVkwTnpZM05qSVhGaGNXRkFjR0J3WURKemNuQndZZkFRSDBjV0ZmTnprNU4xOWg0bUZmTnprNU4xOWhIb3FLSzdVQkFiVlRPVGRmWWVKaFh6YzVPVGRmWWVKaFh6YzVBUktQankyN0FRRzZBQUFBQUFVQUFBQUFBMWNEYkFBSkFCMEFKd0FyQUM4QUFBRVRIZ0V6SVRJMk54TXpBdzRCSXlFaUppY0RJelUwTmpNaE1oWWRBU1V5RmgwQkl6VTBOak1ITXhNakV6TURJd0VhSWdFVERRRXVEUk1CSWpJaUFqQWgvdEloTUFJaVZnd0pBcG9KRFA3eENRelFEQWtWTWhVeWlUSVZNZ0xkL2NnT0VoSU9Bamo5eFNFdUxpRUNPeDRJREF3SUhvNE1DUjBkQ1F6Ni9va0JkLzZKQUFBQUFBQUFFQURHQUFFQUFBQUFBQUVBQkFBQUFBRUFBQUFBQUFJQUJ3QUVBQUVBQUFBQUFBTUFCQUFMQUFFQUFBQUFBQVFBQkFBUEFBRUFBQUFBQUFVQUN3QVRBQUVBQUFBQUFBWUFCQUFlQUFFQUFBQUFBQW9BS3dBaUFBRUFBQUFBQUFzQUV3Qk5BQU1BQVFRSkFBRUFDQUJnQUFNQUFRUUpBQUlBRGdCb0FBTUFBUVFKQUFNQUNBQjJBQU1BQVFRSkFBUUFDQUIrQUFNQUFRUUpBQVVBRmdDR0FBTUFBUVFKQUFZQUNBQ2NBQU1BQVFRSkFBb0FWZ0NrQUFNQUFRUUpBQXNBSmdENmQyVjFhVkpsWjNWc1lYSjNaWFZwZDJWMWFWWmxjbk5wYjI0Z01TNHdkMlYxYVVkbGJtVnlZWFJsWkNCaWVTQnpkbWN5ZEhSbUlHWnliMjBnUm05dWRHVnNiRzhnY0hKdmFtVmpkQzVvZEhSd09pOHZabTl1ZEdWc2JHOHVZMjl0QUhjQVpRQjFBR2tBVWdCbEFHY0FkUUJzQUdFQWNnQjNBR1VBZFFCcEFIY0FaUUIxQUdrQVZnQmxBSElBY3dCcEFHOEFiZ0FnQURFQUxnQXdBSGNBWlFCMUFHa0FSd0JsQUc0QVpRQnlBR0VBZEFCbEFHUUFJQUJpQUhrQUlBQnpBSFlBWndBeUFIUUFkQUJtQUNBQVpnQnlBRzhBYlFBZ0FFWUFid0J1QUhRQVpRQnNBR3dBYndBZ0FIQUFjZ0J2QUdvQVpRQmpBSFFBTGdCb0FIUUFkQUJ3QURvQUx3QXZBR1lBYndCdUFIUUFaUUJzQUd3QWJ3QXVBR01BYndCdEFBQUFBZ0FBQUFBQUFBQUtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBU0FRSUJBd0VFQVFVQkJnRUhBUWdCQ1FFS0FRc0JEQUVOQVE0QkR3RVFBUkVCRWdFVEFBWmphWEpqYkdVSVpHOTNibXh2WVdRRWFXNW1id3h6WVdabExYTjFZMk5sYzNNSmMyRm1aUzEzWVhKdUIzTjFZMk5sYzNNT2MzVmpZMlZ6Y3kxamFYSmpiR1VSYzNWalkyVnpjeTF1YnkxamFYSmpiR1VIZDJGcGRHbHVadzUzWVdsMGFXNW5MV05wY21Oc1pRUjNZWEp1QzJsdVptOHRZMmx5WTJ4bEJtTmhibU5sYkFaelpXRnlZMmdGWTJ4bFlYSUVZbUZqYXdaa1pXeGxkR1VBQUFBQSIpIGZvcm1hdCgidHJ1ZXR5cGUiKX0udW5pLWljb24tc3VjY2VzczpiZWZvcmV7Y29udGVudDoiXEVBMDYifS51bmktaWNvbi1zdWNjZXNzX2NpcmNsZTpiZWZvcmV7Y29udGVudDoiXEVBMDcifS51bmktaWNvbi1zdWNjZXNzX25vX2NpcmNsZTpiZWZvcmV7Y29udGVudDoiXEVBMDgifS51bmktaWNvbi1zYWZlX3N1Y2Nlc3M6YmVmb3Jle2NvbnRlbnQ6IlxFQTA0In0udW5pLWljb24tc2FmZV93YXJuOmJlZm9yZXtjb250ZW50OiJcRUEwNSJ9LnVuaS1pY29uLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxFQTAzIn0udW5pLWljb24taW5mb19jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxFQTBDIn0udW5pLWljb24td2FybjpiZWZvcmV7Y29udGVudDoiXEVBMEIifS51bmktaWNvbi13YWl0aW5nOmJlZm9yZXtjb250ZW50OiJcRUEwOSJ9LnVuaS1pY29uLXdhaXRpbmdfY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcRUEwQSJ9LnVuaS1pY29uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXEVBMDEifS51bmktaWNvbi1jYW5jZWw6YmVmb3Jle2NvbnRlbnQ6IlxFQTBEIn0udW5pLWljb24tZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxFQTAyIn0udW5pLWljb24tc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcRUEwRSJ9LnVuaS1pY29uLWNsZWFyOmJlZm9yZXtjb250ZW50OiJcRUEwRiJ9LnVuaS1pY29uLXNhZmVfc3VjY2VzcywudW5pLWljb24tc3VjY2VzcywudW5pLWljb24tc3VjY2Vzc19jaXJjbGUsLnVuaS1pY29uLXN1Y2Nlc3Nfbm9fY2lyY2xle2NvbG9yOiMwMDdhZmZ9LnVuaS1pY29uLXNhZmVfd2Fybntjb2xvcjojZmZiZTAwfS51bmktaWNvbi1pbmZve2NvbG9yOiMxMGFlZmZ9LnVuaS1pY29uLWluZm9fY2lyY2xle2NvbG9yOiMwMDdhZmZ9LnVuaS1pY29uLXdhcm57Y29sb3I6I2Y3NjI2MH0udW5pLWljb24td2FpdGluZywudW5pLWljb24td2FpdGluZ19jaXJjbGV7Y29sb3I6IzEwYWVmZn0udW5pLWljb24tY2lyY2xle2NvbG9yOiNjOWM5Yzl9LnVuaS1pY29uLWNhbmNlbHtjb2xvcjojZjQzNTMwfS51bmktaWNvbi1kb3dubG9hZHtjb2xvcjojMDA3YWZmfS51bmktaWNvbi1jbGVhciwudW5pLWljb24tc2VhcmNoe2NvbG9yOiNiMmIyYjJ9dW5pLWltYWdle3dpZHRoOjMyMHB4O2hlaWdodDoyNDBweDtkaXNwbGF5OmlubGluZS1ibG9jaztvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9dW5pLWltYWdlW2hpZGRlbl17ZGlzcGxheTpub25lfXVuaS1pbWFnZT5kaXYsdW5pLWltYWdlPmltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlfXVuaS1pbWFnZT5pbWd7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtvcGFjaXR5OjB9dW5pLWltYWdlPi51bmktaW1hZ2Utd2lsbC1jaGFuZ2V7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfXVuaS1pbnB1dHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjEuNGVtO2hlaWdodDoxLjRlbTttaW4taGVpZ2h0OjEuNGVtO292ZXJmbG93OmhpZGRlbn11bmktaW5wdXRbaGlkZGVuXXtkaXNwbGF5Om5vbmV9LnVuaS1pbnB1dC1mb3JtLC51bmktaW5wdXQtaW5wdXQsLnVuaS1pbnB1dC1wbGFjZWhvbGRlciwudW5pLWlucHV0LXdyYXBwZXJ7b3V0bGluZTpub25lO2JvcmRlcjpub25lO3BhZGRpbmc6MDttYXJnaW46MDt0ZXh0LWRlY29yYXRpb246aW5oZXJpdH0udW5pLWlucHV0LWZvcm0sLnVuaS1pbnB1dC13cmFwcGVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS51bmktaW5wdXQtaW5wdXQsLnVuaS1pbnB1dC1wbGFjZWhvbGRlcnt3aWR0aDoxMDAlfS51bmktaW5wdXQtcGxhY2Vob2xkZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOmF1dG8haW1wb3J0YW50O2xlZnQ6MDtjb2xvcjpncmV5O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmNsaXA7d2hpdGUtc3BhY2U6cHJlO3dvcmQtYnJlYWs6a2VlcC1hbGw7cG9pbnRlci1ldmVudHM6bm9uZTtsaW5lLWhlaWdodDppbmhlcml0fS51bmktaW5wdXQtaW5wdXR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOm5vbmU7Y29sb3I6aW5oZXJpdDtvcGFjaXR5OjE7Zm9udDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7bGV0dGVyLXNwYWNpbmc6aW5oZXJpdDt0ZXh0LWFsaWduOmluaGVyaXQ7dGV4dC1pbmRlbnQ6aW5oZXJpdDt0ZXh0LXRyYW5zZm9ybTppbmhlcml0O3RleHQtc2hhZG93OmluaGVyaXR9LnVuaS1pbnB1dC1pbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sLnVuaS1pbnB1dC1pbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257ZGlzcGxheTpub25lfS51bmktaW5wdXQtaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sLnVuaS1pbnB1dC1pbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0udW5pLWlucHV0LWlucHV0W3R5cGU9bnVtYmVyXXstbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkfS51bmktaW5wdXQtaW5wdXQ6ZGlzYWJsZWR7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Y3VycmVudGNvbG9yfS51bmktbGFiZWwtcG9pbnRlcntjdXJzb3I6cG9pbnRlcn11bmktbW92YWJsZS1hcmVhe2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTBweDtoZWlnaHQ6MTBweH11bmktbW92YWJsZS1hcmVhW2hpZGRlbl17ZGlzcGxheTpub25lfXVuaS1tb3ZhYmxlLXZpZXd7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDt0b3A6MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7Y3Vyc29yOmdyYWJ9dW5pLW1vdmFibGUtdmlld1toaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktbmF2aWdhdG9ye2hlaWdodDphdXRvO3dpZHRoOmF1dG87ZGlzcGxheTpibG9jaztjdXJzb3I6cG9pbnRlcn11bmktbmF2aWdhdG9yW2hpZGRlbl17ZGlzcGxheTpub25lfS5uYXZpZ2F0b3ItaG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xKTtvcGFjaXR5Oi43fXVuaS1waWNrZXItdmlldy1jb2x1bW57LXdlYmtpdC1mbGV4OjE7LXdlYmtpdC1ib3gtZmxleDoxO2ZsZXg6MTtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59dW5pLXBpY2tlci12aWV3LWNvbHVtbltoaWRkZW5de2Rpc3BsYXk6bm9uZX0udW5pLXBpY2tlci12aWV3LWdyb3Vwe2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0udW5pLXBpY2tlci12aWV3LW1hc2t7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0udW5pLXBpY2tlci12aWV3LWluZGljYXRvciwudW5pLXBpY2tlci12aWV3LW1hc2t7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3dpZHRoOjEwMCU7ei1pbmRleDozO3BvaW50ZXItZXZlbnRzOm5vbmV9LnVuaS1waWNrZXItdmlldy1tYXNre3RvcDowO2hlaWdodDoxMDAlO21hcmdpbjowIGF1dG87YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsaHNsYSgwLDAlLDEwMCUsLjk1KSxoc2xhKDAsMCUsMTAwJSwuNikpLC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSxoc2xhKDAsMCUsMTAwJSwuOTUpLGhzbGEoMCwwJSwxMDAlLC42KSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLGhzbGEoMCwwJSwxMDAlLC45NSksaHNsYSgwLDAlLDEwMCUsLjYpKSxsaW5lYXItZ3JhZGllbnQoMGRlZyxoc2xhKDAsMCUsMTAwJSwuOTUpLGhzbGEoMCwwJSwxMDAlLC42KSk7YmFja2dyb3VuZC1wb3NpdGlvbjp0b3AsYm90dG9tO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMnB4O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0udW5pLXBpY2tlci12aWV3LWluZGljYXRvcntoZWlnaHQ6MzRweDt0b3A6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LnVuaS1waWNrZXItdmlldy1jb250ZW50e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO3dpbGwtY2hhbmdlOnRyYW5zZm9ybTtwYWRkaW5nOjEwMnB4IDA7Y3Vyc29yOnBvaW50ZXJ9LnVuaS1waWNrZXItdmlldy1jb250ZW50Pip7aGVpZ2h0OjM0cHg7b3ZlcmZsb3c6aGlkZGVufS51bmktcGlja2VyLXZpZXctaW5kaWNhdG9yOmJlZm9yZXt0b3A6MDtib3JkZXItdG9wOjFweCBzb2xpZCAjZTVlNWU1Oy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNmb3JtLW9yaWdpbjowIDA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVZKC41KTt0cmFuc2Zvcm06c2NhbGVZKC41KX0udW5pLXBpY2tlci12aWV3LWluZGljYXRvcjphZnRlcntib3R0b206MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1Oy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDEwMCU7dHJhbnNmb3JtLW9yaWdpbjowIDEwMCU7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVZKC41KTt0cmFuc2Zvcm06c2NhbGVZKC41KX0udW5pLXBpY2tlci12aWV3LWluZGljYXRvcjphZnRlciwudW5pLXBpY2tlci12aWV3LWluZGljYXRvcjpiZWZvcmV7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjFweDtjb2xvcjojZTVlNWU1fXVuaS1waWNrZXItdmlld3tkaXNwbGF5OmJsb2NrfXVuaS1waWNrZXItdmlldyAudW5pLXBpY2tlci12aWV3LXdyYXBwZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2hlaWdodDoxMDAlfXVuaS1waWNrZXItdmlld1toaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktcHJvZ3Jlc3N7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn11bmktcHJvZ3Jlc3NbaGlkZGVuXXtkaXNwbGF5Om5vbmV9LnVuaS1wcm9ncmVzcy1iYXJ7LXdlYmtpdC1mbGV4OjE7LXdlYmtpdC1ib3gtZmxleDoxO2ZsZXg6MX0udW5pLXByb2dyZXNzLWlubmVyLWJhcnt3aWR0aDowO2hlaWdodDoxMDAlfS51bmktcHJvZ3Jlc3MtaW5mb3ttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO21pbi13aWR0aDoyZW07bWFyZ2luLWxlZnQ6MTVweDtmb250LXNpemU6MTZweH11bmktcmFkaW8tZ3JvdXBbaGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLXJhZGlvey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtkaXNwbGF5OmlubGluZS1ibG9jaztjdXJzb3I6cG9pbnRlcn11bmktcmFkaW9baGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLXJhZGlvW2Rpc2FibGVkXXtjdXJzb3I6bm90LWFsbG93ZWR9dW5pLXJhZGlvIC51bmktcmFkaW8td3JhcHBlcntkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7ZGlzcGxheTotd2Via2l0LWlubGluZS1ib3g7ZGlzcGxheTppbmxpbmUtZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX11bmktcmFkaW8gLnVuaS1yYWRpby1pbnB1dHstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7bWFyZ2luLXJpZ2h0OjVweDtvdXRsaW5lOjA7Ym9yZGVyOjFweCBzb2xpZCAjZDFkMWQxO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTt3aWR0aDoyMnB4O2hlaWdodDoyMnB4O3Bvc2l0aW9uOnJlbGF0aXZlfXVuaS1yYWRpbzpub3QoW2Rpc2FibGVkXSkgLnVuaS1yYWRpby1pbnB1dDpob3Zlcntib3JkZXItY29sb3I6IzAwN2FmZn11bmktcmFkaW8gLnVuaS1yYWRpby1pbnB1dC51bmktcmFkaW8taW5wdXQtY2hlY2tlZDpiZWZvcmV7Zm9udDpub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgdW5pO2NvbnRlbnQ6IlxFQTA4Ijtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxOHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC00OCUpIHNjYWxlKC43Myk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ4JSkgc2NhbGUoLjczKX11bmktcmFkaW8gLnVuaS1yYWRpby1pbnB1dC51bmktcmFkaW8taW5wdXQtZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojZTFlMWUxO2JvcmRlci1jb2xvcjojZDFkMWQxfXVuaS1yYWRpbyAudW5pLXJhZGlvLWlucHV0LnVuaS1yYWRpby1pbnB1dC1kaXNhYmxlZDpiZWZvcmV7Y29sb3I6I2FkYWRhZH11bmktcmFkaW8tZ3JvdXB7ZGlzcGxheTpibG9ja31ALXdlYmtpdC1rZXlmcmFtZXMgb25jZS1zaG93ezAle3RvcDowfX1Aa2V5ZnJhbWVzIG9uY2Utc2hvd3swJXt0b3A6MH19dW5pLXJlc2l6ZS1zZW5zb3IsdW5pLXJlc2l6ZS1zZW5zb3I+ZGl2e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO292ZXJmbG93OmhpZGRlbn11bmktcmVzaXplLXNlbnNvcntkaXNwbGF5OmJsb2NrO3otaW5kZXg6LTE7dmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC1hbmltYXRpb246b25jZS1zaG93IDFtczthbmltYXRpb246b25jZS1zaG93IDFtc311bmktcmVzaXplLXNlbnNvcj5kaXY+ZGl2e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MH11bmktcmVzaXplLXNlbnNvcj5kaXY6Zmlyc3QtY2hpbGQ+ZGl2e3dpZHRoOjEwMDAwMHB4O2hlaWdodDoxMDAwMDBweH11bmktcmVzaXplLXNlbnNvcj5kaXY6bGFzdC1jaGlsZD5kaXZ7d2lkdGg6MjAwJTtoZWlnaHQ6MjAwJX11bmktc2Nyb2xsLXZpZXd7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfXVuaS1zY3JvbGwtdmlld1toaWRkZW5de2Rpc3BsYXk6bm9uZX0udW5pLXNjcm9sbC12aWV3e3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO21heC1oZWlnaHQ6aW5oZXJpdH0udW5pLXNjcm9sbC12aWV3LC51bmktc2Nyb2xsLXZpZXctY29udGVudHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS51bmktc2Nyb2xsLXZpZXctcmVmcmVzaGVye3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0udW5pLXNjcm9sbC12aWV3LXJlZnJlc2h7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3d9LnVuaS1zY3JvbGwtdmlldy1yZWZyZXNoLC51bmktc2Nyb2xsLXZpZXctcmVmcmVzaC1pbm5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS51bmktc2Nyb2xsLXZpZXctcmVmcmVzaC1pbm5lcntsaW5lLWhlaWdodDowO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JveC1zaGFkb3c6MCAxcHggNnB4IHJnYmEoMCwwLDAsLjExNzY0NyksMCAxcHggNHB4IHJnYmEoMCwwLDAsLjExNzY0Nyl9LnVuaS1zY3JvbGwtdmlldy1yZWZyZXNoX19zcGlubmVyey13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgY2VudGVyO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGNlbnRlcjstd2Via2l0LWFuaW1hdGlvbjp1bmktc2Nyb2xsLXZpZXctcmVmcmVzaC1yb3RhdGUgMnMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjp1bmktc2Nyb2xsLXZpZXctcmVmcmVzaC1yb3RhdGUgMnMgbGluZWFyIGluZmluaXRlfS51bmktc2Nyb2xsLXZpZXctcmVmcmVzaF9fc3Bpbm5lcj5jaXJjbGV7c3Ryb2tlOmN1cnJlbnRDb2xvcjtzdHJva2UtbGluZWNhcDpyb3VuZDstd2Via2l0LWFuaW1hdGlvbjp1bmktc2Nyb2xsLXZpZXctcmVmcmVzaC1kYXNoIDJzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb246dW5pLXNjcm9sbC12aWV3LXJlZnJlc2gtZGFzaCAycyBsaW5lYXIgaW5maW5pdGV9QC13ZWJraXQta2V5ZnJhbWVzIHVuaS1zY3JvbGwtdmlldy1yZWZyZXNoLXJvdGF0ZXswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pO3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX1Aa2V5ZnJhbWVzIHVuaS1zY3JvbGwtdmlldy1yZWZyZXNoLXJvdGF0ZXswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pO3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX1ALXdlYmtpdC1rZXlmcmFtZXMgdW5pLXNjcm9sbC12aWV3LXJlZnJlc2gtZGFzaHswJXtzdHJva2UtZGFzaGFycmF5OjEsMjAwO3N0cm9rZS1kYXNob2Zmc2V0OjB9NTAle3N0cm9rZS1kYXNoYXJyYXk6ODksMjAwO3N0cm9rZS1kYXNob2Zmc2V0Oi0zNXB4fXRve3N0cm9rZS1kYXNoYXJyYXk6ODksMjAwO3N0cm9rZS1kYXNob2Zmc2V0Oi0xMjRweH19QGtleWZyYW1lcyB1bmktc2Nyb2xsLXZpZXctcmVmcmVzaC1kYXNoezAle3N0cm9rZS1kYXNoYXJyYXk6MSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MH01MCV7c3Ryb2tlLWRhc2hhcnJheTo4OSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6LTM1cHh9dG97c3Ryb2tlLWRhc2hhcnJheTo4OSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6LTEyNHB4fX11bmktc2xpZGVye21hcmdpbjoxMHB4IDE4cHg7cGFkZGluZzowO2Rpc3BsYXk6YmxvY2t9dW5pLXNsaWRlcltoaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktc2xpZGVyIC51bmktc2xpZGVyLXdyYXBwZXJ7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttaW4taGVpZ2h0OjE2cHh9dW5pLXNsaWRlciAudW5pLXNsaWRlci10YXAtYXJlYXstd2Via2l0LWZsZXg6MTstd2Via2l0LWJveC1mbGV4OjE7ZmxleDoxO3BhZGRpbmc6OHB4IDB9dW5pLXNsaWRlciAudW5pLXNsaWRlci1oYW5kbGUtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MnB4O2JvcmRlci1yYWRpdXM6NXB4O2JhY2tncm91bmQtY29sb3I6I2U5ZTllOTtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9dW5pLXNsaWRlciAudW5pLXNsaWRlci1oYW5kbGUtd3JhcHBlcix1bmktc2xpZGVyIC51bmktc2xpZGVyLXRyYWNrey13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZX11bmktc2xpZGVyIC51bmktc2xpZGVyLXRyYWNre2hlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6NnB4O2JhY2tncm91bmQtY29sb3I6IzAwN2FmZn11bmktc2xpZGVyIC51bmktc2xpZGVyLWhhbmRsZSx1bmktc2xpZGVyIC51bmktc2xpZGVyLXRodW1ie3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO3RvcDo1MCU7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC10cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuM3MgZWFzZTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuM3MgZWFzZX11bmktc2xpZGVyIC51bmktc2xpZGVyLWhhbmRsZXt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O21hcmdpbi10b3A6LTE0cHg7bWFyZ2luLWxlZnQ6LTE0cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO3otaW5kZXg6MztjdXJzb3I6Z3JhYn11bmktc2xpZGVyIC51bmktc2xpZGVyLXRodW1ie3otaW5kZXg6Mjtib3gtc2hhZG93OjAgMCA0cHggcmdiYSgwLDAsMCwuMil9dW5pLXNsaWRlciAudW5pLXNsaWRlci1zdGVwe3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7ei1pbmRleDoxfXVuaS1zbGlkZXIgLnVuaS1zbGlkZXItdmFsdWV7d2lkdGg6M2NoO2NvbG9yOiM4ODg7Zm9udC1zaXplOjE0cHg7bWFyZ2luLWxlZnQ6MWVtfXVuaS1zbGlkZXIgLnVuaS1zbGlkZXItZGlzYWJsZWQgLnVuaS1zbGlkZXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjojY2NjfXVuaS1zbGlkZXIgLnVuaS1zbGlkZXItZGlzYWJsZWQgLnVuaS1zbGlkZXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojY2NjfXVuaS1zd2lwZXItaXRlbXtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjt3aWxsLWNoYW5nZTp0cmFuc2Zvcm07cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtjdXJzb3I6Z3JhYn11bmktc3dpcGVyLWl0ZW1baGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLXN3aXBlcntkaXNwbGF5OmJsb2NrO2hlaWdodDoxNTBweH11bmktc3dpcGVyW2hpZGRlbl17ZGlzcGxheTpub25lfXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItd3JhcHBlcntvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItc2xpZGVze3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowfXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItc2xpZGUtZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItZG90c3twb3NpdGlvbjphYnNvbHV0ZTtmb250LXNpemU6MH11bmktc3dpcGVyIC51bmktc3dpcGVyLWRvdHMtaG9yaXpvbnRhbHtsZWZ0OjUwJTtib3R0b206MTBweDt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9dW5pLXN3aXBlciAudW5pLXN3aXBlci1kb3RzLWhvcml6b250YWwgLnVuaS1zd2lwZXItZG90e21hcmdpbi1yaWdodDo4cHh9dW5pLXN3aXBlciAudW5pLXN3aXBlci1kb3RzLWhvcml6b250YWwgLnVuaS1zd2lwZXItZG90Omxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjB9dW5pLXN3aXBlciAudW5pLXN3aXBlci1kb3RzLXZlcnRpY2Fse3JpZ2h0OjEwcHg7dG9wOjUwJTt0ZXh0LWFsaWduOnJpZ2h0Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9dW5pLXN3aXBlciAudW5pLXN3aXBlci1kb3RzLXZlcnRpY2FsIC51bmktc3dpcGVyLWRvdHtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206OXB4fXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItZG90cy12ZXJ0aWNhbCAudW5pLXN3aXBlci1kb3Q6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9dW5pLXN3aXBlciAudW5pLXN3aXBlci1kb3R7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6OHB4O2hlaWdodDo4cHg7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OmJhY2tncm91bmQtY29sb3I7dHJhbnNpdGlvbi1wcm9wZXJ0eTpiYWNrZ3JvdW5kLWNvbG9yOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMyk7Ym9yZGVyLXJhZGl1czo1MCV9dW5pLXN3aXBlciAudW5pLXN3aXBlci1kb3QtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwMH11bmktc3dpcGVyIC51bmktc3dpcGVyLW5hdmlnYXRpb257d2lkdGg6MjZweDtoZWlnaHQ6MjZweDtjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO21hcmdpbi10b3A6LTEzcHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LXRyYW5zaXRpb246YWxsIC4yczt0cmFuc2l0aW9uOmFsbCAuMnM7Ym9yZGVyLXJhZGl1czo1MCU7b3BhY2l0eToxfXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItbmF2aWdhdGlvbi1kaXNhYmxlZHtvcGFjaXR5Oi4zNTtjdXJzb3I6bm90LWFsbG93ZWR9dW5pLXN3aXBlciAudW5pLXN3aXBlci1uYXZpZ2F0aW9uLWhpZGV7b3BhY2l0eTowO2N1cnNvcjphdXRvO3BvaW50ZXItZXZlbnRzOm5vbmV9dW5pLXN3aXBlciAudW5pLXN3aXBlci1uYXZpZ2F0aW9uLXByZXZ7bGVmdDoxMHB4fXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItbmF2aWdhdGlvbi1wcmV2IGl7bWFyZ2luLWxlZnQ6LTFweDtsZWZ0OjEwcHh9dW5pLXN3aXBlciAudW5pLXN3aXBlci1uYXZpZ2F0aW9uLXByZXYudW5pLXN3aXBlci1uYXZpZ2F0aW9uLXZlcnRpY2Fse3RvcDoxOHB4O2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0xM3B4fXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItbmF2aWdhdGlvbi1wcmV2LnVuaS1zd2lwZXItbmF2aWdhdGlvbi12ZXJ0aWNhbCBpey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tdG9wOi0ycHh9dW5pLXN3aXBlciAudW5pLXN3aXBlci1uYXZpZ2F0aW9uLW5leHR7cmlnaHQ6MTBweH11bmktc3dpcGVyIC51bmktc3dpcGVyLW5hdmlnYXRpb24tbmV4dCBpey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX11bmktc3dpcGVyIC51bmktc3dpcGVyLW5hdmlnYXRpb24tbmV4dC51bmktc3dpcGVyLW5hdmlnYXRpb24tdmVydGljYWx7dG9wOmF1dG87Ym90dG9tOjVweDtsZWZ0OjUwJTttYXJnaW4tbGVmdDotMTNweH11bmktc3dpcGVyIC51bmktc3dpcGVyLW5hdmlnYXRpb24tbmV4dC51bmktc3dpcGVyLW5hdmlnYXRpb24tdmVydGljYWwgaXttYXJnaW4tdG9wOjJweDstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9dW5pLXN3aXRjaHstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y3Vyc29yOnBvaW50ZXJ9dW5pLXN3aXRjaFtoaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktc3dpdGNoW2Rpc2FibGVkXXtjdXJzb3I6bm90LWFsbG93ZWR9dW5pLXN3aXRjaCAudW5pLXN3aXRjaC13cmFwcGVye2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlfXVuaS1zd2l0Y2ggLnVuaS1zd2l0Y2gtaW5wdXR7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjUycHg7aGVpZ2h0OjMycHg7bWFyZ2luLXJpZ2h0OjVweDtib3JkZXI6MXB4IHNvbGlkICNkZmRmZGY7b3V0bGluZTowO2JvcmRlci1yYWRpdXM6MTZweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7YmFja2dyb3VuZC1jb2xvcjojZGZkZmRmOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xcyxib3JkZXIgLjFzO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMXMsYm9yZGVyIC4xc311bmktc3dpdGNoW2Rpc2FibGVkXSAudW5pLXN3aXRjaC1pbnB1dHtvcGFjaXR5Oi43fXVuaS1zd2l0Y2ggLnVuaS1zd2l0Y2gtaW5wdXQ6YmVmb3Jle3dpZHRoOjUwcHg7YmFja2dyb3VuZC1jb2xvcjojZmRmZGZkfXVuaS1zd2l0Y2ggLnVuaS1zd2l0Y2gtaW5wdXQ6YWZ0ZXIsdW5pLXN3aXRjaCAudW5pLXN3aXRjaC1pbnB1dDpiZWZvcmV7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2hlaWdodDozMHB4O2JvcmRlci1yYWRpdXM6MTVweDt0cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zczstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjNzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zczt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MsLXdlYmtpdC10cmFuc2Zvcm0gLjNzfXVuaS1zd2l0Y2ggLnVuaS1zd2l0Y2gtaW5wdXQ6YWZ0ZXJ7d2lkdGg6MzBweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuNCl9dW5pLXN3aXRjaCAudW5pLXN3aXRjaC1pbnB1dC51bmktc3dpdGNoLWlucHV0LWNoZWNrZWR7Ym9yZGVyLWNvbG9yOiMwMDdhZmY7YmFja2dyb3VuZC1jb2xvcjojMDA3YWZmfXVuaS1zd2l0Y2ggLnVuaS1zd2l0Y2gtaW5wdXQudW5pLXN3aXRjaC1pbnB1dC1jaGVja2VkOmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCl9dW5pLXN3aXRjaCAudW5pLXN3aXRjaC1pbnB1dC51bmktc3dpdGNoLWlucHV0LWNoZWNrZWQ6YWZ0ZXJ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgyMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyMHB4KX11bmktc3dpdGNoIC51bmktY2hlY2tib3gtaW5wdXR7bWFyZ2luLXJpZ2h0OjVweDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7b3V0bGluZTowO2JvcmRlcjoxcHggc29saWQgI2QxZDFkMTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHg7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojMDA3YWZmfXVuaS1zd2l0Y2g6bm90KFtkaXNhYmxlZF0pIC51bmktY2hlY2tib3gtaW5wdXQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiMwMDdhZmZ9dW5pLXN3aXRjaCAudW5pLWNoZWNrYm94LWlucHV0LnVuaS1jaGVja2JveC1pbnB1dC1jaGVja2VkOmJlZm9yZXtmb250Om5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSB1bmk7Y29udGVudDoiXEVBMDgiO2NvbG9yOmluaGVyaXQ7Zm9udC1zaXplOjIycHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ4JSkgc2NhbGUoLjczKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNDglKSBzY2FsZSguNzMpfXVuaS1zd2l0Y2ggLnVuaS1jaGVja2JveC1pbnB1dC51bmktY2hlY2tib3gtaW5wdXQtZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojZTFlMWUxfXVuaS1zd2l0Y2ggLnVuaS1jaGVja2JveC1pbnB1dC51bmktY2hlY2tib3gtaW5wdXQtZGlzYWJsZWQ6YmVmb3Jle2NvbG9yOiNhZGFkYWR9dW5pLXRleHRbc2VsZWN0YWJsZV17Y3Vyc29yOmF1dG87dXNlci1zZWxlY3Q6dGV4dDstd2Via2l0LXVzZXItc2VsZWN0OnRleHR9dW5pLXRleHRhcmVhe3dpZHRoOjMwMHB4O2hlaWdodDoxNTBweDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0Om5vcm1hbDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLWFsbH11bmktdGV4dGFyZWFbaGlkZGVuXXtkaXNwbGF5Om5vbmV9LnVuaS10ZXh0YXJlYS1jb21wdXRlLC51bmktdGV4dGFyZWEtbGluZSwudW5pLXRleHRhcmVhLXBsYWNlaG9sZGVyLC51bmktdGV4dGFyZWEtdGV4dGFyZWEsLnVuaS10ZXh0YXJlYS13cmFwcGVye291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjA7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXR9LnVuaS10ZXh0YXJlYS13cmFwcGVye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OmluaGVyaXQ7b3ZlcmZsb3cteTpoaWRkZW59LnVuaS10ZXh0YXJlYS1jb21wdXRlLC51bmktdGV4dGFyZWEtbGluZSwudW5pLXRleHRhcmVhLXBsYWNlaG9sZGVyLC51bmktdGV4dGFyZWEtdGV4dGFyZWF7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtsZWZ0OjA7dG9wOjA7d2hpdGUtc3BhY2U6aW5oZXJpdDt3b3JkLWJyZWFrOmluaGVyaXR9LnVuaS10ZXh0YXJlYS1wbGFjZWhvbGRlcntjb2xvcjpncmV5O292ZXJmbG93OmhpZGRlbn0udW5pLXRleHRhcmVhLWNvbXB1dGUsLnVuaS10ZXh0YXJlYS1saW5le3Zpc2liaWxpdHk6aGlkZGVuO2hlaWdodDphdXRvfS51bmktdGV4dGFyZWEtbGluZXt3aWR0aDoxZW19LnVuaS10ZXh0YXJlYS10ZXh0YXJlYXtyZXNpemU6bm9uZTtiYWNrZ3JvdW5kOm5vbmU7Y29sb3I6aW5oZXJpdDtvcGFjaXR5OjE7Zm9udDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7bGV0dGVyLXNwYWNpbmc6aW5oZXJpdDt0ZXh0LWFsaWduOmluaGVyaXQ7dGV4dC1pbmRlbnQ6aW5oZXJpdDt0ZXh0LXRyYW5zZm9ybTppbmhlcml0O3RleHQtc2hhZG93OmluaGVyaXR9LnVuaS10ZXh0YXJlYS10ZXh0YXJlYS1maXgtbWFyZ2lue3dpZHRoOmF1dG87cmlnaHQ6MDttYXJnaW46MCAtM3B4fS51bmktdGV4dGFyZWEtdGV4dGFyZWE6ZGlzYWJsZWR7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Y3VycmVudGNvbG9yfXVuaS1hZHtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbn11bmktYWRbaGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLWNvdmVyLWltYWdle2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MS4yO292ZXJmbG93OmhpZGRlbjtwb2ludGVyLWV2ZW50czphdXRvfXVuaS1jb3Zlci1pbWFnZSx1bmktY292ZXItaW1hZ2UgaW1ne2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9dW5pLWNvdmVyLWltYWdlW2hpZGRlbl17ZGlzcGxheTpub25lfXVuaS1jb3Zlci1pbWFnZSAudW5pLWNvdmVyLWltYWdle3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dGV4dC1vdmVyZmxvdzppbmhlcml0O292ZXJmbG93OmluaGVyaXQ7d2hpdGUtc3BhY2U6bm93cmFwOy13ZWJraXQtYWxpZ24taXRlbXM6aW5oZXJpdDstd2Via2l0LWJveC1hbGlnbjppbmhlcml0O2FsaWduLWl0ZW1zOmluaGVyaXQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6aW5oZXJpdDstd2Via2l0LWJveC1wYWNrOmluaGVyaXQ7anVzdGlmeS1jb250ZW50OmluaGVyaXQ7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjppbmhlcml0Oy13ZWJraXQtYm94LW9yaWVudDppbmhlcml0Oy13ZWJraXQtYm94LWRpcmVjdGlvbjppbmhlcml0O2ZsZXgtZGlyZWN0aW9uOmluaGVyaXQ7Zm9udC1zaXplOjA7ZGlzcGxheTppbmhlcml0fXVuaS1jb3Zlci12aWV3e2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MS4yO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7cG9pbnRlci1ldmVudHM6YXV0b311bmktY292ZXItdmlld1toaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktY292ZXItdmlldyAudW5pLWNvdmVyLXZpZXd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0ZXh0LW92ZXJmbG93OmluaGVyaXQ7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOmluaGVyaXQ7LXdlYmtpdC1hbGlnbi1pdGVtczppbmhlcml0Oy13ZWJraXQtYm94LWFsaWduOmluaGVyaXQ7YWxpZ24taXRlbXM6aW5oZXJpdDstd2Via2l0LWp1c3RpZnktY29udGVudDppbmhlcml0Oy13ZWJraXQtYm94LXBhY2s6aW5oZXJpdDtqdXN0aWZ5LWNvbnRlbnQ6aW5oZXJpdDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmluaGVyaXQ7LXdlYmtpdC1ib3gtb3JpZW50OmluaGVyaXQ7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOmluaGVyaXQ7ZmxleC1kaXJlY3Rpb246aW5oZXJpdDstd2Via2l0LWZsZXgtd3JhcDppbmhlcml0O2ZsZXgtd3JhcDppbmhlcml0O2Rpc3BsYXk6aW5oZXJpdDtvdmVyZmxvdzppbmhlcml0fS51bmktbWFwLWNvbnRyb2x7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0OjA7ei1pbmRleDo5OTl9LnVuaS1tYXAtY29udHJvbC1pY29ue3Bvc2l0aW9uOmFic29sdXRlO21heC13aWR0aDpub25lfXVuaS1tYXB7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzAwcHg7aGVpZ2h0OjE1MHB4O2Rpc3BsYXk6YmxvY2t9dW5pLW1hcFtoaWRkZW5de2Rpc3BsYXk6bm9uZX0uYW1hcC1tYXJrZXItbGFiZWx7cGFkZGluZzowO2JvcmRlcjpub25lO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0uYW1hcC1tYXJrZXI+LmFtYXAtaWNvbj5pbWd7bGVmdDowIWltcG9ydGFudDt0b3A6MCFpbXBvcnRhbnR9dW5pLXBpY2tlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO2N1cnNvcjpwb2ludGVyfXVuaS1waWNrZXJbaGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLXBpY2tlcltkaXNhYmxlZF17Y3Vyc29yOm5vdC1hbGxvd2VkfS51bmktcGlja2VyLWNvbnRhaW5lcntkaXNwbGF5Om5vbmU7cG9zaXRpb246Zml4ZWQ7bGVmdDowO3JpZ2h0OjA7dG9wOjA7Ym90dG9tOjA7Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6OTk5O2ZvbnQtc2l6ZToxNnB4fS51bmktcGlja2VyLWNvbnRhaW5lciAudW5pLXBpY2tlci1jdXN0b20gKntib3gtc2l6aW5nOmJvcmRlci1ib3h9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWN1c3RvbXtwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7Ym90dG9tOjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKTstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO3otaW5kZXg6OTk5O3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjojZmZmO3Zpc2liaWxpdHk6aGlkZGVuOy13ZWJraXQtdHJhbnNpdGlvbjp2aXNpYmlsaXR5IC4zcywtd2Via2l0LXRyYW5zZm9ybSAuM3M7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IC4zcywtd2Via2l0LXRyYW5zZm9ybSAuM3M7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzLHZpc2liaWxpdHkgLjNzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyx2aXNpYmlsaXR5IC4zcywtd2Via2l0LXRyYW5zZm9ybSAuM3N9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWN1c3RvbS51bmktcGlja2VyLXRvZ2dsZXt2aXNpYmlsaXR5OnZpc2libGU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCl9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoyMzhweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWl0ZW17cGFkZGluZzowO2hlaWdodDozNHB4O2xpbmUtaGVpZ2h0OjM0cHg7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6IzAwMDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47Y3Vyc29yOnBvaW50ZXJ9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWhlYWRlcntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCU7aGVpZ2h0OjQ1cHh9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWhlYWRlcjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MDtyaWdodDowO2hlaWdodDoxcHg7Y2xlYXI6Ym90aDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1O2NvbG9yOiNlNWU1ZTU7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjUpO3RyYW5zZm9ybTpzY2FsZVkoLjUpfS51bmktcGlja2VyLWNvbnRhaW5lciAudW5pLXBpY2tlci1hY3Rpb257ZGlzcGxheTpibG9jazttYXgtd2lkdGg6NTAlO3RvcDowO2hlaWdodDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjAgMTRweDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDo0NXB4O292ZXJmbG93OmhpZGRlbjtjdXJzb3I6cG9pbnRlcn0udW5pLXBpY2tlci1jb250YWluZXIgLnVuaS1waWNrZXItYWN0aW9uLnVuaS1waWNrZXItYWN0aW9uLWNhbmNlbHtmbG9hdDpsZWZ0O2NvbG9yOiM4ODh9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWFjdGlvbi51bmktcGlja2VyLWFjdGlvbi1jb25maXJte2Zsb2F0OnJpZ2h0O2NvbG9yOiMwMDdhZmZ9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLXNlbGVjdHtkaXNwbGF5Om5vbmV9LnVuaS1waWNrZXItc3lzdGVte3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6bm9uZTtkaXNwbGF5OmJsb2NrO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0udW5pLXBpY2tlci1zeXN0ZW0+aW5wdXR7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOm5vbmU7aGVpZ2h0OjEwMCU7b3BhY2l0eTowO2N1cnNvcjpwb2ludGVyfS51bmktcGlja2VyLXN5c3RlbT5pbnB1dC5maXJlZm94e3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlfS51bmktcGlja2VyLXN5c3RlbT5pbnB1dC5jaHJvbWV7dG9wOjA7bGVmdDowO3dpZHRoOjJlbTtmb250LXNpemU6MzJweDtoZWlnaHQ6MzJweH1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjUwMHB4KSBhbmQgKG1pbi1oZWlnaHQ6NTAwcHgpey51bmktbWFzay51bmktcGlja2VyLW1hc2t7YmFja2dyb3VuZDpub25lfS51bmktcGlja2VyLWNvbnRhaW5lciAudW5pLXBpY2tlci1jdXN0b217d2lkdGg6MzAwcHg7bGVmdDo1MCU7cmlnaHQ6YXV0bzt0b3A6NTAlO2JvdHRvbTphdXRvOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtvcGFjaXR5OjA7Ym9yZGVyLXJhZGl1czo1cHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjNzLHZpc2liaWxpdHkgLjNzO3RyYW5zaXRpb246b3BhY2l0eSAuM3MsdmlzaWJpbGl0eSAuM3M7Ym94LXNoYWRvdzowIDAgMjBweCA1cHggcmdiYSgwLDAsMCwuMyl9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWhlYWRlcntib3JkZXItcmFkaXVzOjVweCA1cHggMCAwfS51bmktcGlja2VyLWNvbnRhaW5lciAudW5pLXBpY2tlci1jb250ZW50ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDApO292ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOjAgMCA1cHggNXB4fS51bmktcGlja2VyLWNvbnRhaW5lciAudW5pLXBpY2tlci1jdXN0b20udW5pLXBpY2tlci10b2dnbGV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKX0udW5pLXNlbGVjdG9yLXNlbGVjdCAudW5pLXBpY2tlci1jb250ZW50LC51bmktc2VsZWN0b3Itc2VsZWN0IC51bmktcGlja2VyLWhlYWRlcntkaXNwbGF5Om5vbmV9LnVuaS1zZWxlY3Rvci1zZWxlY3QgLnVuaS1waWNrZXItc2VsZWN0e2Rpc3BsYXk6YmxvY2s7bWF4LWhlaWdodDozMDBweDtvdmVyZmxvdzphdXRvO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjVweDtwYWRkaW5nOjZweCAwfS51bmktc2VsZWN0b3Itc2VsZWN0IC51bmktcGlja2VyLWl0ZW17cGFkZGluZzowIDEwcHg7Y29sb3I6IzU1NX0udW5pLXNlbGVjdG9yLXNlbGVjdCAudW5pLXBpY2tlci1pdGVtOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Y2ZjZmNn0udW5pLXNlbGVjdG9yLXNlbGVjdCAudW5pLXBpY2tlci1pdGVtLnNlbGVjdGVke2NvbG9yOiMwMDdhZmZ9fXVuaS12aWRlb3t3aWR0aDozMDBweDtoZWlnaHQ6MjI1cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGluZS1oZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9dW5pLXZpZGVvW2hpZGRlbl17ZGlzcGxheTpub25lfS51bmktdmlkZW8tY29udGFpbmVye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjojMDAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47b2JqZWN0LXBvc2l0aW9uOmluaGVyaXR9LnVuaS12aWRlby1jb250YWluZXIudW5pLXZpZGVvLXR5cGUtZnVsbHNjcmVlbntwb3NpdGlvbjpmaXhlZDt6LWluZGV4Ojk5OX0udW5pLXZpZGVvLXZpZGVve3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LXBvc2l0aW9uOmluaGVyaXR9LnVuaS12aWRlby1jb3Zlcntib3R0b206MDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMSwxLDEsLjUpO3otaW5kZXg6MX0udW5pLXZpZGVvLWNvdmVyLC51bmktdmlkZW8tc2xvdHN7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCV9LnVuaS12aWRlby1zbG90c3toZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZX0udW5pLXZpZGVvLWNvdmVyLXBsYXktYnV0dG9ue3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7YmFja2dyb3VuZC1zaXplOjUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCUgNTAlO2N1cnNvcjpwb2ludGVyfS51bmktdmlkZW8tY292ZXItZHVyYXRpb257Y29sb3I6I2ZmZjtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxO21hcmdpbi10b3A6MTBweH0udW5pLXZpZGVvLWJhcntoZWlnaHQ6NDRweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjUpO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtyaWdodDowO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzowIDEwcHg7ei1pbmRleDowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9LnVuaS12aWRlby1iYXIudW5pLXZpZGVvLWJhci1mdWxse2xlZnQ6MH0udW5pLXZpZGVvLWNvbnRyb2xze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXgtZ3JvdzoxO2ZsZXgtZ3JvdzoxO21hcmdpbjowIDguNXB4fS51bmktdmlkZW8tY29udHJvbC1idXR0b257d2lkdGg6MTNweDtoZWlnaHQ6MTVweDtwYWRkaW5nOjE0LjVweCAxMi41cHggMTQuNXB4IDEyLjVweDttYXJnaW4tbGVmdDotOC41cHg7Ym94LXNpemluZzpjb250ZW50LWJveDtjdXJzb3I6cG9pbnRlcn0udW5pLXZpZGVvLWNvbnRyb2wtYnV0dG9uOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQtc2l6ZToxMDAlO2JhY2tncm91bmQtcG9zaXRpb246NTAlIDUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9LnVuaS12aWRlby1jb250cm9sLWJ1dHRvbi51bmktdmlkZW8tY29udHJvbC1idXR0b24tcGxheTphZnRlciwudW5pLXZpZGVvLWNvdmVyLXBsYXktYnV0dG9ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJvQUFBQWVDQVlBQUFBeTJ3N1lBQUFBQVhOU1IwSUFyczRjNlFBQUFXaEpSRUZVU0ExaitQLy8vMGNnQm9IalFHekNRQ3NBdGdKQi9BTXk1d0N4R05YdFE5aUJ3dm9BNUJVQ01RdlZMRVF4SHBOekRTamtSaFhMTU0zR0tySWVLS3BFa1lWWWpjVXUrQU1vM0FMRTNHUlppTjFNdktLUGdiSVJKRnVHMTBqOGtvZUEwZ1pFVzRqZkxJS3lmNEVxcGdPeE1FRUxDUnBGbklKM1FHVTVRTXlNMDBMaXpDRmExU1dnU2tlc2xoRnRCR2tLVndHVnk2RllTSnAra2xSL0E2cXVCMkpPa0lXTUlLMG9ObE9mOHhCb1pERTlMQUk3blluNkhzQnE0bDk2V0hRRWFMVXBBeWlPYUFTZUFNMk5ndnVQQnBhQUN0ODJJRVl0ZktsczBVYWdlY3B3WHlBenFHVFJkYUE1N3NqbVlyQXB0QWpVc0NrR1lsWU1nOUVGeUxRSTFJaVpCOFRpNk9iaDVKTmgwUW1nSGxPY0J1S1NJTUdpNTBDMThVRE1pTXNzdk9KRVdQUUxxS1liaUhueEdrUklrb0JGMjREeWFvVE1JRW9laDBXM2dlSStSQmxBckNJMGl6NEQrUlZBekVhc2ZxTFZBUTE5QWNTZzVMb1lpS1dJMWtpaVFnQ01CTG5FRWNmRFNnQUFBQUJKUlU1RXJrSmdnZz09Iil9LnVuaS12aWRlby1jb250cm9sLWJ1dHRvbi51bmktdmlkZW8tY29udHJvbC1idXR0b24tcGF1c2U6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBZ0NBWUFBQUFmZkNqeEFBQUFBWE5TUjBJQXJzNGM2UUFBQUZsSlJFRlVTQTN0a3NFS0FDQUlRN1gvLzV6cTk4d09nUWF5dW04UWFHd2VIaE16Ry82T3VqektBeW1uKzBMTXFpdnUxWHpuV21YOC9lY2hUSXlNeUFnVHdBNzJpSXd3QWV4Z2o4Z0lFOENPM2FNUmJEUE1hRXk1QlJHYUtjWnY4WXhSQUFBQUFFbEZUa1N1UW1DQyIpfS51bmktdmlkZW8tY3VycmVudC10aW1lLC51bmktdmlkZW8tZHVyYXRpb257aGVpZ2h0OjE0LjVweDtsaW5lLWhlaWdodDoxNC41cHg7bWFyZ2luLXRvcDoxNXB4O21hcmdpbi1ib3R0b206MTQuNXB4O2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiNjYmNiY2J9LnVuaS12aWRlby1wcm9ncmVzcy1jb250YWluZXJ7LXdlYmtpdC1ib3gtZmxleDoyOy13ZWJraXQtZmxleC1ncm93OjI7ZmxleC1ncm93OjI7cG9zaXRpb246cmVsYXRpdmV9LnVuaS12aWRlby1wcm9ncmVzc3toZWlnaHQ6MnB4O21hcmdpbjoyMXB4IDEycHg7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuNCk7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOnBvaW50ZXJ9LnVuaS12aWRlby1wcm9ncmVzcy1idWZmZXJlZHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MDtoZWlnaHQ6MTAwJTstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjFzO3RyYW5zaXRpb246d2lkdGggLjFzO2JhY2tncm91bmQtY29sb3I6aHNsYSgwLDAlLDEwMCUsLjgpfS51bmktdmlkZW8tYmFsbHt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O3BhZGRpbmc6MTRweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTIxcHg7Ym94LXNpemluZzpjb250ZW50LWJveDtsZWZ0OjA7bWFyZ2luLWxlZnQ6LTIycHh9LnVuaS12aWRlby1pbm5lcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjUwJX0udW5pLXZpZGVvLWRhbm11LWJ1dHRvbnt3aGl0ZS1zcGFjZTpub3dyYXA7bGluZS1oZWlnaHQ6MTtwYWRkaW5nOjJweCAxMHB4O2JvcmRlcjoxcHggc29saWQgI2ZmZjtib3JkZXItcmFkaXVzOjVweDtmb250LXNpemU6MTNweDtjb2xvcjojZmZmO21hcmdpbjowIDguNXB4O2N1cnNvcjpwb2ludGVyfS51bmktdmlkZW8tZGFubXUtYnV0dG9uLnVuaS12aWRlby1kYW5tdS1idXR0b24tYWN0aXZle2JvcmRlci1jb2xvcjojNDhjMjNkO2NvbG9yOiM0OGMyM2R9LnVuaS12aWRlby1mdWxsc2NyZWVue3dpZHRoOjE3cHg7aGVpZ2h0OjE3cHg7cGFkZGluZzo4LjVweDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNJQUFBQWlDQVlBQUFBNlJ3dkNBQUFBQVhOU1IwSUFyczRjNlFBQUFRUkpSRUZVV0FudDFkME53aUFRQi9DbVM3aEhYNXpGeExGMEFoMmhFL2xnN0JUNFB5TUpVajZPeXQyOTlCSWlvWlQ3QVJZRzU5d0xwVFhtb1hPTUdPL1FlY3h0d3lXVzRvNDJBdXBHQUxrRmRYMU1rSHhFM1E3akliUVBxTnRoUW9ncEpvWmtNTFJsc24vZ0ZNUUVrNE9vWTBvUVZVd05vb2JoUUZRd2dNeFVLRmt0MEM4K1p5NjFkOFNlUjVpSFdDTE93Ri9NQ2I4VHAvL2V4M1FGc0UxSGxDZktGVVgyT2lqTkZNblBLRDdrNzZZY0JvTDQwMlpoOEI3NytNamxYclZ2d2ZnbFhBMzJiME1yUmd4Q0UybkJpRUphTU9JUUxrWUZ3c0dvUVdvWVZVZ0pvdzRwWUQ0V2VxNGF5QnFmd0RZUW1uVUswMzAxa0lUdWp1YXd1NjUvbDJCNUE0ejNRZStVdDdFQkFBQUFBRWxGVGtTdVFtQ0MiKTtiYWNrZ3JvdW5kLXNpemU6NTAlO2JhY2tncm91bmQtcG9zaXRpb246NTAlIDUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Y3Vyc29yOnBvaW50ZXJ9LnVuaS12aWRlby1mdWxsc2NyZWVuLnVuaS12aWRlby10eXBlLWZ1bGxzY3JlZW57YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0lBQUFBaUNBWUFBQUE2Und2Q0FBQUJCRWxFUVZSWWhjWFd3UTNDTUF3RjBPK3FPekFLUXpBQWwwcE14UVF3UWhtR0t3Y0VSeGJnYzRsRVZkSFVibTN6SlI4cUplbVRvNllCeVMzSk84a2p5UWJHa0hRcGtPejR6Y21LOFlRMEJXRENrT3hMK1VES29tYk1ZS3dmWkFrbURHTEZoRUlzbUhDSUZwTUMwV0RTSUhPWVZFZ05rdzZwWVBJaEU1ai9RQ29ZRjBnN2VFa1BZR2VqK2NYODJ4L2w2YUlBSU9iOUNjcmFqcmpGRS9JQVFHUDFJZ0lSY1lWc1ZzMzIrdngrbkM5bldxNmRBWkRoT2FQSEJFREdoNTRPNHcwcGE5b3hFWkJGbUNqSUJHYjZRaDRKTVdHaUlXcE1Ca1NGeVlMTVlqSWhOVXc3TjlHUWkyYVFpTHhKSHNwalYrcmwxaEZyUnAyNXVWMk1SR1FSQnNBZXdQVUQvSGhKVk9PdUN6d0FBQUFBU1VWT1JLNUNZSUk9Iil9LnVuaS12aWRlby1kYW5tdXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Ym90dG9tOjA7d2lkdGg6MTAwJTttYXJnaW4tdG9wOjE0cHg7bWFyZ2luLWJvdHRvbTo0NHB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjE0cHg7b3ZlcmZsb3c6dmlzaWJsZX0udW5pLXZpZGVvLWRhbm11LWl0ZW17bGluZS1oZWlnaHQ6MTtwb3NpdGlvbjphYnNvbHV0ZTtjb2xvcjojZmZmO3doaXRlLXNwYWNlOm5vd3JhcDtsZWZ0OjEwMCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRleCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRleCgwKTstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6bGVmdCwtd2Via2l0LXRyYW5zZm9ybTt0cmFuc2l0aW9uLXByb3BlcnR5OmxlZnQsLXdlYmtpdC10cmFuc2Zvcm07dHJhbnNpdGlvbi1wcm9wZXJ0eTpsZWZ0LHRyYW5zZm9ybTt0cmFuc2l0aW9uLXByb3BlcnR5OmxlZnQsdHJhbnNmb3JtLC13ZWJraXQtdHJhbnNmb3JtOy13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjozczt0cmFuc2l0aW9uLWR1cmF0aW9uOjNzOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcn0udW5pLXZpZGVvLXRvYXN0e3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7Ym9yZGVyLXJhZGl1czo1cHg7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuOCk7Y29sb3I6IzAwMDtkaXNwbGF5Om5vbmV9LnVuaS12aWRlby10b2FzdC51bmktdmlkZW8tdG9hc3Qtdm9sdW1le3dpZHRoOjEwMHB4O2hlaWdodDoxMDBweDtkaXNwbGF5OmJsb2NrfS51bmktdmlkZW8tdG9hc3Qtdm9sdW1lIC51bmktdmlkZW8tdG9hc3QtdGl0bGV7d2lkdGg6MTAwJTtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNnB4O3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6MTBweDtkaXNwbGF5OmJsb2NrfS51bmktdmlkZW8tdG9hc3Qtdm9sdW1lIC51bmktdmlkZW8tdG9hc3QtaWNvbntmaWxsOiMwMDA7d2lkdGg6NTAlO2hlaWdodDo1MCU7bWFyZ2luLWxlZnQ6MjUlO2Rpc3BsYXk6YmxvY2t9LnVuaS12aWRlby10b2FzdC12b2x1bWUgLnVuaS12aWRlby10b2FzdC12YWx1ZXt3aWR0aDo4MHB4O2hlaWdodDo1cHg7bWFyZ2luLXRvcDo1cHg7bWFyZ2luLWxlZnQ6MTBweH0udW5pLXZpZGVvLXRvYXN0LXZvbHVtZSAudW5pLXZpZGVvLXRvYXN0LXZhbHVlPi51bmktdmlkZW8tdG9hc3QtdmFsdWUtY29udGVudHtvdmVyZmxvdzpoaWRkZW59LnVuaS12aWRlby10b2FzdC12b2x1bWUtZ3JpZHN7d2lkdGg6ODBweDtoZWlnaHQ6NXB4fS51bmktdmlkZW8tdG9hc3Qtdm9sdW1lLWdyaWRzLWl0ZW17ZmxvYXQ6bGVmdDt3aWR0aDo3LjFweDtoZWlnaHQ6NXB4O2JhY2tncm91bmQtY29sb3I6IzAwMH0udW5pLXZpZGVvLXRvYXN0LXZvbHVtZS1ncmlkcy1pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0OjFweH0udW5pLXZpZGVvLXRvYXN0LnVuaS12aWRlby10b2FzdC1wcm9ncmVzc3tkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOCk7Y29sb3I6I2ZmZjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxOHB4O3BhZGRpbmc6NnB4fXVuaS12aWV3e2Rpc3BsYXk6YmxvY2t9dW5pLXZpZXdbaGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLXdlYi12aWV3e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fXVuaS13ZWItdmlldy51bmktd2Vidmlldy0tZnVsbHNjcmVlbntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MH1ib2R5OjphZnRlcntwb3NpdGlvbjpmaXhlZDtjb250ZW50OicnO2xlZnQ6LTEwMDBweDt0b3A6LTEwMDBweDstd2Via2l0LWFuaW1hdGlvbjpzaGFkb3ctcHJlbG9hZCAuMXM7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6M3M7YW5pbWF0aW9uOnNoYWRvdy1wcmVsb2FkIC4xczthbmltYXRpb24tZGVsYXk6M3N9QC13ZWJraXQta2V5ZnJhbWVzIHNoYWRvdy1wcmVsb2FkezAle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2RuLmRjbG91ZC5uZXQuY24vaW1nL3NoYWRvdy1ncmV5LnBuZyl9MTAwJXtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2Nkbi5kY2xvdWQubmV0LmNuL2ltZy9zaGFkb3ctZ3JleS5wbmcpfX1Aa2V5ZnJhbWVzIHNoYWRvdy1wcmVsb2FkezAle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2RuLmRjbG91ZC5uZXQuY24vaW1nL3NoYWRvdy1ncmV5LnBuZyl9MTAwJXtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2Nkbi5kY2xvdWQubmV0LmNuL2ltZy9zaGFkb3ctZ3JleS5wbmcpfX0="}},"time_used":535,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":535,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"breeze-shopping.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"breeze-shopping.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/js/pages-login-login.dfd1fddb.js","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://breeze-shopping.com/","date":"2026-07-27T04:15:49.573Z","timestamp":1785125749573,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"breeze-shopping.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 15 Jul 2026 01:06:08 GMT","end":"Tue, 13 Oct 2026 01:06:07 GMT"},"fingerprint":{"sha1":"FC:2A:A7:4D:FF:04:7D:30:4B:17:B3:A5:DB:B5:51:EC:F4:17:89:0B","sha256":"6A:08:9D:6F:EB:0E:C9:60:FA:2A:59:01:4E:AE:44:51:20:B4:4D:8B:55:ED:47:9F:26:7D:74:49:BF:79:D4:02"}}},"request":{"raw":"GET /h5/static/js/pages-login-login.dfd1fddb.js HTTP/1.1\r\nHost: breeze-shopping.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://breeze-shopping.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 04:15:49 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 15 Jul 2026 02:04:11 GMT\r\nvary: Accept-Encoding, Accept-Encoding\r\netag: W/\"6a56ea9b-24f5\"\r\nexpires: Mon, 03 Aug 2026 04:15:49 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\ncontent-encoding: gzip\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":9461,"size_decoded":3739,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (8955), with no line terminators","md5":"03eea3f408f6673b27e65e3c609021de","sha1":"eee8ff651e4a1feb048e8d2d289027d4e49211b5","sha256":"95a902d8c938789544972c3746442f34a446204d3e107c87dc7dc39c9276cfa4","sha512":"9beb343b83e4f5229e24bd982975c1bc19d7e823e21ffb4e4ea0f1c1bfde0a8a48167f86362b6830ec8293426de76ec6f18a0623011711cceda73c9e87db3ce4","ssdeep":"192:R39gCeFBhkImQtbXhH+l85kERh9WqZymdE0xoRsSAF+R6:p9YRe+PRh9WqY0ywL","tlshash":"0412a71c25a3b45e4c0ab8a63457061571336e3da047808ae772cae59df5ece7727f28","first_seen":"2026-07-27T03:26:41.395288Z","last_seen":"2026-07-27T04:16:18.961399Z","times_seen":2,"resource_available":true,"data":"KHdpbmRvd1sid2VicGFja0pzb25wIl09d2luZG93WyJ3ZWJwYWNrSnNvbnAiXXx8W10pLnB1c2goW1sicGFnZXMtbG9naW4tbG9naW4iXSx7MTM0ODpmdW5jdGlvbih0LGksYSl7dmFyIGU9YSgiZjJhYSIpO2UuX19lc01vZHVsZSYmKGU9ZS5kZWZhdWx0KSwic3RyaW5nIj09PXR5cGVvZiBlJiYoZT1bW3QuaSxlLCIiXV0pLGUubG9jYWxzJiYodC5leHBvcnRzPWUubG9jYWxzKTt2YXIgbj1hKCI0ZjA2IikuZGVmYXVsdDtuKCI0MDRkNDliZSIsZSwhMCx7c291cmNlTWFwOiExLHNoYWRvd01vZGU6ITF9KX0sIjQxYWEiOmZ1bmN0aW9uKHQsaSxhKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe2EoIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksaS5kZWZhdWx0PXZvaWQgMCxhKCJiYWE1IiksYSgiZmI2YSIpO3ZhciBlPXtjb21wdXRlZDp7aTE4bjpmdW5jdGlvbigpe3JldHVybiB0aGlzLiR0KCJtZXNzYWdlIil9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3RhYnZhbDoxLHBob25lOiIiLHBhc3N3b3JkOiIiLHBhc3N3b3JkMjoiIixpbnZpdGU6IiIscmVnaXN0ZXJTaG93OjEsbG9naW5TaG93OjEsdG9rZW46IiJ9fSxvbkxvYWQ6ZnVuY3Rpb24oaSl7dmFyIGE9d2luZG93LmxvY2F0aW9uLmhyZWY7dC5sb2coYSk7dmFyIGU9YS5sYXN0SW5kZXhPZigiPyIpKzEsbj1hLmxlbmd0aC0yO2lmKDAhPWUpe3QubG9nKGEubGVuZ3RoKSx0LmxvZyhlKTt2YXIgbz1hLnNsaWNlKGUsbik7dC5sb2cobyk7dmFyIHM9by5zcGxpdCgiJiIpO3QubG9nKHMpO3ZhciByPXNbMF0sYz1zWzFdO3RoaXMuaW52aXRlPXIuc2xpY2UoMTIsMTgpLHRoaXMudGFidmFsPWMuc2xpY2UoNCw1KX19LG1ldGhvZHM6e3N3aXRjaFRhYjpmdW5jdGlvbih0KXt0aGlzLnRhYnZhbD10LHRoaXMucGhvbmU9IiIsdGhpcy5wYXNzd29yZD0iIix0aGlzLnBhc3N3b3JkMj0iIix0aGlzLmludml0ZT0iIn0sbG9naW46ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMubG9naW5TaG93PTIsIiIhPXRoaXMucGhvbmU/IiIhPXRoaXMucGFzc3dvcmQ/dGhpcy4kaHR0cC5odHRwKHt1cmw6Ii9sb2dpbiIsZGF0YTp7bW9iaWxlOnRoaXMucGhvbmUscGFzc3dvcmQ6dGhpcy5wYXNzd29yZH0sY2FsbGJhY2s6ZnVuY3Rpb24oaSl7MjAwPT1pLmNvZGU/KHQuJHJlZnMudVRvYXN0LnNob3coe3RpdGxlOnQuaTE4bi5sb2dpblN1Y2Nlc3MsdHlwZToic3VjY2VzcyJ9KSx0LnN3aXRjaFRhYigxKSx0LmxvZ2luU2hvdz0xLHQudG9rZW49aS5kYXRhLnRva2VuLHVuaS5zZXRTdG9yYWdlU3luYygidG9rZW4iLHQudG9rZW4pLHQuanVtcHRhYkJhcigiL3BhZ2VzL2luZGV4L2luZGV4IikpOih0LiRyZWZzLnVUb2FzdC5zaG93KHt0aXRsZTppLm1zZyx0eXBlOiJlcnJvciJ9KSx0LmxvZ2luU2hvdz0xKX19KTp0aGlzLiRyZWZzLnVUb2FzdC5zaG93KHt0aXRsZTp0aGlzLmkxOG4ucGFzc3dvcmQsdHlwZToid2FybmluZyJ9KTp0aGlzLiRyZWZzLnVUb2FzdC5zaG93KHt0aXRsZTp0aGlzLmkxOG4uYWNjb3VudCx0eXBlOiJ3YXJuaW5nIn0pfSxyZWdpc3RlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5yZWdpc3RlclNob3c9MiwiIiE9dGhpcy5waG9uZT8iIiE9dGhpcy5wYXNzd29yZD8iIiE9dGhpcy5wYXNzd29yZDI/IiIhPXRoaXMuaW52aXRlP3RoaXMuJGh0dHAuaHR0cCh7dXJsOiIvcmVnaXN0ZXIiLGRhdGE6e21vYmlsZTp0aGlzLnBob25lLHBhc3N3b3JkOnRoaXMucGFzc3dvcmQscGFzc3dvcmQyOnRoaXMucGFzc3dvcmQyLGludml0ZV9jb2RlOnRoaXMuaW52aXRlfSxjYWxsYmFjazpmdW5jdGlvbihpKXsyMDA9PWkuY29kZT8odC4kcmVmcy51VG9hc3Quc2hvdyh7dGl0bGU6dC5pMThuLnJlZ2lzdHJhdGlvblN1Y2Nlc3MsdHlwZToic3VjY2VzcyJ9KSx0LnN3aXRjaFRhYigxKSx0LnJlZ2lzdGVyU2hvdz0xKToodC4kcmVmcy51VG9hc3Quc2hvdyh7dGl0bGU6aS5tc2csdHlwZToiZXJyb3IifSksdC5yZWdpc3RlclNob3c9MSl9fSk6dGhpcy4kcmVmcy51VG9hc3Quc2hvdyh7dGl0bGU6dGhpcy5pMThuLkludml0YXRpb25Db2RlRXJyb3IsdHlwZToid2FybmluZyJ9KTp0aGlzLiRyZWZzLnVUb2FzdC5zaG93KHt0aXRsZTp0aGlzLmkxOG4uQ29uZmlybVBhc3N3b3JkLHR5cGU6Indhcm5pbmcifSk6dGhpcy4kcmVmcy51VG9hc3Quc2hvdyh7dGl0bGU6dGhpcy5pMThuLnBhc3N3b3JkLHR5cGU6Indhcm5pbmcifSk6dGhpcy4kcmVmcy51VG9hc3Quc2hvdyh7dGl0bGU6dGhpcy5pMThuLmFjY291bnQsdHlwZToid2FybmluZyJ9KX19fTtpLmRlZmF1bHQ9ZX0pLmNhbGwodGhpcyxhKCI1YTUyIilbImRlZmF1bHQiXSl9LCI0YzdhIjpmdW5jdGlvbih0LGksYSl7dC5leHBvcnRzPWEucCsic3RhdGljL2ltZy9sb2dvLjFmZjNjYjgyLnBuZyJ9LCI3OGI0IjpmdW5jdGlvbih0LGksYSl7InVzZSBzdHJpY3QiO2EucihpKTt2YXIgZT1hKCI0MWFhIiksbj1hLm4oZSk7Zm9yKHZhciBvIGluIGUpWyJkZWZhdWx0Il0uaW5kZXhPZihvKTwwJiZmdW5jdGlvbih0KXthLmQoaSx0LChmdW5jdGlvbigpe3JldHVybiBlW3RdfSkpfShvKTtpWyJkZWZhdWx0Il09bi5hfSwiN2JkNiI6ZnVuY3Rpb24odCxpLGEpeyJ1c2Ugc3RyaWN0IjthLnIoaSk7dmFyIGU9YSgiN2UwMCIpLG49YSgiNzhiNCIpO2Zvcih2YXIgbyBpbiBuKVsiZGVmYXVsdCJdLmluZGV4T2Yobyk8MCYmZnVuY3Rpb24odCl7YS5kKGksdCwoZnVuY3Rpb24oKXtyZXR1cm4gblt0XX0pKX0obyk7YSgiZGFiMyIpO3ZhciBzPWEoImYwYzUiKSxyPU9iamVjdChzWyJhIl0pKG5bImRlZmF1bHQiXSxlWyJiIl0sZVsiYyJdLCExLG51bGwsIjFlOGJjZTEzIixudWxsLCExLGVbImEiXSx2b2lkIDApO2lbImRlZmF1bHQiXT1yLmV4cG9ydHN9LCI3ZTAwIjpmdW5jdGlvbih0LGksYSl7InVzZSBzdHJpY3QiO2EuZChpLCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gbn0pKSxhLmQoaSwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIG99KSksYS5kKGksImEiLChmdW5jdGlvbigpe3JldHVybiBlfSkpO3ZhciBlPXt1VG9hc3Q6YSgiZmRjYyIpLmRlZmF1bHR9LG49ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGk9dC4kY3JlYXRlRWxlbWVudCxlPXQuX3NlbGYuX2N8fGk7cmV0dXJuIGUoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoicGFnZSJ9LFtlKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6ImxvZ28ifSxbZSgidi11bmktaW1hZ2UiLHthdHRyczp7c3JjOmEoIjRjN2EiKSxtb2RlOiIifX0pXSwxKSxlKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6InRpdCJ9LFt0Ll92KHQuX3ModC5pMThuLnBsYXRmb3JtTmFtZSkpXSksZSgidi11bmktdmlldyIse3N0YXRpY0NsYXNzOiJ0YWIifSxbZSgidi11bmktdmlldyIse2NsYXNzOjE9PXQudGFidmFsPyJ0YWJfYm94MiI6InRhYl9ib3giLG9uOntjbGljazpmdW5jdGlvbihpKXthcmd1bWVudHNbMF09aT10LiRoYW5kbGVFdmVudChpKSx0LnN3aXRjaFRhYigxKX19fSxbZSgidi11bmktdmlldyIsW3QuX3YodC5fcyh0LmkxOG4uYWNjb3VudExvZ2luKSldKSwxPT10LnRhYnZhbD9lKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6InRhYl9ib3hfc2hhZG93In0pOnQuX2UoKV0sMSksZSgidi11bmktdmlldyIse2NsYXNzOjI9PXQudGFidmFsPyJ0YWJfYm94MiI6InRhYl9ib3giLG9uOntjbGljazpmdW5jdGlvbihpKXthcmd1bWVudHNbMF09aT10LiRoYW5kbGVFdmVudChpKSx0LnN3aXRjaFRhYigyKX19fSxbZSgidi11bmktdmlldyIsW3QuX3YodC5fcyh0LmkxOG4uU2lnblVwTm93KSldKSwyPT10LnRhYnZhbD9lKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6InRhYl9ib3hfc2hhZG93In0pOnQuX2UoKV0sMSldLDEpLDE9PXQudGFidmFsP2UoInYtdW5pLXZpZXciLFtlKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6ImlucHV0X2JveCJ9LFtlKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6ImlucHV0X2JveF92aWV3In0sW2UoInYtdW5pLWlucHV0Iix7YXR0cnM6e3R5cGU6InRleHQiLHBsYWNlaG9sZGVyOnQuaTE4bi5hY2NvdW50fSxtb2RlbDp7dmFsdWU6dC5waG9uZSxjYWxsYmFjazpmdW5jdGlvbihpKXt0LnBob25lPWl9LGV4cHJlc3Npb246InBob25lIn19KV0sMSksZSgidi11bmktdmlldyIse3N0YXRpY0NsYXNzOiJpbnB1dF9ib3hfdmlldyJ9LFtlKCJ2LXVuaS1pbnB1dCIse2F0dHJzOnt0eXBlOiJ0ZXh0IixwbGFjZWhvbGRlcjp0LmkxOG4ucGFzc3dvcmR9LG1vZGVsOnt2YWx1ZTp0LnBhc3N3b3JkLGNhbGxiYWNrOmZ1bmN0aW9uKGkpe3QucGFzc3dvcmQ9aX0sZXhwcmVzc2lvbjoicGFzc3dvcmQifX0pXSwxKSxlKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6ImlucHV0X2JveF9mb290In0sW2UoImEiLHtvbjp7Y2xpY2s6ZnVuY3Rpb24oaSl7YXJndW1lbnRzWzBdPWk9dC4kaGFuZGxlRXZlbnQoaSksdC5qdW1wKCIvcGFnZXMvbXkvU2VydmljZSIpfX19LFt0Ll92KHQuX3ModC5pMThuLkZvcmdldEN1c3RvbWVyU2VydmljZSkpXSldKV0sMSksZSgidi11bmktdmlldyIse3N0YXRpY0NsYXNzOiJidXQifSxbMT09dC5sb2dpblNob3c/ZSgidi11bmktdmlldyIse3N0YXRpY0NsYXNzOiJidXRfYm94Iixvbjp7Y2xpY2s6ZnVuY3Rpb24oaSl7YXJndW1lbnRzWzBdPWk9dC4kaGFuZGxlRXZlbnQoaSksdC5sb2dpbigpfX19LFt0Ll92KHQuX3ModC5pMThuLmxvZ2luSW1tZWRpYXRlbHkpKV0pOmUoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoiYnV0X2JveDIifSxbdC5fdih0Ll9zKHQuaTE4bi5sb2dnaW5nSW4pKV0pXSwxKV0sMSk6dC5fZSgpLDI9PXQudGFidmFsP2UoInYtdW5pLXZpZXciLFtlKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6ImlucHV0X2JveCJ9LFtlKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6ImlucHV0X2JveF92aWV3In0sW2UoInYtdW5pLWlucHV0Iix7YXR0cnM6e3R5cGU6InRleHQiLHBsYWNlaG9sZGVyOnQuaTE4bi5hY2NvdW50fSxtb2RlbDp7dmFsdWU6dC5waG9uZSxjYWxsYmFjazpmdW5jdGlvbihpKXt0LnBob25lPWl9LGV4cHJlc3Npb246InBob25lIn19KV0sMSksZSgidi11bmktdmlldyIse3N0YXRpY0NsYXNzOiJpbnB1dF9ib3hfdmlldyJ9LFtlKCJ2LXVuaS1pbnB1dCIse2F0dHJzOnt0eXBlOiJudW1iZXIiLHBsYWNlaG9sZGVyOnQuaTE4bi5wYXNzd29yZH0sbW9kZWw6e3ZhbHVlOnQucGFzc3dvcmQsY2FsbGJhY2s6ZnVuY3Rpb24oaSl7dC5wYXNzd29yZD1pfSxleHByZXNzaW9uOiJwYXNzd29yZCJ9fSldLDEpLGUoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoiaW5wdXRfYm94X3ZpZXcifSxbZSgidi11bmktaW5wdXQiLHthdHRyczp7dHlwZToibnVtYmVyIixwbGFjZWhvbGRlcjp0LmkxOG4uQ29uZmlybVBhc3N3b3JkfSxtb2RlbDp7dmFsdWU6dC5wYXNzd29yZDIsY2FsbGJhY2s6ZnVuY3Rpb24oaSl7dC5wYXNzd29yZDI9aX0sZXhwcmVzc2lvbjoicGFzc3dvcmQyIn19KV0sMSksZSgidi11bmktdmlldyIse3N0YXRpY0NsYXNzOiJpbnB1dF9ib3hfdmlldyJ9LFtlKCJ2LXVuaS1pbnB1dCIse2F0dHJzOnt0eXBlOiJ0ZXh0IixwbGFjZWhvbGRlcjp0LmkxOG4uSW52aXRhdGlvbkNvZGVFcnJvcn0sbW9kZWw6e3ZhbHVlOnQuaW52aXRlLGNhbGxiYWNrOmZ1bmN0aW9uKGkpe3QuaW52aXRlPWl9LGV4cHJlc3Npb246Imludml0ZSJ9fSldLDEpLGUoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoiaW5wdXRfYm94X2Zvb3QiLG9uOntjbGljazpmdW5jdGlvbihpKXthcmd1bWVudHNbMF09aT10LiRoYW5kbGVFdmVudChpKSx0Lmp1bXAoIi9wYWdlcy9teS9TZXJ2aWNlIil9fX0sW2UoImEiLHthdHRyczp7aHJlZjoiIn19LFt0Ll92KHQuX3ModC5pMThuLlF1ZXN0aW9uQ3VzdG9tZXJTZXJ2aWNlKSldKV0pXSwxKSxlKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6ImJ1dCJ9LFsxPT10LnJlZ2lzdGVyU2hvdz9lKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6ImJ1dF9ib3giLG9uOntjbGljazpmdW5jdGlvbihpKXthcmd1bWVudHNbMF09aT10LiRoYW5kbGVFdmVudChpKSx0LnJlZ2lzdGVyKCl9fX0sW3QuX3YodC5fcyh0LmkxOG4ucmVnaXN0ZXIpKV0pOmUoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoiYnV0X2JveDIifSxbdC5fdih0Ll9zKHQuaTE4bi5yZWdpc3RlcmluZykpXSldLDEpXSwxKTp0Ll9lKCksZSgidi11bmktdmlldyIsW2UoInUtdG9hc3QiLHtyZWY6InVUb2FzdCJ9KV0sMSldLDEpfSxvPVtdfSxiYWE1OmZ1bmN0aW9uKHQsaSxhKXt2YXIgZT1hKCIyM2U3Iiksbj1hKCJlNThjIik7ZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOm4hPT1bXS5sYXN0SW5kZXhPZn0se2xhc3RJbmRleE9mOm59KX0sZGFiMzpmdW5jdGlvbih0LGksYSl7InVzZSBzdHJpY3QiO3ZhciBlPWEoIjEzNDgiKSxuPWEubihlKTtuLmF9LGYyYWE6ZnVuY3Rpb24odCxpLGEpe3ZhciBlPWEoIjI0ZmIiKTtpPWUoITEpLGkucHVzaChbdC5pLCdAY2hhcnNldCAiVVRGLTgiO1xyXG4vKipcclxuICog6L+Z6YeM5pivdW5pLWFwcOWGhee9rueahOW4uOeUqOagt+W8j+WPmOmHj1xyXG4gKlxyXG4gKiB1bmktYXBwIOWumOaWueaJqeWxleaPkuS7tuWPiuaPkuS7tuW4guWcuu+8iGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY27vvInkuIrlvojlpJrkuInmlrnmj5Lku7blnYfkvb/nlKjkuobov5nkupvmoLflvI/lj5jph49cclxuICog5aaC5p6c5L2g5piv5o+S5Lu25byA5Y+R6ICF77yM5bu66K6u5L2g5L2/55Soc2Nzc+mihOWkhOeQhu+8jOW5tuWcqOaPkuS7tuS7o+eggeS4reebtOaOpeS9v+eUqOi/meS6m+WPmOmHj++8iOaXoOmcgCBpbXBvcnQg6L+Z5Liq5paH5Lu277yJ77yM5pa55L6/55So5oi36YCa6L+H5pCt56ev5pyo55qE5pa55byP5byA5Y+R5pW05L2T6aOO5qC85LiA6Ie055qEQXBwXHJcbiAqXHJcbiAqL1xyXG4vKipcclxuICog5aaC5p6c5L2g5pivQXBw5byA5Y+R6ICF77yI5o+S5Lu25L2/55So6ICF77yJ77yM5L2g5Y+v5Lul6YCa6L+H5L+u5pS56L+Z5Lqb5Y+Y6YeP5p2l5a6a5Yi26Ieq5bex55qE5o+S5Lu25Li76aKY77yM5a6e546w6Ieq5a6a5LmJ5Li76aKY5Yqf6IO9XHJcbiAqXHJcbiAqIOWmguaenOS9oOeahOmhueebruWQjOagt+S9v+eUqOS6hnNjc3PpooTlpITnkIbvvIzkvaDkuZ/lj6/ku6Xnm7TmjqXlnKjkvaDnmoQgc2NzcyDku6PnoIHkuK3kvb/nlKjlpoLkuIvlj5jph4/vvIzlkIzml7bml6DpnIAgaW1wb3J0IOi/meS4quaWh+S7tlxyXG4gKi9cclxuLyog6aKc6Imy5Y+Y6YePICovXHJcbi8q5YWo5bGA5Li76aKY6Imy6LCDKi9cclxuLyog6KGM5Li655u45YWz6aKc6ImyICovXHJcbi8qIOaWh+Wtl+WfuuacrOminOiJsiAqL1xyXG4vKiDog4zmma/popzoibIgKi9cclxuLyog6L655qGG6aKc6ImyICovXHJcbi8qIOWwuuWvuOWPmOmHjyAqL1xyXG4vKiDmloflrZflsLrlr7ggKi9cclxuLyog5Zu+54mH5bC65a+4ICovXHJcbi8qIEJvcmRlciBSYWRpdXMgKi9cclxuLyog5rC05bmz6Ze06LedICovXHJcbi8qIOWeguebtOmXtOi3nSAqL1xyXG4vKiDpgI/mmI7luqYgKi9cclxuLyog5paH56ug5Zy65pmv55u45YWzICovdW5pLXBhZ2UtYm9keVtkYXRhLXYtMWU4YmNlMTNde21hcmdpbjowO3BhZGRpbmc6MDtiYWNrZ3JvdW5kLWNvbG9yOiNlOWVmZmY7Zm9udC1mYW1pbHk6SGVsdmV0aWNhLE1pY3Jvc29mdCBZYUhlaSxBcmlhbCxzYW5zLXNlcmlmfWJvZHkuPyVQQUdFPyVbZGF0YS12LTFlOGJjZTEzXXtiYWNrZ3JvdW5kLWNvbG9yOiNlOWVmZmZ9LmxvZ29bZGF0YS12LTFlOGJjZTEzXXttYXJnaW4tdG9wOiU/MTU4PyU7d2lkdGg6OTAlO21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG99LmxvZ28gdW5pLWltYWdlW2RhdGEtdi0xZThiY2UxM117d2lkdGg6JT8xODA/JTtoZWlnaHQ6JT8xODA/JX0udGl0W2RhdGEtdi0xZThiY2UxM117Zm9udC1zaXplOiU/NDg/JTt3aWR0aDo5MCU7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bztmb250LXdlaWdodDo1NTB9LnRhYltkYXRhLXYtMWU4YmNlMTNde21hcmdpbi10b3A6JT84ND8lO2Rpc3BsYXk6ZmxleDt3aWR0aDo5MCU7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0b30udGFiX2JveFtkYXRhLXYtMWU4YmNlMTNde21hcmdpbi1yaWdodDolPzQ4PyU7Zm9udC1zaXplOiU/MzY/JTtjb2xvcjojNTg1YTYyfS50YWJfYm94MltkYXRhLXYtMWU4YmNlMTNde21hcmdpbi1yaWdodDolPzQ4PyU7Zm9udC1zaXplOiU/MzY/JTtjb2xvcjojMzUzYzU1O2ZvbnQtd2VpZ2h0OjU1MH0udGFiX2JveF9zaGFkb3dbZGF0YS12LTFlOGJjZTEzXXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgzMTVkZWcsIzE5MWI1YywjMTkxYjVjKTtoZWlnaHQ6JT8yOD8lO2JvcmRlci1yYWRpdXM6JT8xND8lO21hcmdpbi10b3A6JT8tMjA/JX0uaW5wdXRfYm94W2RhdGEtdi0xZThiY2UxM117d2lkdGg6OTAlO21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87bWFyZ2luLXRvcDolPzg0PyV9LmlucHV0X2JveF92aWV3W2RhdGEtdi0xZThiY2UxM117bWFyZ2luLWJvdHRvbTolPzMyPyU7Ym94LXNoYWRvdzolPzA/JSAlPzQ/JSAlPzE2PyUgJT8wPyUgcmdiYSgyMjQsMjM0LDI1NSwuNSl9LmlucHV0X2JveF92aWV3IHVuaS1pbnB1dFtkYXRhLXYtMWU4YmNlMTNde2JhY2tncm91bmQtY29sb3I6I2ZmZjtwYWRkaW5nOiU/MzI/JTtib3gtc2hhZG93OiU/MD8lICU/ND8lICU/MTY/JSAlPzA/JSByZ2JhKDIyNCwyMzQsMjU1LC41KTtib3JkZXItcmFkaXVzOiU/MjQ/JTtmb250LXNpemU6JT8zMj8lO2NvbG9yOiMzNTNjNTV9LmlucHV0X2JveF9mb290W2RhdGEtdi0xZThiY2UxM117dGV4dC1hbGlnbjpyaWdodH0uaW5wdXRfYm94X2Zvb3QgYVtkYXRhLXYtMWU4YmNlMTNde2NvbG9yOiM1Nzk0Zjg7Zm9udC1zaXplOiU/MjQ/JTtmb250LXdlaWdodDo0MDB9LmJ1dFtkYXRhLXYtMWU4YmNlMTNde3dpZHRoOjkwJTttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO21hcmdpbi10b3A6JT83Mj8lfS5idXRfYm94W2RhdGEtdi0xZThiY2UxM117YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMzE1ZGVnLCMxOTFiNWMsIzE5MWI1Yyk7Ym9yZGVyLXJhZGl1czolPzI0PyU7Ym94LXNoYWRvdzolPzA/JSAlPzI/JSAlPzE2PyUgJT8wPyUgcmdiYSgxMDUsMTUzLDI1NSwuNik7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzolPzM1PyUgMH0uYnV0X2JveDJbZGF0YS12LTFlOGJjZTEzXXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgzMTVkZWcsIzE5MWI1YywjMTkxYjVjKTtib3JkZXItcmFkaXVzOiU/MjQ/JTtib3gtc2hhZG93OiU/MD8lICU/Mj8lICU/MTY/JSAlPzA/JSByZ2JhKDEwNSwxNTMsMjU1LC42KTtmb250LXdlaWdodDo1MDA7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOiU/MzU/JSAwO29wYWNpdHk6LjV9JywiIl0pLHQuZXhwb3J0cz1pfX1dKTs="}},"time_used":275,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":275,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"breeze-shopping.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"breeze-shopping.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/icon/tab/51.png","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://breeze-shopping.com/","date":"2026-07-27T04:15:49.603Z","timestamp":1785125749603,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"breeze-shopping.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 15 Jul 2026 01:06:08 GMT","end":"Tue, 13 Oct 2026 01:06:07 GMT"},"fingerprint":{"sha1":"FC:2A:A7:4D:FF:04:7D:30:4B:17:B3:A5:DB:B5:51:EC:F4:17:89:0B","sha256":"6A:08:9D:6F:EB:0E:C9:60:FA:2A:59:01:4E:AE:44:51:20:B4:4D:8B:55:ED:47:9F:26:7D:74:49:BF:79:D4:02"}}},"request":{"raw":"GET /h5/static/icon/tab/51.png HTTP/1.1\r\nHost: breeze-shopping.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://breeze-shopping.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 04:15:49 GMT\r\ncontent-type: image/png\r\ncontent-length: 3645\r\nlast-modified: Wed, 15 Jul 2026 02:04:11 GMT\r\nvary: Accept-Encoding\r\netag: \"6a56ea9b-e3d\"\r\nexpires: Mon, 03 Aug 2026 04:15:49 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":3645,"size_decoded":4201,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"4c416c8d6f08e6bc031b5abbcea3f76d","sha1":"275cd89c21293e513ff4aa23f5660aad3aa761c1","sha256":"6b6776f9f044fea272347b78153b7ee0542f40fc9a5d412bced3b70d57f8e050","sha512":"746843a2d940b70ee0a545e223690f70c8adba97d0d85c8ea629007bc5bfdc446be5ea2c23289199b2101f2723fae2e4c1878057c50767b9a4dd83ee76be5891","ssdeep":"","tlshash":"3a715df3b7228abe8f310c160a961570f5bdd9c5001cee2aa42bd13d91d4fa544bcb74","first_seen":"2026-02-01T06:56:24.376216Z","last_seen":"2026-07-27T14:18:45.090472Z","times_seen":14,"resource_available":false,"data":"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"}},"time_used":267,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":267,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"breeze-shopping.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"breeze-shopping.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/img/logo.1ff3cb82.png","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://breeze-shopping.com/","date":"2026-07-27T04:15:49.887Z","timestamp":1785125749887,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"breeze-shopping.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 15 Jul 2026 01:06:08 GMT","end":"Tue, 13 Oct 2026 01:06:07 GMT"},"fingerprint":{"sha1":"FC:2A:A7:4D:FF:04:7D:30:4B:17:B3:A5:DB:B5:51:EC:F4:17:89:0B","sha256":"6A:08:9D:6F:EB:0E:C9:60:FA:2A:59:01:4E:AE:44:51:20:B4:4D:8B:55:ED:47:9F:26:7D:74:49:BF:79:D4:02"}}},"request":{"raw":"GET /h5/static/img/logo.1ff3cb82.png HTTP/1.1\r\nHost: breeze-shopping.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://breeze-shopping.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 04:15:50 GMT\r\ncontent-type: image/png\r\ncontent-length: 204822\r\nlast-modified: Wed, 15 Jul 2026 02:04:11 GMT\r\nvary: Accept-Encoding\r\netag: \"6a56ea9b-32016\"\r\nexpires: Mon, 03 Aug 2026 04:15:50 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":204822,"size_decoded":205382,"mime_type":"image/png","magic":"PNG image data, 1100 x 1100, 8-bit/color RGBA, non-interlaced","md5":"1ff3cb8261dc7d4fd5f3ff91aaf2a36d","sha1":"cf1003c69092088fb292cfe801b6647209ac55c3","sha256":"50acd92d6019bef7bc7e639c79cff57c81d8ffb8a89b9aeb0eab7f5e015bcf15","sha512":"af1e160a5f3fe5595f91d4a1fe808a273321a0d9ed44e98dbdbba10e75f2e092f51bc17758943b4185f720bf75ec557e1a70f7192c55caff355221b5b32fc360","ssdeep":"3072:3eEwVus52S70/nuf2XOveBHsuhkrBOPje0lJpiBMXTdoF+2RauxkL:EV5t7THve/hkrBOPje0zuEp8+uauxk","tlshash":"d91412eb9903ee14cf5ff27be6eecf0510254039627827725bbb442eea258464f25c61","first_seen":"2026-07-27T03:26:41.391202Z","last_seen":"2026-07-27T04:16:18.97325Z","times_seen":2,"resource_available":false,"data":"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IiKiY4Gu6/NZmtA+YVlCRERERERExxKWJpQUgPYsS4iIiIiIiOhYpGnaJgDnAWipfr9MxzCrLJmj/oEhIiIiIiIiOlawNKEoLEuIiIiIiIiITCxNSGJZQkRERERERBRN07QCANeyNDlGWWXJYvUPBhEREREREdGxjqXJMYorS4iIiIiIiIiSE6WJYRiXsTQ5RrAsISIiIiIiIto33NPkGMGyhIiIiIiIiKhpWJocA3Rdz1R/44mIiIiIiIgoOas0OV39PpuOArquj1N/w4mIiIiIiIho3+i6Ph/Aaer323QEY1lCREREREREtP9YmhxFWJYQERERERERHThWadJe/f6bjiAAOqq/sURERERERES0f3RdH20YRjv1+3A6AhiG8ZL6G0pEREREREREB4ZhGJ8BaKt+P06HMcMw7tY0rVb9zSQiIiIiIiKiA8darNBG/b6cDkMAOmia5ld/E4mIiIiIiIjowLIWK9wPoJX6/TkdRsROvZqmbVN/A4mIiIiIiIjox6FpmsMwjOsAtFS/T6fDgNihV9f1xepvHBERERERERH9uDRN22EYxvksTQ5DPD6YiIiIiIiI6NCxjhs+Tf1+nQ4hHh9MREREREREdOjxuOHDCICn1N8gIiIiIiIiIjo0DMP4gMcNH2I8EYeIiIiIiIjo8CJOzjEM4xEArdXv4+kgEJu88kQcIiIiIiIiosOPdXLOZdwE9hDQdT1T/Q0hIiIiIiIiosODpmnrAJyufj9PPyLDMP6l/kYQERERERER0eGFm8AeRADuF9dDqb8JRERERERERHT4MQzjn9wE9kcG4DxN08rVTz4RERERERERHZ6sTWAf4CawPxJrk9fV6ieeiIiIiIiIiA5vmqYVcBPYH4mu693UTzgRERERERERHRk0TVtmGMbx6vf7tB/EviXqJ5qIiIiIiIiIjiyGYXzI/UwOEACncd8SIiIiIiIioiOftZ/JbQBaqd//UxPpup6pfoKJiIiIiIiI6MikadoOwzDOUL//pyYA8Kb6iSUiIiIiIiKiI5uu64MNw2in9gC0DwB0EEt11E8qERERERERER35DMN4lEcNNwOPECYiIiIiIiI6emma5gBwOY8abgIAX6ifSCIiIiIiIiI6uui6PgNAe7UXoDgMw7hb/QQSERERERER0dHJMIw/A2ij9gMUQbRKmqZtVD95RERERERERHTUCvDSnL3gpThERERERERExx5d13N5aU4CAG7hqThERERERERExybDMF7ipTlx8FQcIiIiIiIiomOXODXHMIwLeGlOBMMw/qV+ooiIiIiIiIjo2KLr+mjDMNqpvcExCUAHXopDRERERERERIJhGA8AaK32B8ccXdfnqJ8cIiIiIiIiIjo2aZq2wzCMM9T+4JgC4E31E0NERERERERExzZd17sCOE7tEY4JAM7TNM2vflKIiIiIiIiI6Ngmtu4wDOM2AK3UPuGop+t6P/UTQkREREREREQk6Lo+A0B7tU84qgG4Rf1EEBERERERERFFMgzjJQBt1F7hqMWNXomIiIiIiIhobzRN2wTgdLVXOCoBeEr9BBARERERERERxWMYxocA2qr9wlFFXHukaVq++sETERERERERESUQAHA5gJZqz3DUMAzjX+pHTURERERERESUjK7rgw3DaKf2DEcF6xjhWvWDJiIiIiIiIiLaG8Mwfn5UHjOs6/ow9YMlIiIiIiIiItoXuq7PNwzjeLVvOKLxGGEiIiIiIiIi2l9H3THDuq5PUT9IIiIiIiIiIqKmsI4ZPkHtHY5IXF1CRERERERERAfKUbPKhKtLiIiIiIiIiOhAOSpWmXB1CREREREREREdaEf8KhNN01arHxQRERERERER0f7QNK3QMIwz1B7iiADgKfUDIiIiIiIiIiI6EAzD+BBAW7WPOOxpmrZR/WCIiIiIiIiIiA4ETdMchmGcqfYRhzWuLiEiIiIiIiKiH9sRt8qEq0uIiIiIiIiI6Md2RK0y4eoSIiIiIiIiIjpYjphVJrquT1HfeSIiIiIiIiKiH4OmaTsAnKD2E4cVALeo7zgRERERERER0Y/JMIyXALRRe4rDhq7r49R3moiIiIiIiIjox6Rp2qbDdpUJgPM0TatV32kiIiIiIiIioh+bYRg/B9BK7SsOOV3X+6nvLBERERERERHRwaDr+gzDMI5X+4pDCkB7TdPK1XeWiIiIiIiIiOhgMQzjtsNqlYlhGP9S30kiIiIiIiIiooNJ1/XBhmG0U3uLQ0bTtG3qO0lEREREREREdDCJvVUNw7gCQEu1uzjoADylvoNERERERERERIeCrutdARyn9hcHna7rU9R3joiIiIiIiIjoUNA0zWEYxolqf3FQiaOE1XeMiIiIiIiIiOhQMgzjaQBt1B7joAHwhfpOEREREREREREdSof8iGEeJUxEREREREREh5tDuvkrN3slIiIiIiIiosOVYRifH5LNX7nZKxEREREREREdrjRN23HQN3/lZq9EREREREREdLgzDONRAK3VXuNHw81eiYiIiIiIiOhwp+t6LoD2aq/xo+Fmr0RERERERER0uLM2f73woGz+ahjGI+o7QERERERERER0ODIM458A2qr9xgGn6/o49RcnIiIiIiIiIjocaZq2zDCM49V+44AS1/1omuZXf3EiIiIiIiIiosOVYRhX/KiX5fByHCIiIiIiIiI60hiG8TmA49Se44Dh5ThEREREREREdKTRNG0dgBPUnuOA4OU4RERERERERHSkMgzjJwBaqX3HfuPlOERERERERER0pPrRLsvh5ThEREREREREdKT6US7L4eU4RERERERERHQUuP2AXpbDy3GIiIiIiIiI6Ein63rXA3pZDi/HISIiIiIiIqIjnaZpmw7oZTmappWrvwgRERERERER0ZHmgJ2WA+AW9cmJiIiIiIiIiI5EhmH8BUBbtf9oMgBfqE9ORERERERERHQk0nU9Vxxuo/YfTabr+mL1yYmIiIiIiIiIjlABACep/UeTADhNfVYiIiIiIiIioiOZYRiPAWit9iD7zDCMl9QnJSIiIiIiIiI6ku338cI8TpiIiIiIiIiIjjaapq3br+OFeZwwERERERERER2NDMO4CEBLtQvZKx4nTERERERERERHsTcBtFH7kL3iccJEREREREREdLTSdT2tWccL67o+R30yIiIiIiIiIqKjgaZphYZhnKj2IXulaZpffTIiIiIiIiIioqNFk/cx4f4lRERERERERHS0Mwzjd03ax8QwjH+pT0JEREREREREdDTRdX2IYRjt1F4kIV3XM9UnISIiIiIiIiI6mmiatg7ACWovkpCmafnqkxARERERERERHU00TasFcJbai8QFoIP6BERERERERERERyPDMB4D0FrtR2IYhvGS+sZEREREREREREcjwzA+B3Cc2o/E0HW9n/rGRERERERERERHI13XZxiGcbzaj8TQNG2j+sZEREREREREREepAICT1H4kCoD26lsRERERERERER3lbgfQSu1JQgzDuFt9CyIiIiIiIiKio9ybANqoPUmIYRh/Ud+CiIiIiIiIiOhoput6H8Mw2qk9SQg3fCUiIiIiIiKiY81eN37VNG21+kZEREREREREREczTdMcSTd+1TTNr74REREREREREdHRzjCMiwC0VLsScUJOB/XBRERERERERETHAsMwHgPQWu1LRGHylPpgIiIiIiIiIqJjgWEYHwI4Tu1LRGHSUX0wEREREREREdGxQNf10QDaq32JOCFnivpgIiIiIiIiIqJjgaZpmwzDOFHtS8SGr9vUBxMRERERERERHQs0Tas1DONktS8Rl+QQERERERERER2zDMP4CYBWkWUJT8ghIiIiIiIiomNazEk5AO5XH0REREREREREdCwxDOMvANpGFiZvqg8iIiIiIiIiIjqW6Lre1TCMdpGFyRfqg4iIiIiIiIiIjiW6rqdFHS2s6/o49UFERERERERERMcSTdOWATghsjBZrD6IiIiIiIiIiOhYomlaoWEYJ4YKE03T8tUHEREREREREREdawzDODlUmKh3EhEREREREREdiwzD+IldlnRQ7yQiIiIiIiIiOhYZhvGYLEwaGxsfUe8kIiIiIiIiIjoWGYbxF3uFyZvqnURERERERERExyJd17vKwsQwjH+pdxIRERERERERHYt0XR9irzD5Qr2TiIiIiIiIiOhYpOt6mixMdF0fpt5JRERERERERHQs0nV9gV2YjFPvJCIiIiIiIiI6FmmatswuTBardxIRERERERERHYs0TSuUhYmmaavVO4mIiIiIiIiIjkWapjnswiRfvZOIiIiIiIiI6FhlFyZ+9Q4iIiIiIiIiomOVfawwERERERERERFZRFnSQb2RiIiIiIiIiOhYxsKEiIiIiIiIiEjBwoSIiIiIiIiISNHCMIy71RuJiIiIiIiIiI5lYoXJ/eqNRERERERERETHMhYmREREREREREQKFiZERERERERERAqxh8kj6o1ERERERERERMcyscLkTfVGIiIiIiIiIqJjGQsTIiIiIiIiIiIFCxMiIiIiIiIiIgULEyIiIiIiIiIihShMvlBvJCIiIiIiIiI6lrEwISIiIiIiIiJSsDAhIiIiIiIiIlKwMCEiIiIiIiIiUrAwISIiIiIiIiJSsDAhIiIiIiIiIlKwMCEiIiIiIiIiUrAwISIiIiIiIiJSsDAhIiIiIiIiIlKwMCEiIiIiIiIiUrAwISIiIiIiIiJSsDAhIiIiIiIiIlKwMCEiIiIiIiIiUrAwISIiIiIiIiJSsDAh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"}},"time_used":331,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":270,"receive":61,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"breeze-shopping.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"breeze-shopping.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"cdn.dcloud.net.cn/img/shadow-grey.png","fqdn":"cdn.dcloud.net.cn","domain":"dcloud.net.cn","tld":"net.cn"},"ip":{"addr":"124.220.203.60","port":443,"asn":45090,"as":"Shenzhen Tencent Computer Systems Company Limited","country":"China","country_code":"CN"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://breeze-shopping.com/","date":"2026-07-27T04:15:51.800Z","timestamp":1785125751800,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.dcloud.net.cn","organization":""},"issuer":{"commonName":"Certum Domain Validation CA SHA2","organization":"Unizeto Technologies S.A."},"validity":{"start":"Tue, 26 Aug 2025 11:47:17 GMT","end":"Fri, 25 Sep 2026 11:47:16 GMT"},"fingerprint":{"sha1":"47:A7:6C:09:6B:1D:CA:2D:7D:39:2E:C1:7F:15:DE:5D:F2:C4:0F:77","sha256":"EA:73:37:83:D0:38:44:D9:3C:0B:26:F0:DD:D1:22:2F:36:F7:F2:86:A1:B0:58:52:DE:4E:0A:21:D6:89:E7:3E"}}},"request":{"raw":"GET /img/shadow-grey.png HTTP/1.1\r\nHost: cdn.dcloud.net.cn\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://breeze-shopping.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 04:15:52 GMT\r\ncontent-type: image/png\r\ncontent-length: 136\r\nlast-modified: Thu, 06 Jun 2019 06:42:07 GMT\r\netag: \"5cf8b5bf-88\"\r\nexpires: Mon, 27 Jul 2026 15:15:52 GMT\r\ncache-control: max-age=39600\r\nset-cookie: __uni__uid=rBEQiWpm23givgF1AzK8Ag==; expires=Thu, 31-Dec-37 23:55:55 GMT; domain=dcloud.net.cn; path=/; secure; httponly; samesite=none\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":136,"size_decoded":577,"mime_type":"image/png","magic":"PNG image data, 1 x 6, 4-bit colormap, non-interlaced","md5":"5a962adf74d92ae702467b3f47976547","sha1":"36f74049375584e3fa69b5ef87e9572336ff9e7a","sha256":"ad4ebea1c3496dd2924789ee009174a2c6289d1200e9811f458fd46f172d1d6f","sha512":"4ace23fe7ec6c7271710030fd423aace13eafac68ac3e76366ce4ce9bdc702caf71c9bdc2fb6a32c8e9791546098617cc0259decd8bb8489afdbce43e1b53a73","ssdeep":"","tlshash":"47c09bf3a615dc754a0d153b42e98271f429511e07046d0e5a13c216741e3448d56793","first_seen":"2023-04-15T10:50:30Z","last_seen":"2026-07-30T23:08:49.862579Z","times_seen":20083,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGBAMAAADwPukCAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAASUExURdnZ2fT09N7e3uzs7OTk5Pr6+vVa4lkAAAAUSURBVAjXY2BgUGBwYDBgEGAIAAAEXADx8btKYQAAAABJRU5ErkJggg=="}},"time_used":1243,"timings":{"blocked":0,"dns":3,"connect":203,"send":0,"wait":608,"receive":0,"ssl":429},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"breeze-shopping.com/h5/static/icon/tab/48.png","fqdn":"breeze-shopping.com","domain":"breeze-shopping.com","tld":"com"},"ip":{"addr":"47.79.79.42","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://breeze-shopping.com/","date":"2026-07-27T04:15:49.596Z","timestamp":1785125749596,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"breeze-shopping.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 15 Jul 2026 01:06:08 GMT","end":"Tue, 13 Oct 2026 01:06:07 GMT"},"fingerprint":{"sha1":"FC:2A:A7:4D:FF:04:7D:30:4B:17:B3:A5:DB:B5:51:EC:F4:17:89:0B","sha256":"6A:08:9D:6F:EB:0E:C9:60:FA:2A:59:01:4E:AE:44:51:20:B4:4D:8B:55:ED:47:9F:26:7D:74:49:BF:79:D4:02"}}},"request":{"raw":"GET /h5/static/icon/tab/48.png HTTP/1.1\r\nHost: breeze-shopping.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://breeze-shopping.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 04:15:49 GMT\r\ncontent-type: image/png\r\ncontent-length: 3504\r\nlast-modified: Wed, 15 Jul 2026 02:04:11 GMT\r\nvary: Accept-Encoding\r\netag: \"6a56ea9b-db0\"\r\nexpires: Mon, 03 Aug 2026 04:15:49 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":3504,"size_decoded":4060,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"40f7c0c9cd3fe3c54aeafa0ed96b2fc2","sha1":"b602bc0993db7b425db77d3daddd26a4d45c89d8","sha256":"1fafebdaf311841e93a1c578f5509386319eb0ddd81b0898e8536b7fe07da756","sha512":"2d61099bb621b73f99ebc2c369d245278ad9cc88e6b11fca0bec7ae00cc0d445bb7761c5469f717685873a8882d66b38cb80d7c2beb5e27da1444da87f2cc9d1","ssdeep":"","tlshash":"5c717e2034f097a8b65e24a04ab7b8c4dfe2354f6e1edd6b4ced29069871c3035ecc05","first_seen":"2026-02-01T06:56:24.375394Z","last_seen":"2026-07-27T14:18:45.06769Z","times_seen":14,"resource_available":false,"data":"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"}},"time_used":267,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":267,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"breeze-shopping.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"breeze-shopping.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}}]}
