{"report_id":"f0668112-33f4-4f0e-a6bb-b3e2389e9a15","version":0,"status":"done","tags":["amazon","phishing"],"date":"2026-07-27T14:02:57Z","url":{"schema":"http","addr":"amazonenterprise3.com","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":0,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"final":{"url":{"schema":"https","addr":"amazonenterprise3.com/#/login","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"title":"Amazon","dom":{"size":2674,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with very long lines (1714)","md5":"691a88056b5b9b906ec61201c0075db7","sha1":"6d5b7d8be8dcbd6b2019c801c1659d2c6cd46807","sha256":"f6b476f8dc8dbc37c5bfa8c8d75b542d41634440441dd4098bf29eee0b07c995","sha512":"cda156385c226671e0b09d5de56373fd4c7d70c476424ac704b6bb8d4d57659e88bbd38bf4f969893c7350172000d4d5110ce67d4c34b9a6b1765897911b1c19","ssdeep":"","tlshash":"7951cd6a284818371623d9c578b0fa587996db1fc94fc6508aa702c52ff3cf19c6d476","dom_hash":"domhashf6b47771a425af6fdb7ef3db21d6f277","first_seen":"","last_seen":"","times_seen":0,"resource_available":false,"data":null}},"submit":{"url":{"schema":"http","addr":"amazonenterprise3.com","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":0,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T14:02:57Z","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":2,"analyzer":4}},"detection":{"ids":null,"analyzer":[{"sensor_name":"ultradns","sensor_type":"DNS","title":"DigiCert UltraDNS","description":"DigiCert UltraDNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://vercara.digicert.com/ultra-dns-public","meta":null},{"sensor_name":"cloudflare_dns","sensor_type":"DNS","title":"Cloudflare DNS","description":"Cloudflare DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cloudflare.com/application-services/products/dns/","meta":null},{"sensor_name":"cira_dns","sensor_type":"DNS","title":"CIRA Canadian Shield DNS","description":"CIRA Canadian Shield DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cira.ca/en/canadian-shield/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"amazonenterprise3.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":[{"sensor_name":"urlquery","alert":"Phishing - Amazon","verdict":"phishing","severity":"medium","comment":"Resource associated with Amazon phishing","tags":["amazon","phishing"],"meta":null},{"sensor_name":"urlquery","alert":"Phishing - Amazon","verdict":"phishing","severity":"medium","comment":"Resource associated with Amazon phishing","tags":["amazon","phishing"],"meta":null}]},"summary":[{"fqdn":"amazonenterprise3.com","ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"domain_registered":"2026-07-19","domain_rank":0,"first_seen":"2026-07-27T12:42:42.962048Z","last_seen":"2026-07-27T12:42:42.962048Z","alert_count":45,"request_count":9,"received_data":610658,"sent_data":4287,"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"]}]}],"files":null,"artifacts":{"windows_shortcuts":null,"files":null,"telegram":null,"pdfs":null,"clipboard":null},"sensors":{"ids":null,"analyzer":null,"urlquery":[{"sensor_name":"urlquery","alert":"Phishing - Amazon","verdict":"phishing","severity":"medium","comment":"Resource associated with Amazon phishing","tags":["amazon","phishing"],"meta":null}]},"javascript":{"script":[{"url":{"schema":"https","addr":"amazonenterprise3.com/assets/index-eGkoKyB0.js","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"introduction_type":"scriptElement","is_inline":false,"md5":"680617ae8c65bb878c14feb8579637cc","sha1":"1cf47ea670f5925639a1a23aba43d2c674681ca4","sha256":"b00e84a9dc03f4c23b8b6bb2f8b6f5708c2d936f3a6bcddc797f2723930753c7","sha512":"e148c993f78519eeeb5081c36b49e44c341789ba2c058c0ceb3158c1f6457622d1cce32b892ad75c6e5dcc3c875773c63e27c8c93f9830f4d8a6d9ac634db985","ssdeep":"6144:stT7eJiBmnIQ3DW/sNbT4Ym/4px9cUHMe0vbbW2Smxphzjc:stqNFx96J3Mmxfjc","tlshash":"8f443ad1b2d5b43887bf8195906a4410f3390bc8e40a91f9f0b4ad5a36b9dd4b2ebf35","size":262107,"data":"","first_seen":"2026-07-27T12:42:47.689928Z","last_seen":"2026-07-27T14:03:28.937669Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"amazonenterprise3.com/assets/_plugin-vue_export-helper-CCRSHpwL.js","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"introduction_type":"scriptElement","is_inline":false,"md5":"8205f79a932125824ffc885204da978e","sha1":"d9e7b8de1e753c55cc6ab94cec2f7d3d24db94c7","sha256":"384fe3da5652d80b9dc9e54eeecf6e9ad7b8cb0889920649c87b9ffb53ecbf1a","sha512":"1cc8d8645a256c5877b70be36399a46db9dc4423e9d7460e9ca4b19c424dc16a123879eabc4b92b223681a501f58f6e61ef9e59f93011d7da4ee683b694101ac","ssdeep":"768:+/tMA9J/6NHFnFGs0X2/EKeF/t5r1Na5bv8yYoi/lAa4n7+kQMYO:Ca4J/6NC2c33rCTayyo","tlshash":"cf5308f93386b57293ee12f7407b4402f3aa289a2c0d052cf195a99f397580991fbf75","size":61979,"data":"","first_seen":"2026-07-27T12:42:47.693267Z","last_seen":"2026-07-27T14:03:28.939314Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"amazonenterprise3.com/assets/login-h-kMTWYG.js","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"introduction_type":"scriptElement","is_inline":false,"md5":"a15598b48d0c78d5f544f5cfe3c1e23d","sha1":"a613b08cd2aec9437b30c5f29b99d181570cfdea","sha256":"f04de366c1dbde7840f6a2b8394508b770b97c8fb51a6d7f23d11a81a5bd13d4","sha512":"7c346d9738c08dc5d42d5a632188f74ecb7bcbd6a6d845e98435e6044ec5bb8f71adcd7baf3096fcd04176954c6194cbf1746ea0aed26b49ea3c70af78b6a5ef","ssdeep":"","tlshash":"bb41746b10a4dc7d058b49c9b1ca15603044f473a8139d6dfef44ad43ebdfe9562ab22","size":2246,"data":"","first_seen":"2026-07-27T12:42:47.680349Z","last_seen":"2026-07-27T14:03:28.942556Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"amazonenterprise3.com/assets/apiMessage-ldb6Nt84.js","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"introduction_type":"scriptElement","is_inline":false,"md5":"8579388f4626cb220b812ed32f4314a6","sha1":"c73c8e69a558351faa29f6b726d9a29a69973a8d","sha256":"0449b573595034de2f16883ddbef9085e243aca421c81edcec00e5a0be2d3a99","sha512":"c72be6795f5793a180a6907e2396f443d9f7dfae1673a05a2c65eb64f14a219fe95ef4bbd7bf3b23b6eb5723e898fba379b6cff12acfed83c8879187bf63d574","ssdeep":"","tlshash":"f551c7812704235309804908b93f85de375db878937a52ada4e983c353469adc7efbc4","size":3001,"data":"","first_seen":"2026-07-27T12:42:47.698854Z","last_seen":"2026-07-27T14:03:28.946636Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"amazonenterprise3.com/assets/api-CKD84iLZ.js","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"introduction_type":"scriptElement","is_inline":false,"md5":"2607c7f4510aa40bbd4643e5588da94d","sha1":"dcc23a2bdb4b6d6f789fd393b00854f4f4809901","sha256":"64279314d8070efd8625edce3f36e82e814288d0418a9b5ee90784c086f9a149","sha512":"0a46270c5f8e6bae3e4a0c1c7e62c243f7ff44b9dd7cd43312eb82790c41ff019ebb6aeaa423377196ad5ab3d364f099373913ba4d5ae44e067b9d78f3d0fad7","ssdeep":"768:CiF2IgTImV0zBYMvOjskTzFlAj2WbkukJ+kHC66ilS9nfoVXBB3Gpmgx:Ciw1V09ZbHkHC66yVL3Gv","tlshash":"42433dd67695b02183de61fd402b4402f33aa9686c0d446cb160d8db3cf558a96fff7a","size":58069,"data":"","first_seen":"2026-07-27T12:42:47.683952Z","last_seen":"2026-07-27T14:03:28.944294Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":null},"http":[{"url":{"schema":"https","addr":"amazonenterprise3.com/","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T14:02:20.989Z","timestamp":1785160940989,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"amazonenterprise3.com","organization":""},"issuer":{"commonName":"LiteSSL RSA CA 2025","organization":"TrustAsia Technologies, Inc."},"validity":{"start":"Mon, 20 Jul 2026 11:00:00 GMT","end":"Sun, 18 Oct 2026 10:59:59 GMT"},"fingerprint":{"sha1":"4A:8A:66:B3:B0:81:D6:26:E2:8C:1F:FF:74:BC:A3:71:A3:81:C0:42","sha256":"E4:66:EB:64:6C:32:49:49:72:14:0B:E8:64:1D:03:F1:C0:70:AF:96:1E:F3:BF:6A:58:42:F7:06:1F:E0:51:A0"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: amazonenterprise3.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\nUpgrade-Insecure-Requests: 1\r\nConnection: keep-alive\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 14:02:22 GMT\r\ncontent-type: text/html\r\ncontent-length: 551\r\nlast-modified: Tue, 21 Jul 2026 18:45:13 GMT\r\netag: \"6a5fbe39-227\"\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\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":551,"size_decoded":987,"mime_type":"text/html","magic":"HTML document, ASCII text","md5":"a204a67d8f36e1d99550435988f314a1","sha1":"bf6cf3c586d598b4f58872b3f1063aade4926056","sha256":"883bd01f4e0d70de15fefe91c506e77dedf267ef0e003a38e4674450704b74bf","sha512":"594ff6c504fd956fe43ea69abdc6eab32ae7b4a948490d5081d6cee60f398786c264bc3694e5a3d82d7fb379e3182e9735f9a9b8332c507d830967959032d73a","ssdeep":"","tlshash":"fbf0c04154a08d19033047546ec1f4089d83f78b4749de4861e7a0bd1f80b838ecf8bc","first_seen":"2026-07-27T12:42:47.687282Z","last_seen":"2026-07-27T14:03:28.935674Z","times_seen":3,"resource_available":false,"data":"PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KICA8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04IiAvPgogICAgPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS9zdmcreG1sIiBocmVmPSIvZmF2aWNvbi5zdmciIC8+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCIgLz4KICAgIDx0aXRsZT5BbWF6b248L3RpdGxlPgogICAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiIGNyb3Nzb3JpZ2luIHNyYz0iL2Fzc2V0cy9pbmRleC1lR2tvS3lCMC5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9Im1vZHVsZXByZWxvYWQiIGNyb3Nzb3JpZ2luIGhyZWY9Ii9hc3NldHMvX3BsdWdpbi12dWVfZXhwb3J0LWhlbHBlci1DQ1JTSHB3TC5qcyI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGNyb3Nzb3JpZ2luIGhyZWY9Ii9hc3NldHMvaW5kZXgtQjBoX2ZvSksuY3NzIj4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8ZGl2IGlkPSJhcHAiPjwvZGl2PgogIDwvYm9keT4KPC9odG1sPgo="}},"time_used":1447,"timings":{"blocked":-1,"dns":341,"connect":276,"send":0,"wait":277,"receive":0,"ssl":552},"alerts":{"ids":null,"analyzer":[{"sensor_name":"ultradns","sensor_type":"DNS","title":"DigiCert UltraDNS","description":"DigiCert UltraDNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://vercara.digicert.com/ultra-dns-public","meta":null},{"sensor_name":"cloudflare_dns","sensor_type":"DNS","title":"Cloudflare DNS","description":"Cloudflare DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cloudflare.com/application-services/products/dns/","meta":null},{"sensor_name":"cira_dns","sensor_type":"DNS","title":"CIRA Canadian Shield DNS","description":"CIRA Canadian Shield DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cira.ca/en/canadian-shield/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"amazonenterprise3.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":[{"sensor_name":"urlquery","alert":"Phishing - Amazon","verdict":"phishing","severity":"medium","comment":"Resource associated with Amazon phishing","tags":["amazon","phishing"],"meta":null}]}},{"url":{"schema":"https","addr":"amazonenterprise3.com/assets/index-eGkoKyB0.js","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://amazonenterprise3.com/","date":"2026-07-27T14:02:22.633Z","timestamp":1785160942633,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"amazonenterprise3.com","organization":""},"issuer":{"commonName":"LiteSSL RSA CA 2025","organization":"TrustAsia Technologies, Inc."},"validity":{"start":"Mon, 20 Jul 2026 11:00:00 GMT","end":"Sun, 18 Oct 2026 10:59:59 GMT"},"fingerprint":{"sha1":"4A:8A:66:B3:B0:81:D6:26:E2:8C:1F:FF:74:BC:A3:71:A3:81:C0:42","sha256":"E4:66:EB:64:6C:32:49:49:72:14:0B:E8:64:1D:03:F1:C0:70:AF:96:1E:F3:BF:6A:58:42:F7:06:1F:E0:51:A0"}}},"request":{"raw":"GET /assets/index-eGkoKyB0.js HTTP/1.1\r\nHost: amazonenterprise3.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://amazonenterprise3.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: 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 14:02:22 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Tue, 21 Jul 2026 18:45:13 GMT\r\nvary: Accept-Encoding\r\netag: W/\"6a5fbe39-3ffdb\"\r\nexpires: Tue, 28 Jul 2026 02:02:22 GMT\r\ncache-control: max-age=43200\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\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":262107,"size_decoded":93026,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (63362)","md5":"680617ae8c65bb878c14feb8579637cc","sha1":"1cf47ea670f5925639a1a23aba43d2c674681ca4","sha256":"b00e84a9dc03f4c23b8b6bb2f8b6f5708c2d936f3a6bcddc797f2723930753c7","sha512":"e148c993f78519eeeb5081c36b49e44c341789ba2c058c0ceb3158c1f6457622d1cce32b892ad75c6e5dcc3c875773c63e27c8c93f9830f4d8a6d9ac634db985","ssdeep":"6144:stT7eJiBmnIQ3DW/sNbT4Ym/4px9cUHMe0vbbW2Smxphzjc:stqNFx96J3Mmxfjc","tlshash":"8f443ad1b2d5b43887bf8195906a4410f3390bc8e40a91f9f0b4ad5a36b9dd4b2ebf35","first_seen":"2026-07-27T12:42:47.689928Z","last_seen":"2026-07-27T14:03:28.937669Z","times_seen":3,"resource_available":true,"data":"Y29uc3QgX192aXRlX19tYXBEZXBzPShpLG09X192aXRlX19tYXBEZXBzLGQ9KG0uZnx8KG0uZj1bImFzc2V0cy9ob21lLUJ2dmFnVW0tLmpzIiwiYXNzZXRzL2FwaS1DS0Q4NGlMWi5qcyIsImFzc2V0cy9fcGx1Z2luLXZ1ZV9leHBvcnQtaGVscGVyLUNDUlNIcHdMLmpzIiwiYXNzZXRzL2hvbWUtQk0zRExxM1QuY3NzIiwiYXNzZXRzL3JlY2hhcmdlLURJWVlaaXRTLmpzIiwiYXNzZXRzL3JlY2hhcmdlLUNpNW9nRDllLmNzcyIsImFzc2V0cy93aXRoZHJhd2FsLUNtZk8waDJvLmpzIiwiYXNzZXRzL2FwaU1lc3NhZ2UtbGRiNk50ODQuanMiLCJhc3NldHMvd2l0aGRyYXdhbC1DUm5KRTZrUS5jc3MiLCJhc3NldHMvZ3JhYi1CZ0FoNkM1bi5qcyIsImFzc2V0cy9ncmFiLUJmZU9pUG1WLmNzcyIsImFzc2V0cy9vcmRlci12eVZDMTA1eS5qcyIsImFzc2V0cy9vcmRlci1CWHQ0cVg4Ti5jc3MiLCJhc3NldHMvYWNjb3VudC1COUMzaEhSay5qcyIsImFzc2V0cy9hY2NvdW50LUQ0aHdsdzY5LmNzcyIsImFzc2V0cy9pbnZpdGF0aW9uLUIyWTJfU2ZBLmpzIiwiYXNzZXRzL2ludml0YXRpb24tRFZ5VXRvNEEuY3NzIiwiYXNzZXRzL2Fib3V0X3VzLUJFU010QWhYLmpzIiwiYXNzZXRzL2Fib3V0X3VzLUdsaGYwck5ILmNzcyIsImFzc2V0cy9hYm91dF9pbnZpdGF0aW9uLWhZaC1DWUJJLmpzIiwiYXNzZXRzL2Fib3V0X2ludml0YXRpb24tQmdDNzBFa1kuY3NzIiwiYXNzZXRzL2Fib3V0X3dpdGhkcmF3YWwtYTJ6dFNwQlouanMiLCJhc3NldHMvYWJvdXRfd2l0aGRyYXdhbC1DM0EtcEwxOC5jc3MiLCJhc3NldHMvYWJvdXRfaW52ZXN0bWVudF9pbmNvbWUtRENiTV9kbVEuanMiLCJhc3NldHMvYWJvdXRfaW52ZXN0bWVudF9pbmNvbWUtQmo0Y0EwcWEuY3NzIiwiYXNzZXRzL2xvZ2luLWgta01UV1lHLmpzIiwiYXNzZXRzL2xvZ2luLUJ1VTJQbnhvLmNzcyIsImFzc2V0cy9mb3JnZXQtQjF0SEFxdkUuanMiLCJhc3NldHMvZm9yZ2V0LURZM2QxOGFkLmNzcyIsImFzc2V0cy9yZWctQzJYUnNXTkEuanMiLCJhc3NldHMvcmVnLXMzSnFPSTdYLmNzcyIsImFzc2V0cy9jYXJkLURYUERNbmlGLmpzIiwiYXNzZXRzL2NhcmQtREhUZVVSOUsuY3NzIiwiYXNzZXRzL3JlY2hhcmdlX29mZmxpbmUtQm1YMUZzX0EuanMiLCJhc3NldHMvcmVjaGFyZ2Vfb2ZmbGluZS1CMVR5czZFVi5jc3MiLCJhc3NldHMvb3JkZXJfZGV0YWlsLUMzX19jU1hoLmpzIiwiYXNzZXRzL29yZGVyX2RldGFpbC1CN2FGczRwTy5jc3MiLCJhc3NldHMvZGV0YWlscy1CcjFnOHJGaC5qcyIsImFzc2V0cy9kZXRhaWxzLURybURrNlk2LmNzcyIsImFzc2V0cy9mcmVlemUtQlA4YjB4SzUuanMiLCJhc3NldHMvZnJlZXplLXZLZ1FqZHM3LmNzcyIsImFzc2V0cy9wZXJzb25hbC0yV2hUZ2VZdS5qcyIsImFzc2V0cy9wZXJzb25hbC1EdGpocmN2Ti5jc3MiLCJhc3NldHMvdGVhbS1Edk9VbVZRcC5qcyIsImFzc2V0cy90ZWFtLURPeUZHZjlpLmNzcyIsImFzc2V0cy9tZXNzYWdlLUJmZ2dwT0htLmpzIiwiYXNzZXRzL21lc3NhZ2UtRHhYa25vdmsuY3NzIiwiYXNzZXRzL2FkZHJlc3MtZXVwelliX28uanMiLCJhc3NldHMvYWRkcmVzcy1EWE9Cd1doSi5jc3MiLCJhc3NldHMvaW52aXRlX3Rhc2stQjhvTUxDUjEuanMiLCJhc3NldHMvaW52aXRlX3Rhc2stSHU1TjYwdm8uY3NzIiwiYXNzZXRzL3NhZmUtRHdJMXR6NDkuanMiLCJhc3NldHMvc2FmZS1EX2EzVVY3MC5jc3MiLCJhc3NldHMvcGFzc3dvcmQtQ044MHRsUHEuanMiLCJhc3NldHMvcGFzc3dvcmQtRHJWdWMxY2MuY3NzIiwiYXNzZXRzL3Bhc3N3b3JkX3BheS1CdF9GWXhZTC5qcyIsImFzc2V0cy9wYXNzd29yZF9wYXktRDRuZmVJeTIuY3NzIiwiYXNzZXRzL2xvY2stQlEwYm1Yb1AuanMiLCJhc3NldHMvbG9jay1tRFFSOHd4Ny5jc3MiXSkpKT0+aS5tYXAoaT0+ZFtpXSk7CmltcG9ydHskIGFzIGUsQSBhcyB0LEIgYXMgbixDIGFzIHIsRCBhcyBpLEUgYXMgYSxGIGFzIG8sRyBhcyBzLEggYXMgYyxJIGFzIGwsSiBhcyB1LEsgYXMgZCxMIGFzIGYsTSBhcyBwLE4gYXMgbSxPIGFzIGgsUSBhcyBnLFIgYXMgXyxTIGFzIHYsVCBhcyB5LFUgYXMgYixWIGFzIHgsVyBhcyBTLFggYXMgQyxZIGFzIHcsWiBhcyBULF8gYXMgRSxhIGFzIEQsYXQgYXMgTyxiIGFzIGssYyBhcyBBLGN0IGFzIGosZCBhcyBlZSxldCBhcyB0ZSxmIGFzIG5lLGZ0IGFzIHJlLGcgYXMgaWUsaSBhcyBhZSxpdCBhcyBvZSxqIGFzIHNlLGsgYXMgTSxsIGFzIE4sbHQgYXMgY2UsbSBhcyBsZSxuIGFzIHVlLG50IGFzIGRlLG8gYXMgZmUsb3QgYXMgcGUscCBhcyBtZSxxIGFzIGhlLHIgYXMgZ2UscnQgYXMgX2UscyBhcyB2ZSxzdCBhcyB5ZSx0IGFzIGJlLHR0IGFzIHhlLHUgYXMgU2UsdXQgYXMgQ2UsdiBhcyBQLHcgYXMgRix4IGFzIHdlLHkgYXMgVGUseiBhcyBFZX1mcm9tIi4vX3BsdWdpbi12dWVfZXhwb3J0LWhlbHBlci1DQ1JTSHB3TC5qcyI7KGZ1bmN0aW9uKCl7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgbGlua2ApLnJlbExpc3Q7aWYoZSYmZS5zdXBwb3J0cyYmZS5zdXBwb3J0cyhgbW9kdWxlcHJlbG9hZGApKXJldHVybjtmb3IobGV0IGUgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgbGlua1tyZWw9Im1vZHVsZXByZWxvYWQiXWApKW4oZSk7bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZT0+e2ZvcihsZXQgdCBvZiBlKWlmKHQudHlwZT09PWBjaGlsZExpc3RgKWZvcihsZXQgZSBvZiB0LmFkZGVkTm9kZXMpZS50YWdOYW1lPT09YExJTktgJiZlLnJlbD09PWBtb2R1bGVwcmVsb2FkYCYmbihlKX0pLm9ic2VydmUoZG9jdW1lbnQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSk7ZnVuY3Rpb24gdChlKXtsZXQgdD17fTtyZXR1cm4gZS5pbnRlZ3JpdHkmJih0LmludGVncml0eT1lLmludGVncml0eSksZS5yZWZlcnJlclBvbGljeSYmKHQucmVmZXJyZXJQb2xpY3k9ZS5yZWZlcnJlclBvbGljeSksZS5jcm9zc09yaWdpbj09PWB1c2UtY3JlZGVudGlhbHNgP3QuY3JlZGVudGlhbHM9YGluY2x1ZGVgOmUuY3Jvc3NPcmlnaW49PT1gYW5vbnltb3VzYD90LmNyZWRlbnRpYWxzPWBvbWl0YDp0LmNyZWRlbnRpYWxzPWBzYW1lLW9yaWdpbmAsdH1mdW5jdGlvbiBuKGUpe2lmKGUuZXApcmV0dXJuO2UuZXA9ITA7bGV0IG49dChlKTtmZXRjaChlLmhyZWYsbil9fSkoKTt2YXIgRGU9dm9pZCAwLE9lPXR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cudHJ1c3RlZFR5cGVzO2lmKE9lKXRyeXtEZT1PZS5jcmVhdGVQb2xpY3koYHZ1ZWAse2NyZWF0ZUhUTUw6ZT0+ZX0pfWNhdGNoe312YXIga2U9RGU/ZT0+RGUuY3JlYXRlSFRNTChlKTplPT5lLEFlPWBodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z2AsamU9YGh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxgLE1lPXR5cGVvZiBkb2N1bWVudDxgdWA/ZG9jdW1lbnQ6bnVsbCxOZT1NZSYmTWUuY3JlYXRlRWxlbWVudChgdGVtcGxhdGVgKSxQZT17aW5zZXJ0OihlLHQsbik9Pnt0Lmluc2VydEJlZm9yZShlLG58fG51bGwpfSxyZW1vdmU6ZT0+e2xldCB0PWUucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKGUpfSxjcmVhdGVFbGVtZW50OihlLHQsbixyKT0+e2xldCBpPXQ9PT1gc3ZnYD9NZS5jcmVhdGVFbGVtZW50TlMoQWUsZSk6dD09PWBtYXRobWxgP01lLmNyZWF0ZUVsZW1lbnROUyhqZSxlKTpuP01lLmNyZWF0ZUVsZW1lbnQoZSx7aXM6bn0pOk1lLmNyZWF0ZUVsZW1lbnQoZSk7cmV0dXJuIGU9PT1gc2VsZWN0YCYmciYmci5tdWx0aXBsZSE9bnVsbCYmaS5zZXRBdHRyaWJ1dGUoYG11bHRpcGxlYCxyLm11bHRpcGxlKSxpfSxjcmVhdGVUZXh0OmU9Pk1lLmNyZWF0ZVRleHROb2RlKGUpLGNyZWF0ZUNvbW1lbnQ6ZT0+TWUuY3JlYXRlQ29tbWVudChlKSxzZXRUZXh0OihlLHQpPT57ZS5ub2RlVmFsdWU9dH0sc2V0RWxlbWVudFRleHQ6KGUsdCk9PntlLnRleHRDb250ZW50PXR9LHBhcmVudE5vZGU6ZT0+ZS5wYXJlbnROb2RlLG5leHRTaWJsaW5nOmU9PmUubmV4dFNpYmxpbmcscXVlcnlTZWxlY3RvcjplPT5NZS5xdWVyeVNlbGVjdG9yKGUpLHNldFNjb3BlSWQoZSx0KXtlLnNldEF0dHJpYnV0ZSh0LGBgKX0saW5zZXJ0U3RhdGljQ29udGVudChlLHQsbixyLGksYSl7bGV0IG89bj9uLnByZXZpb3VzU2libGluZzp0Lmxhc3RDaGlsZDtpZihpJiYoaT09PWF8fGkubmV4dFNpYmxpbmcpKWZvcig7dC5pbnNlcnRCZWZvcmUoaS5jbG9uZU5vZGUoITApLG4pLCEoaT09PWF8fCEoaT1pLm5leHRTaWJsaW5nKSk7KTtlbHNle05lLmlubmVySFRNTD1rZShyPT09YHN2Z2A/YDxzdmc+JHtlfTwvc3ZnPmA6cj09PWBtYXRobWxgP2A8bWF0aD4ke2V9PC9tYXRoPmA6ZSk7bGV0IGk9TmUuY29udGVudDtpZihyPT09YHN2Z2B8fHI9PT1gbWF0aG1sYCl7bGV0IGU9aS5maXJzdENoaWxkO2Zvcig7ZS5maXJzdENoaWxkOylpLmFwcGVuZENoaWxkKGUuZmlyc3RDaGlsZCk7aS5yZW1vdmVDaGlsZChlKX10Lmluc2VydEJlZm9yZShpLG4pfXJldHVybltvP28ubmV4dFNpYmxpbmc6dC5maXJzdENoaWxkLG4/bi5wcmV2aW91c1NpYmxpbmc6dC5sYXN0Q2hpbGRdfX0sRmU9YHRyYW5zaXRpb25gLEllPWBhbmltYXRpb25gLExlPVN5bWJvbChgX3Z0Y2ApLFJlPXtuYW1lOlN0cmluZyx0eXBlOlN0cmluZyxjc3M6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxkdXJhdGlvbjpbU3RyaW5nLE51bWJlcixPYmplY3RdLGVudGVyRnJvbUNsYXNzOlN0cmluZyxlbnRlckFjdGl2ZUNsYXNzOlN0cmluZyxlbnRlclRvQ2xhc3M6U3RyaW5nLGFwcGVhckZyb21DbGFzczpTdHJpbmcsYXBwZWFyQWN0aXZlQ2xhc3M6U3RyaW5nLGFwcGVhclRvQ2xhc3M6U3RyaW5nLGxlYXZlRnJvbUNsYXNzOlN0cmluZyxsZWF2ZUFjdGl2ZUNsYXNzOlN0cmluZyxsZWF2ZVRvQ2xhc3M6U3RyaW5nfSx6ZT13KHt9LGdlLFJlKSxCZT0oZT0+KGUuZGlzcGxheU5hbWU9YFRyYW5zaXRpb25gLGUucHJvcHM9emUsZSkpKChlLHtzbG90czp0fSk9PmsodWUsVWUoZSksdCkpLFZlPSh0LG49W10pPT57ZSh0KT90LmZvckVhY2goZT0+ZSguLi5uKSk6dCYmdCguLi5uKX0sSGU9dD0+dD9lKHQpP3Quc29tZShlPT5lLmxlbmd0aD4xKTp0Lmxlbmd0aD4xOiExO2Z1bmN0aW9uIFVlKGUpe2xldCB0PXt9O2ZvcihsZXQgbiBpbiBlKW4gaW4gUmV8fCh0W25dPWVbbl0pO2lmKGUuY3NzPT09ITEpcmV0dXJuIHQ7bGV0e25hbWU6bj1gdmAsdHlwZTpyLGR1cmF0aW9uOmksZW50ZXJGcm9tQ2xhc3M6YT1gJHtufS1lbnRlci1mcm9tYCxlbnRlckFjdGl2ZUNsYXNzOm89YCR7bn0tZW50ZXItYWN0aXZlYCxlbnRlclRvQ2xhc3M6cz1gJHtufS1lbnRlci10b2AsYXBwZWFyRnJvbUNsYXNzOmM9YSxhcHBlYXJBY3RpdmVDbGFzczpsPW8sYXBwZWFyVG9DbGFzczp1PXMsbGVhdmVGcm9tQ2xhc3M6ZD1gJHtufS1sZWF2ZS1mcm9tYCxsZWF2ZUFjdGl2ZUNsYXNzOmY9YCR7bn0tbGVhdmUtYWN0aXZlYCxsZWF2ZVRvQ2xhc3M6cD1gJHtufS1sZWF2ZS10b2B9PWUsbT1XZShpKSxoPW0mJm1bMF0sZz1tJiZtWzFdLHtvbkJlZm9yZUVudGVyOl8sb25FbnRlcjp2LG9uRW50ZXJDYW5jZWxsZWQ6eSxvbkxlYXZlOmIsb25MZWF2ZUNhbmNlbGxlZDp4LG9uQmVmb3JlQXBwZWFyOlM9XyxvbkFwcGVhcjpDPXYsb25BcHBlYXJDYW5jZWxsZWQ6VD15fT10LEU9KGUsdCxuLHIpPT57ZS5fZW50ZXJDYW5jZWxsZWQ9cixxZShlLHQ/dTpzKSxxZShlLHQ/bDpvKSxuJiZuKCl9LEQ9KGUsdCk9PntlLl9pc0xlYXZpbmc9ITEscWUoZSxkKSxxZShlLHApLHFlKGUsZiksdCYmdCgpfSxPPWU9Pih0LG4pPT57bGV0IGk9ZT9DOnYsbz0oKT0+RSh0LGUsbik7VmUoaSxbdCxvXSksSmUoKCk9PntxZSh0LGU/YzphKSxLZSh0LGU/dTpzKSxIZShpKXx8WGUodCxyLGgsbyl9KX07cmV0dXJuIHcodCx7b25CZWZvcmVFbnRlcihlKXtWZShfLFtlXSksS2UoZSxhKSxLZShlLG8pfSxvbkJlZm9yZUFwcGVhcihlKXtWZShTLFtlXSksS2UoZSxjKSxLZShlLGwpfSxvbkVudGVyOk8oITEpLG9uQXBwZWFyOk8oITApLG9uTGVhdmUoZSx0KXtlLl9pc0xlYXZpbmc9ITA7bGV0IG49KCk9PkQoZSx0KTtLZShlLGQpLGUuX2VudGVyQ2FuY2VsbGVkPyhLZShlLGYpLGV0KGUpKTooZXQoZSksS2UoZSxmKSksSmUoKCk9PntlLl9pc0xlYXZpbmcmJihxZShlLGQpLEtlKGUscCksSGUoYil8fFhlKGUscixnLG4pKX0pLFZlKGIsW2Usbl0pfSxvbkVudGVyQ2FuY2VsbGVkKGUpe0UoZSwhMSx2b2lkIDAsITApLFZlKHksW2VdKX0sb25BcHBlYXJDYW5jZWxsZWQoZSl7RShlLCEwLHZvaWQgMCwhMCksVmUoVCxbZV0pfSxvbkxlYXZlQ2FuY2VsbGVkKGUpe0QoZSksVmUoeCxbZV0pfX0pfWZ1bmN0aW9uIFdlKGUpe2lmKGU9PW51bGwpcmV0dXJuIG51bGw7aWYoZGUoZSkpcmV0dXJuW0dlKGUuZW50ZXIpLEdlKGUubGVhdmUpXTt7bGV0IHQ9R2UoZSk7cmV0dXJuW3QsdF19fWZ1bmN0aW9uIEdlKGUpe3JldHVybiByZShlKX1mdW5jdGlvbiBLZShlLHQpe3Quc3BsaXQoL1xzKy8pLmZvckVhY2godD0+dCYmZS5jbGFzc0xpc3QuYWRkKHQpKSwoZVtMZV18fChlW0xlXT1uZXcgU2V0KSkuYWRkKHQpfWZ1bmN0aW9uIHFlKGUsdCl7dC5zcGxpdCgvXHMrLykuZm9yRWFjaCh0PT50JiZlLmNsYXNzTGlzdC5yZW1vdmUodCkpO2xldCBuPWVbTGVdO24mJihuLmRlbGV0ZSh0KSxuLnNpemV8fChlW0xlXT12b2lkIDApKX1mdW5jdGlvbiBKZShlKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSl9KX12YXIgWWU9MDtmdW5jdGlvbiBYZShlLHQsbixyKXtsZXQgaT1lLl9lbmRJZD0rK1llLGE9KCk9PntpPT09ZS5fZW5kSWQmJnIoKX07aWYobiE9bnVsbClyZXR1cm4gc2V0VGltZW91dChhLG4pO2xldHt0eXBlOm8sdGltZW91dDpzLHByb3BDb3VudDpjfT1aZShlLHQpO2lmKCFvKXJldHVybiByKCk7bGV0IGw9bytgZW5kYCx1PTAsZD0oKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihsLGYpLGEoKX0sZj10PT57dC50YXJnZXQ9PT1lJiYrK3U+PWMmJmQoKX07c2V0VGltZW91dCgoKT0+e3U8YyYmZCgpfSxzKzEpLGUuYWRkRXZlbnRMaXN0ZW5lcihsLGYpfWZ1bmN0aW9uIFplKGUsdCl7bGV0IG49d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSkscj1lPT4obltlXXx8YGApLnNwbGl0KGAsIGApLGk9cihgJHtGZX1EZWxheWApLGE9cihgJHtGZX1EdXJhdGlvbmApLG89UWUoaSxhKSxzPXIoYCR7SWV9RGVsYXlgKSxjPXIoYCR7SWV9RHVyYXRpb25gKSxsPVFlKHMsYyksdT1udWxsLGQ9MCxmPTA7dD09PUZlP28+MCYmKHU9RmUsZD1vLGY9YS5sZW5ndGgpOnQ9PT1JZT9sPjAmJih1PUllLGQ9bCxmPWMubGVuZ3RoKTooZD1NYXRoLm1heChvLGwpLHU9ZD4wP28+bD9GZTpJZTpudWxsLGY9dT91PT09RmU/YS5sZW5ndGg6Yy5sZW5ndGg6MCk7bGV0IHA9dT09PUZlJiYvXGIoPzp0cmFuc2Zvcm18YWxsKSg/Oix8JCkvLnRlc3QocihgJHtGZX1Qcm9wZXJ0eWApLnRvU3RyaW5nKCkpO3JldHVybnt0eXBlOnUsdGltZW91dDpkLHByb3BDb3VudDpmLGhhc1RyYW5zZm9ybTpwfX1mdW5jdGlvbiBRZShlLHQpe2Zvcig7ZS5sZW5ndGg8dC5sZW5ndGg7KWU9ZS5jb25jYXQoZSk7cmV0dXJuIE1hdGgubWF4KC4uLnQubWFwKCh0LG4pPT4kZSh0KSskZShlW25dKSkpfWZ1bmN0aW9uICRlKGUpe3JldHVybiBlPT09YGF1dG9gPzA6TnVtYmVyKGUuc2xpY2UoMCwtMSkucmVwbGFjZShgLGAsYC5gKSkqMWUzfWZ1bmN0aW9uIGV0KGUpe3JldHVybihlP2Uub3duZXJEb2N1bWVudDpkb2N1bWVudCkuYm9keS5vZmZzZXRIZWlnaHR9ZnVuY3Rpb24gdHQoZSx0LG4pe2xldCByPWVbTGVdO3ImJih0PSh0P1t0LC4uLnJdOlsuLi5yXSkuam9pbihgIGApKSx0PT1udWxsP2UucmVtb3ZlQXR0cmlidXRlKGBjbGFzc2ApOm4/ZS5zZXRBdHRyaWJ1dGUoYGNsYXNzYCx0KTplLmNsYXNzTmFtZT10fXZhciBudD1TeW1ib2woYF92b2RgKSxydD1TeW1ib2woYF92c2hgKSxpdD17bmFtZTpgc2hvd2AsYmVmb3JlTW91bnQoZSx7dmFsdWU6dH0se3RyYW5zaXRpb246bn0pe2VbbnRdPWUuc3R5bGUuZGlzcGxheT09PWBub25lYD9gYDplLnN0eWxlLmRpc3BsYXksbiYmdD9uLmJlZm9yZUVudGVyKGUpOmF0KGUsdCl9LG1vdW50ZWQoZSx7dmFsdWU6dH0se3RyYW5zaXRpb246bn0pe24mJnQmJm4uZW50ZXIoZSl9LHVwZGF0ZWQoZSx7dmFsdWU6dCxvbGRWYWx1ZTpufSx7dHJhbnNpdGlvbjpyfSl7IXQhPSFuJiYocj90PyhyLmJlZm9yZUVudGVyKGUpLGF0KGUsITApLHIuZW50ZXIoZSkpOnIubGVhdmUoZSwoKT0+e2F0KGUsITEpfSk6YXQoZSx0KSl9LGJlZm9yZVVubW91bnQoZSx7dmFsdWU6dH0pe2F0KGUsdCl9fTtmdW5jdGlvbiBhdChlLHQpe2Uuc3R5bGUuZGlzcGxheT10P2VbbnRdOmBub25lYCxlW3J0XT0hdH12YXIgb3Q9U3ltYm9sKGBgKSxzdD0vKD86Xnw7KVxzKmRpc3BsYXlccyo6LztmdW5jdGlvbiBjdChlLHQsbil7bGV0IHI9ZS5zdHlsZSxpPU8obiksYT0hMTtpZihuJiYhaSl7aWYodClpZihPKHQpKWZvcihsZXQgZSBvZiB0LnNwbGl0KGA7YCkpe2xldCB0PWUuc2xpY2UoMCxlLmluZGV4T2YoYDpgKSkudHJpbSgpO25bdF0/P3V0KHIsdCxgYCl9ZWxzZSBmb3IobGV0IGUgaW4gdCluW2VdPz91dChyLGUsYGApO2ZvcihsZXQgaSBpbiBuKXtpPT09YGRpc3BsYXlgJiYoYT0hMCk7bGV0IG89bltpXTtvPT1udWxsP3V0KHIsaSxgYCk6bXQoZSxpLCFPKHQpJiZ0P3RbaV06dm9pZCAwLG8pfHx1dChyLGksbyl9fWVsc2UgaWYoaSl7aWYodCE9PW4pe2xldCBlPXJbb3RdO2UmJihuKz1gO2ArZSksci5jc3NUZXh0PW4sYT1zdC50ZXN0KG4pfX1lbHNlIHQmJmUucmVtb3ZlQXR0cmlidXRlKGBzdHlsZWApO250IGluIGUmJihlW250XT1hP3IuZGlzcGxheTpgYCxlW3J0XSYmKHIuZGlzcGxheT1gbm9uZWApKX12YXIgbHQ9L1xzKiFpbXBvcnRhbnQkLztmdW5jdGlvbiB1dCh0LG4scil7aWYoZShyKSlyLmZvckVhY2goZT0+dXQodCxuLGUpKTtlbHNlIGlmKHI/Pz1gYCxuLnN0YXJ0c1dpdGgoYC0tYCkpdC5zZXRQcm9wZXJ0eShuLHIpO2Vsc2V7bGV0IGU9cHQodCxuKTtsdC50ZXN0KHIpP3Quc2V0UHJvcGVydHkoQyhlKSxyLnJlcGxhY2UobHQsYGApLGBpbXBvcnRhbnRgKTp0W2VdPXJ9fXZhciBkdD1bYFdlYmtpdGAsYE1vemAsYG1zYF0sZnQ9e307ZnVuY3Rpb24gcHQoZSx0KXtsZXQgbj1mdFt0XTtpZihuKXJldHVybiBuO2xldCByPWhlKHQpO2lmKHIhPT1gZmlsdGVyYCYmciBpbiBlKXJldHVybiBmdFt0XT1yO3I9dShyKTtmb3IobGV0IG49MDtuPGR0Lmxlbmd0aDtuKyspe2xldCBpPWR0W25dK3I7aWYoaSBpbiBlKXJldHVybiBmdFt0XT1pfXJldHVybiB0fWZ1bmN0aW9uIG10KGUsdCxuLHIpe3JldHVybiBlLnRhZ05hbWU9PT1gVEVYVEFSRUFgJiYodD09PWB3aWR0aGB8fHQ9PT1gaGVpZ2h0YCkmJk8ocikmJm49PT1yfXZhciBodD1gaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua2A7ZnVuY3Rpb24gZ3QoZSx0LG4scixpLGE9b2UodCkpe3ImJnQuc3RhcnRzV2l0aChgeGxpbms6YCk/bj09bnVsbD9lLnJlbW92ZUF0dHJpYnV0ZU5TKGh0LHQuc2xpY2UoNix0Lmxlbmd0aCkpOmUuc2V0QXR0cmlidXRlTlMoaHQsdCxuKTpuPT1udWxsfHxhJiYhVChuKT9lLnJlbW92ZUF0dHJpYnV0ZSh0KTplLnNldEF0dHJpYnV0ZSh0LGE/YGA6cGUobik/U3RyaW5nKG4pOm4pfWZ1bmN0aW9uIF90KGUsdCxuLHIsaSl7aWYodD09PWBpbm5lckhUTUxgfHx0PT09YHRleHRDb250ZW50YCl7biE9bnVsbCYmKGVbdF09dD09PWBpbm5lckhUTUxgP2tlKG4pOm4pO3JldHVybn1sZXQgYT1lLnRhZ05hbWU7aWYodD09PWB2YWx1ZWAmJmEhPT1gUFJPR1JFU1NgJiYhYS5pbmNsdWRlcyhgLWApKXtsZXQgcj1hPT09YE9QVElPTmA/ZS5nZXRBdHRyaWJ1dGUoYHZhbHVlYCl8fGBgOmUudmFsdWUsaT1uPT1udWxsP2UudHlwZT09PWBjaGVja2JveGA/YG9uYDpgYDpTdHJpbmcobik7KHIhPT1pfHwhKGBfdmFsdWVgaW4gZSkpJiYoZS52YWx1ZT1pKSxuPz9lLnJlbW92ZUF0dHJpYnV0ZSh0KSxlLl92YWx1ZT1uO3JldHVybn1sZXQgbz0hMTtpZihuPT09YGB8fG49PW51bGwpe2xldCByPXR5cGVvZiBlW3RdO3I9PT1gYm9vbGVhbmA/bj1UKG4pOm49PW51bGwmJnI9PT1gc3RyaW5nYD8obj1gYCxvPSEwKTpyPT09YG51bWJlcmAmJihuPTAsbz0hMCl9dHJ5e2VbdF09bn1jYXRjaHt9byYmZS5yZW1vdmVBdHRyaWJ1dGUoaXx8dCl9ZnVuY3Rpb24gdnQoZSx0LG4scil7ZS5hZGRFdmVudExpc3RlbmVyKHQsbixyKX1mdW5jdGlvbiB5dChlLHQsbixyKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxuLHIpfXZhciBidD1TeW1ib2woYF92ZWlgKTtmdW5jdGlvbiB4dChlLHQsbixyLGk9bnVsbCl7bGV0IGE9ZVtidF18fChlW2J0XT17fSksbz1hW3RdO2lmKHImJm8pby52YWx1ZT1yO2Vsc2V7bGV0W24sc109d3QodCk7cj92dChlLG4sYVt0XT1PdChyLGkpLHMpOm8mJih5dChlLG4sbyxzKSxhW3RdPXZvaWQgMCl9fXZhciBTdD0vKE9uY2V8UGFzc2l2ZXxDYXB0dXJlKSQvLEN0PS9eb246Pyg/Ok9uY2V8UGFzc2l2ZXxDYXB0dXJlKSQvO2Z1bmN0aW9uIHd0KGUpe2xldCB0LG47Zm9yKDsobj1lLm1hdGNoKFN0KSkmJiFDdC50ZXN0KGUpOyl0fHw9e30sZT1lLnNsaWNlKDAsZS5sZW5ndGgtblsxXS5sZW5ndGgpLHRbblsxXS50b0xvd2VyQ2FzZSgpXT0hMDtyZXR1cm5bZVsyXT09PWA6YD9lLnNsaWNlKDMpOkMoZS5zbGljZSgyKSksdF19dmFyIFR0PTAsRXQ9UHJvbWlzZS5yZXNvbHZlKCksRHQ9KCk9PlR0fHw9KEV0LnRoZW4oKCk9PlR0PTApLERhdGUubm93KCkpO2Z1bmN0aW9uIE90KHQsbil7bGV0IHI9dD0+e2lmKCF0Ll92dHMpdC5fdnRzPURhdGUubm93KCk7ZWxzZSBpZih0Ll92dHM8PXIuYXR0YWNoZWQpcmV0dXJuO2xldCBpPXIudmFsdWU7aWYoZShpKSl7bGV0IGU9dC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb247dC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb249KCk9PntlLmNhbGwodCksdC5fc3RvcHBlZD0hMH07bGV0IHI9aS5zbGljZSgpLGE9W3RdO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGgmJiF0Ll9zdG9wcGVkO2UrKyl7bGV0IHQ9cltlXTt0JiZBKHQsbiw1LGEpfX1lbHNlIEEoaSxuLDUsW3RdKX07cmV0dXJuIHIudmFsdWU9dCxyLmF0dGFjaGVkPUR0KCkscn12YXIga3Q9ZT0+ZS5jaGFyQ29kZUF0KDApPT09MTExJiZlLmNoYXJDb2RlQXQoMSk9PT0xMTAmJmUuY2hhckNvZGVBdCgyKT45NiYmZS5jaGFyQ29kZUF0KDIpPDEyMyxBdD0oZSx0LG4scixpLGEpPT57bGV0IG89aT09PWBzdmdgO3Q9PT1gY2xhc3NgP3R0KGUscixvKTp0PT09YHN0eWxlYD9jdChlLG4scik6X2UodCk/eGUodCl8fHh0KGUsdCxuLHIsYSk6KHRbMF09PT1gLmA/KHQ9dC5zbGljZSgxKSwhMCk6dFswXT09PWBeYD8odD10LnNsaWNlKDEpLCExKTpqdChlLHQscixvKSk/KF90KGUsdCxyKSwhZS50YWdOYW1lLmluY2x1ZGVzKGAtYCkmJih0PT09YHZhbHVlYHx8dD09PWBjaGVja2VkYHx8dD09PWBzZWxlY3RlZGApJiZndChlLHQscixvLGEsdCE9PWB2YWx1ZWApKTplLl9pc1Z1ZUNFJiYoTXQoZSx0KXx8ZS5fZGVmLl9fYXN5bmNMb2FkZXImJigvW0EtWl0vLnRlc3QodCl8fCFPKHIpKSk/X3QoZSxoZSh0KSxyLGEsdCk6KHQ9PT1gdHJ1ZS12YWx1ZWA/ZS5fdHJ1ZVZhbHVlPXI6dD09PWBmYWxzZS12YWx1ZWAmJihlLl9mYWxzZVZhbHVlPXIpLGd0KGUsdCxyLG8pKX07ZnVuY3Rpb24ganQoZSx0LG4scil7aWYocilyZXR1cm4hISh0PT09YGlubmVySFRNTGB8fHQ9PT1gdGV4dENvbnRlbnRgfHx0IGluIGUmJmt0KHQpJiZ0ZShuKSk7aWYodD09PWBzcGVsbGNoZWNrYHx8dD09PWBkcmFnZ2FibGVgfHx0PT09YHRyYW5zbGF0ZWB8fHQ9PT1gYXV0b2NvcnJlY3RgfHx0PT09YHNhbmRib3hgJiZlLnRhZ05hbWU9PT1gSUZSQU1FYHx8dD09PWBmb3JtYHx8dD09PWBsaXN0YCYmZS50YWdOYW1lPT09YElOUFVUYHx8dD09PWB0eXBlYCYmZS50YWdOYW1lPT09YFRFWFRBUkVBYClyZXR1cm4hMTtpZih0PT09YHdpZHRoYHx8dD09PWBoZWlnaHRgKXtsZXQgdD1lLnRhZ05hbWU7aWYodD09PWBJTUdgfHx0PT09YFZJREVPYHx8dD09PWBDQU5WQVNgfHx0PT09YFNPVVJDRWApcmV0dXJuITF9cmV0dXJuIGt0KHQpJiZPKG4pPyExOnQgaW4gZX1mdW5jdGlvbiBNdChlLHQpe2xldCBuPWUuX2RlZi5wcm9wcztpZighbilyZXR1cm4hMTtsZXQgcj1oZSh0KTtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uLnNvbWUoZT0+aGUoZSk9PT1yKTpPYmplY3Qua2V5cyhuKS5zb21lKGU9PmhlKGUpPT09cil9dmFyIE50PXQ9PntsZXQgbj10LnByb3BzW2BvblVwZGF0ZTptb2RlbFZhbHVlYF18fCExO3JldHVybiBlKG4pP2U9PmcobixlKTpufTtmdW5jdGlvbiBQdChlKXtlLnRhcmdldC5jb21wb3Npbmc9ITB9ZnVuY3Rpb24gRnQoZSl7bGV0IHQ9ZS50YXJnZXQ7dC5jb21wb3NpbmcmJih0LmNvbXBvc2luZz0hMSx0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KGBpbnB1dGApKSl9dmFyIEl0PVN5bWJvbChgX2Fzc2lnbmApO2Z1bmN0aW9uIEx0KGUsdCxuKXtyZXR1cm4gdCYmKGU9ZS50cmltKCkpLG4mJihlPXllKGUpKSxlfXZhciBSdD17Y3JlYXRlZChlLHttb2RpZmllcnM6e2xhenk6dCx0cmltOm4sbnVtYmVyOnJ9fSxpKXtlW0l0XT1OdChpKTtsZXQgYT1yfHxpLnByb3BzJiZpLnByb3BzLnR5cGU9PT1gbnVtYmVyYDt2dChlLHQ/YGNoYW5nZWA6YGlucHV0YCx0PT57dC50YXJnZXQuY29tcG9zaW5nfHxlW0l0XShMdChlLnZhbHVlLG4sYSkpfSksKG58fGEpJiZ2dChlLGBjaGFuZ2VgLCgpPT57ZS52YWx1ZT1MdChlLnZhbHVlLG4sYSl9KSx0fHwodnQoZSxgY29tcG9zaXRpb25zdGFydGAsUHQpLHZ0KGUsYGNvbXBvc2l0aW9uZW5kYCxGdCksdnQoZSxgY2hhbmdlYCxGdCkpfSxtb3VudGVkKGUse3ZhbHVlOnR9KXtlLnZhbHVlPXQ/P2BgfSxiZWZvcmVVcGRhdGUoZSx7dmFsdWU6dCxvbGRWYWx1ZTpuLG1vZGlmaWVyczp7bGF6eTpyLHRyaW06aSxudW1iZXI6YX19LG8pe2lmKGVbSXRdPU50KG8pLGUuY29tcG9zaW5nKXJldHVybjtsZXQgcz0oYXx8ZS50eXBlPT09YG51bWJlcmApJiYhL14wXGQvLnRlc3QoZS52YWx1ZSk/eWUoZS52YWx1ZSk6ZS52YWx1ZSxjPXQ/P2BgO2lmKHM9PT1jKXJldHVybjtsZXQgbD1lLmdldFJvb3ROb2RlKCk7KGwgaW5zdGFuY2VvZiBEb2N1bWVudHx8bCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpJiZsLmFjdGl2ZUVsZW1lbnQ9PT1lJiZlLnR5cGUhPT1gcmFuZ2VgJiYociYmdD09PW58fGkmJmUudmFsdWUudHJpbSgpPT09Yyl8fChlLnZhbHVlPWMpfX0senQ9W2BjdHJsYCxgc2hpZnRgLGBhbHRgLGBtZXRhYF0sQnQ9e3N0b3A6ZT0+ZS5zdG9wUHJvcGFnYXRpb24oKSxwcmV2ZW50OmU9PmUucHJldmVudERlZmF1bHQoKSxzZWxmOmU9PmUudGFyZ2V0IT09ZS5jdXJyZW50VGFyZ2V0LGN0cmw6ZT0+IWUuY3RybEtleSxzaGlmdDplPT4hZS5zaGlmdEtleSxhbHQ6ZT0+IWUuYWx0S2V5LG1ldGE6ZT0+IWUubWV0YUtleSxsZWZ0OmU9PmBidXR0b25gaW4gZSYmZS5idXR0b24hPT0wLG1pZGRsZTplPT5gYnV0dG9uYGluIGUmJmUuYnV0dG9uIT09MSxyaWdodDplPT5gYnV0dG9uYGluIGUmJmUuYnV0dG9uIT09MixleGFjdDooZSx0KT0+enQuc29tZShuPT5lW2Ake259S2V5YF0mJiF0LmluY2x1ZGVzKG4pKX0sVnQ9KGUsdCk9PntpZighZSlyZXR1cm4gZTtsZXQgbj1lLl93aXRoTW9kc3x8PXt9LHI9dC5qb2luKGAuYCk7cmV0dXJuIG5bcl18fChuW3JdPSgobiwuLi5yKT0+e2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgcj1CdFt0W2VdXTtpZihyJiZyKG4sdCkpcmV0dXJufXJldHVybiBlKG4sLi4ucil9KSl9LEh0PXtlc2M6YGVzY2FwZWAsc3BhY2U6YCBgLHVwOmBhcnJvdy11cGAsbGVmdDpgYXJyb3ctbGVmdGAscmlnaHQ6YGFycm93LXJpZ2h0YCxkb3duOmBhcnJvdy1kb3duYCxkZWxldGU6YGJhY2tzcGFjZWB9LFV0PShlLHQpPT57bGV0IG49ZS5fd2l0aEtleXN8fD17fSxyPXQuam9pbihgLmApO3JldHVybiBuW3JdfHwobltyXT0obj0+e2lmKCEoYGtleWBpbiBuKSlyZXR1cm47bGV0IHI9QyhuLmtleSk7aWYodC5zb21lKGU9PmU9PT1yfHxIdFtlXT09PXIpKXJldHVybiBlKG4pfSkpfSxXdD13KHtwYXRjaFByb3A6QXR9LFBlKSxHdDtmdW5jdGlvbiBLdCgpe3JldHVybiBHdHx8PWxlKFd0KX12YXIgcXQ9KCguLi5lKT0+e2xldCB0PUt0KCkuY3JlYXRlQXBwKC4uLmUpLHttb3VudDpufT10O3JldHVybiB0Lm1vdW50PWU9PntsZXQgcj1ZdChlKTtpZighcilyZXR1cm47bGV0IGk9dC5fY29tcG9uZW50OyF0ZShpKSYmIWkucmVuZGVyJiYhaS50ZW1wbGF0ZSYmKGkudGVtcGxhdGU9ci5pbm5lckhUTUwpLHIubm9kZVR5cGU9PT0xJiYoci50ZXh0Q29udGVudD1gYCk7bGV0IGE9bihyLCExLEp0KHIpKTtyZXR1cm4gciBpbnN0YW5jZW9mIEVsZW1lbnQmJihyLnJlbW92ZUF0dHJpYnV0ZShgdi1jbG9ha2ApLHIuc2V0QXR0cmlidXRlKGBkYXRhLXYtYXBwYCxgYCkpLGF9LHR9KTtmdW5jdGlvbiBKdChlKXtpZihlIGluc3RhbmNlb2YgU1ZHRWxlbWVudClyZXR1cm5gc3ZnYDtpZih0eXBlb2YgTWF0aE1MRWxlbWVudD09YGZ1bmN0aW9uYCYmZSBpbnN0YW5jZW9mIE1hdGhNTEVsZW1lbnQpcmV0dXJuYG1hdGhtbGB9ZnVuY3Rpb24gWXQoZSl7cmV0dXJuIE8oZSk/ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlKTplfWZ1bmN0aW9uIFh0KCl7fXZhciBJPU9iamVjdC5hc3NpZ24sWnQ9dHlwZW9mIHdpbmRvdzxgdWAsUXQ9ZT0+dHlwZW9mIGU9PWBvYmplY3RgJiYhIWUsTD1lPT5lIT1udWxsLCR0PWU9PnR5cGVvZiBlPT1gZnVuY3Rpb25gLGVuPWU9PlF0KGUpJiYkdChlLnRoZW4pJiYkdChlLmNhdGNoKSx0bj1lPT5PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT1gW29iamVjdCBEYXRlXWAmJiFOdW1iZXIuaXNOYU4oZS5nZXRUaW1lKCkpO2Z1bmN0aW9uIG5uKGUpe3JldHVybiBlPWUucmVwbGFjZSgvW14tfFxkXS9nLGBgKSwvXigoXCs4Nil8KDg2KSk/KDEpXGR7MTB9JC8udGVzdChlKXx8L14wWzAtOS1dezEwLDEzfSQvLnRlc3QoZSl9dmFyIHJuPWU9PnR5cGVvZiBlPT1gbnVtYmVyYHx8L15cZCsoXC5cZCspPyQvLnRlc3QoZSksYW49KCk9Plp0Py9pb3N8aXBob25lfGlwYWR8aXBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOiExO2Z1bmN0aW9uIG9uKGUsdCl7bGV0IG49dC5zcGxpdChgLmApLHI9ZTtyZXR1cm4gbi5mb3JFYWNoKGU9PntyPVF0KHIpP3JbZV0/P2BgOmBgfSkscn1mdW5jdGlvbiBSKGUsdCxuKXtyZXR1cm4gdC5yZWR1Y2UoKHQscik9PigoIW58fGVbcl0hPT12b2lkIDApJiYodFtyXT1lW3JdKSx0KSx7fSl9dmFyIHNuPShlLHQpPT5KU09OLnN0cmluZ2lmeShlKT09PUpTT04uc3RyaW5naWZ5KHQpLGNuPWU9PkFycmF5LmlzQXJyYXkoZSk/ZTpbZV0sbG49ZT0+ZS5yZWR1Y2UoKGUsdCk9PmUuY29uY2F0KHQpLFtdKSx6PVtOdW1iZXIsU3RyaW5nXSxCPXt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH0sdW49ZT0+KHt0eXBlOmUscmVxdWlyZWQ6ITB9KSxWPSgpPT4oe3R5cGU6QXJyYXksZGVmYXVsdDooKT0+W119KSxkbj1lPT4oe3R5cGU6TnVtYmVyLGRlZmF1bHQ6ZX0pLEg9ZT0+KHt0eXBlOnosZGVmYXVsdDplfSksVT1lPT4oe3R5cGU6U3RyaW5nLGRlZmF1bHQ6ZX0pLGZuPXR5cGVvZiB3aW5kb3c8YHVgO2Z1bmN0aW9uIHBuKGUpe3JldHVybiBmbj9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSk6LTF9ZnVuY3Rpb24gbW4oZSl7Zm4mJmNhbmNlbEFuaW1hdGlvbkZyYW1lKGUpfWZ1bmN0aW9uIGhuKGUpe3BuKCgpPT5wbihlKSl9dmFyIGduPWU9PmU9PT13aW5kb3csX249KGUsdCk9Pih7dG9wOjAsbGVmdDowLHJpZ2h0OmUsYm90dG9tOnQsd2lkdGg6ZSxoZWlnaHQ6dH0pLFc9ZT0+e2xldCB0PWQoZSk7aWYoZ24odCkpe2xldCBlPXQuaW5uZXJXaWR0aCxuPXQuaW5uZXJIZWlnaHQ7cmV0dXJuIF9uKGUsbil9cmV0dXJuIHQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdD90LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOl9uKDAsMCl9O2Z1bmN0aW9uIHZuKGU9ITEpe2xldCB0PWIoZSk7cmV0dXJuW3QsKGU9IXQudmFsdWUpPT57dC52YWx1ZT1lfV19ZnVuY3Rpb24geW4oZSl7bGV0IG49d2UoZSxudWxsKTtpZihuKXtsZXQgZT1UZSgpLHtsaW5rOnIsdW5saW5rOmksaW50ZXJuYWxDaGlsZHJlbjphfT1uO3JldHVybiByKGUpLHQoKCk9PmkoZSkpLHtwYXJlbnQ6bixpbmRleDpOKCgpPT5hLmluZGV4T2YoZSkpfX1yZXR1cm57cGFyZW50Om51bGwsaW5kZXg6YigtMSl9fWZ1bmN0aW9uIGJuKGUpe2xldCB0PVtdLG49ZT0+e0FycmF5LmlzQXJyYXkoZSkmJmUuZm9yRWFjaChlPT57dihlKSYmKHQucHVzaChlKSxlLmNvbXBvbmVudD8uc3ViVHJlZSYmKHQucHVzaChlLmNvbXBvbmVudC5zdWJUcmVlKSxuKGUuY29tcG9uZW50LnN1YlRyZWUuY2hpbGRyZW4pKSxlLmNoaWxkcmVuJiZuKGUuY2hpbGRyZW4pKX0pfTtyZXR1cm4gbihlKSx0fXZhciB4bj0oZSx0KT0+e2xldCBuPWUuaW5kZXhPZih0KTtyZXR1cm4gbj09PS0xP2UuZmluZEluZGV4KGU9PnQua2V5IT09dm9pZCAwJiZ0LmtleSE9PW51bGwmJmUudHlwZT09PXQudHlwZSYmZS5rZXk9PT10LmtleSk6bn07ZnVuY3Rpb24gU24oZSx0LG4pe2xldCByPWJuKGUuc3ViVHJlZS5jaGlsZHJlbik7bi5zb3J0KChlLHQpPT54bihyLGUudm5vZGUpLXhuKHIsdC52bm9kZSkpO2xldCBpPW4ubWFwKGU9PmUucHJveHkpO3Quc29ydCgoZSx0KT0+aS5pbmRleE9mKGUpLWkuaW5kZXhPZih0KSl9ZnVuY3Rpb24gQ24oZSl7bGV0IHQ9YyhbXSksbj1jKFtdKSxyPVRlKCk7cmV0dXJue2NoaWxkcmVuOnQsbGlua0NoaWxkcmVuOmk9PnttKGUsT2JqZWN0LmFzc2lnbih7bGluazplPT57ZS5wcm94eSYmKG4ucHVzaChlKSx0LnB1c2goZS5wcm94eSksU24ocix0LG4pKX0sdW5saW5rOmU9PntsZXQgcj1uLmluZGV4T2YoZSk7dC5zcGxpY2UociwxKSxuLnNwbGljZShyLDEpfSxjaGlsZHJlbjp0LGludGVybmFsQ2hpbGRyZW46bn0saSkpfX19dmFyIHduPTFlMyxUbj02MCp3bixFbj02MCpUbixEbj0yNCpFbjtmdW5jdGlvbiBPbihlKXtyZXR1cm57dG90YWw6ZSxkYXlzOk1hdGguZmxvb3IoZS9EbiksaG91cnM6TWF0aC5mbG9vcihlJURuL0VuKSxtaW51dGVzOk1hdGguZmxvb3IoZSVFbi9Ubiksc2Vjb25kczpNYXRoLmZsb29yKGUlVG4vd24pLG1pbGxpc2Vjb25kczpNYXRoLmZsb29yKGUld24pfX1mdW5jdGlvbiBrbihlLHQpe3JldHVybiBNYXRoLmZsb29yKGUvMWUzKT09PU1hdGguZmxvb3IodC8xZTMpfWZ1bmN0aW9uIEFuKGUpe2xldCB0LG4scixpLG89YihlLnRpbWUpLHM9TigoKT0+T24oby52YWx1ZSkpLGM9KCk9PntyPSExLG1uKHQpfSxsPSgpPT5NYXRoLm1heChuLURhdGUubm93KCksMCksdT10PT57dmFyIG4scjtvLnZhbHVlPXQsKG49ZS5vbkNoYW5nZSk9PW51bGx8fG4uY2FsbChlLHMudmFsdWUpLHQ9PT0wJiYoYygpLChyPWUub25GaW5pc2gpPT1udWxsfHxyLmNhbGwoZSkpfSxkPSgpPT57dD1wbigoKT0+e3ImJih1KGwoKSksby52YWx1ZT4wJiZkKCkpfSl9LGY9KCk9Pnt0PXBuKCgpPT57aWYocil7bGV0IGU9bCgpOygha24oZSxvLnZhbHVlKXx8ZT09PTApJiZ1KGUpLG8udmFsdWU+MCYmZigpfX0pfSxwPSgpPT57Zm4mJihlLm1pbGxpc2Vjb25kP2QoKTpmKCkpfTtyZXR1cm4gYShjKSx5KCgpPT57aSYmKHI9ITAsaT0hMSxwKCkpfSksaCgoKT0+e3ImJihjKCksaT0hMCl9KSx7c3RhcnQ6KCk9PntyfHwobj1EYXRlLm5vdygpK28udmFsdWUscj0hMCxwKCkpfSxwYXVzZTpjLHJlc2V0Oih0PWUudGltZSk9PntjKCksby52YWx1ZT10fSxjdXJyZW50OnN9fWZ1bmN0aW9uIGpuKGUpe2xldCB0O00oKCk9PntlKCksRigoKT0+e3Q9ITB9KX0pLHkoKCk9Pnt0JiZlKCl9KX1mdW5jdGlvbiBHKGUsbixyPXt9KXtpZighZm4pcmV0dXJuO2xldHt0YXJnZXQ6aT13aW5kb3cscGFzc2l2ZTphPSExLGNhcHR1cmU6bz0hMX09cixzPSExLGMsbD10PT57aWYocylyZXR1cm47bGV0IHI9ZCh0KTtyJiYhYyYmKHIuYWRkRXZlbnRMaXN0ZW5lcihlLG4se2NhcHR1cmU6byxwYXNzaXZlOmF9KSxjPSEwKX0sdT10PT57aWYocylyZXR1cm47bGV0IHI9ZCh0KTtyJiZjJiYoci5yZW1vdmVFdmVudExpc3RlbmVyKGUsbixvKSxjPSExKX07dCgoKT0+dShpKSksaCgoKT0+dShpKSksam4oKCk9PmwoaSkpO2xldCBwO3JldHVybiB4KGkpJiYocD1mKGksKGUsdCk9Pnt1KHQpLGwoZSl9KSksKCk9PntwPy4oKSx1KGkpLHM9ITB9fWZ1bmN0aW9uIE1uKGUsdCxuPXt9KXtpZighZm4pcmV0dXJuO2xldHtldmVudE5hbWU6cj1gY2xpY2tgfT1uO0cocixuPT57KEFycmF5LmlzQXJyYXkoZSk/ZTpbZV0pLmV2ZXJ5KGU9PntsZXQgdD1kKGUpO3JldHVybiB0JiYhdC5jb250YWlucyhuLnRhcmdldCl9KSYmdChuKX0se3RhcmdldDpkb2N1bWVudH0pfXZhciBObixQbjtmdW5jdGlvbiBGbigpe2lmKCFObiYmKE5uPWIoMCksUG49YigwKSxmbikpe2xldCBlPSgpPT57Tm4udmFsdWU9d2luZG93LmlubmVyV2lkdGgsUG4udmFsdWU9d2luZG93LmlubmVySGVpZ2h0fTtlKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoYHJlc2l6ZWAsZSx7cGFzc2l2ZTohMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGBvcmllbnRhdGlvbmNoYW5nZWAsZSx7cGFzc2l2ZTohMH0pfXJldHVybnt3aWR0aDpObixoZWlnaHQ6UG59fXZhciBJbj0vc2Nyb2xsfGF1dG98b3ZlcmxheS9pLExuPWZuP3dpbmRvdzp2b2lkIDA7ZnVuY3Rpb24gUm4oZSl7cmV0dXJuIGUudGFnTmFtZSE9PWBIVE1MYCYmZS50YWdOYW1lIT09YEJPRFlgJiZlLm5vZGVUeXBlPT09MX1mdW5jdGlvbiB6bihlLHQ9TG4pe2xldCBuPWU7Zm9yKDtuJiZuIT09dCYmUm4obik7KXtsZXR7b3ZlcmZsb3dZOmV9PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG4pO2lmKEluLnRlc3QoZSkpcmV0dXJuIG47bj1uLnBhcmVudE5vZGV9cmV0dXJuIHR9ZnVuY3Rpb24gQm4oZSx0PUxuKXtsZXQgbj1iKCk7cmV0dXJuIE0oKCk9PntlLnZhbHVlJiYobi52YWx1ZT16bihlLnZhbHVlLHQpKX0pLG59dmFyIFZuO2Z1bmN0aW9uIEhuKCl7aWYoIVZuJiYoVm49YihgdmlzaWJsZWApLGZuKSl7bGV0IGU9KCk9PntWbi52YWx1ZT1kb2N1bWVudC5oaWRkZW4/YGhpZGRlbmA6YHZpc2libGVgfTtlKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoYHZpc2liaWxpdHljaGFuZ2VgLGUpfXJldHVybiBWbn12YXIgVW49U3ltYm9sKGB2YW4tZmllbGRgKTtmdW5jdGlvbiBXbihlKXtsZXQgdD13ZShVbixudWxsKTt0JiYhdC5jdXN0b21WYWx1ZS52YWx1ZSYmKHQuY3VzdG9tVmFsdWUudmFsdWU9ZSxmKGUsKCk9Pnt0LnJlc2V0VmFsaWRhdGlvbigpLHQudmFsaWRhdGVXaXRoVHJpZ2dlcihgb25DaGFuZ2VgKX0pKX1mdW5jdGlvbiBHbihlKXtsZXQgdD1gc2Nyb2xsVG9wYGluIGU/ZS5zY3JvbGxUb3A6ZS5wYWdlWU9mZnNldDtyZXR1cm4gTWF0aC5tYXgodCwwKX1mdW5jdGlvbiBLbihlLHQpe2BzY3JvbGxUb3BgaW4gZT9lLnNjcm9sbFRvcD10OmUuc2Nyb2xsVG8oZS5zY3JvbGxYLHQpfWZ1bmN0aW9uIHFuKCl7cmV0dXJuIHdpbmRvdy5wYWdlWU9mZnNldHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3B8fDB9ZnVuY3Rpb24gSm4oZSl7S24od2luZG93LGUpLEtuKGRvY3VtZW50LmJvZHksZSl9ZnVuY3Rpb24gWW4oZSx0KXtpZihlPT09d2luZG93KXJldHVybiAwO2xldCBuPXQ/R24odCk6cW4oKTtyZXR1cm4gVyhlKS50b3Arbn12YXIgWG49YW4oKTtmdW5jdGlvbiBabigpe1huJiZKbihxbigpKX12YXIgUW49ZT0+ZS5zdG9wUHJvcGFnYXRpb24oKTtmdW5jdGlvbiBLKGUsdCl7KHR5cGVvZiBlLmNhbmNlbGFibGUhPWBib29sZWFuYHx8ZS5jYW5jZWxhYmxlKSYmZS5wcmV2ZW50RGVmYXVsdCgpLHQmJlFuKGUpfWZ1bmN0aW9uICRuKGUpe2xldCB0PWQoZSk7aWYoIXQpcmV0dXJuITE7bGV0IG49d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkscj1uLmRpc3BsYXk9PT1gbm9uZWAsaT10Lm9mZnNldFBhcmVudD09PW51bGwmJm4ucG9zaXRpb24hPT1gZml4ZWRgO3JldHVybiByfHxpfXZhcnt3aWR0aDplcixoZWlnaHQ6dHJ9PUZuKCk7ZnVuY3Rpb24gbnIoZSl7bGV0IHQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSk7cmV0dXJuIHQudHJhbnNmb3JtIT09YG5vbmVgfHx0LnBlcnNwZWN0aXZlIT09YG5vbmVgfHxbYHRyYW5zZm9ybWAsYHBlcnNwZWN0aXZlYCxgZmlsdGVyYF0uc29tZShlPT4odC53aWxsQ2hhbmdlfHxgYCkuaW5jbHVkZXMoZSkpfWZ1bmN0aW9uIHJyKGUpe2xldCB0PWUucGFyZW50RWxlbWVudDtmb3IoO3Q7KXtpZih0JiZ0LnRhZ05hbWUhPT1gSFRNTGAmJnQudGFnTmFtZSE9PWBCT0RZYCYmbnIodCkpcmV0dXJuIHQ7dD10LnBhcmVudEVsZW1lbnR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gcShlKXtpZihMKGUpKXJldHVybiBybihlKT9gJHtlfXB4YDpTdHJpbmcoZSl9ZnVuY3Rpb24gaXIoZSl7aWYoTChlKSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm57d2lkdGg6cShlWzBdKSxoZWlnaHQ6cShlWzFdKX07bGV0IHQ9cShlKTtyZXR1cm57d2lkdGg6dCxoZWlnaHQ6dH19fWZ1bmN0aW9uIGFyKGUpe2xldCB0PXt9O3JldHVybiBlIT09dm9pZCAwJiYodC56SW5kZXg9K2UpLHR9dmFyIG9yO2Z1bmN0aW9uIHNyKCl7aWYoIW9yKXtsZXQgZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdD1lLnN0eWxlLmZvbnRTaXplfHx3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKS5mb250U2l6ZTtvcj1wYXJzZUZsb2F0KHQpfXJldHVybiBvcn1mdW5jdGlvbiBjcihlKXtyZXR1cm4gZT1lLnJlcGxhY2UoL3JlbS9nLGBgKSwrZSpzcigpfWZ1bmN0aW9uIGxyKGUpe3JldHVybiBlPWUucmVwbGFjZSgvdncvZyxgYCksK2UqZXIudmFsdWUvMTAwfWZ1bmN0aW9uIHVyKGUpe3JldHVybiBlPWUucmVwbGFjZSgvdmgvZyxgYCksK2UqdHIudmFsdWUvMTAwfWZ1bmN0aW9uIGRyKGUpe2lmKHR5cGVvZiBlPT1gbnVtYmVyYClyZXR1cm4gZTtpZihadCl7aWYoZS5pbmNsdWRlcyhgcmVtYCkpcmV0dXJuIGNyKGUpO2lmKGUuaW5jbHVkZXMoYHZ3YCkpcmV0dXJuIGxyKGUpO2lmKGUuaW5jbHVkZXMoYHZoYCkpcmV0dXJuIHVyKGUpfXJldHVybiBwYXJzZUZsb2F0KGUpfXZhciBmcj0vLShcdykvZyxwcj1lPT5lLnJlcGxhY2UoZnIsKGUsdCk9PnQudG9VcHBlckNhc2UoKSksbXI9ZT0+ZS5yZXBsYWNlKC8oW0EtWl0pL2csYC0kMWApLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXi0vLGBgKTtmdW5jdGlvbiBocihlLHQ9Mil7bGV0IG49ZStgYDtmb3IoO24ubGVuZ3RoPHQ7KW49YDBgK247cmV0dXJuIG59dmFyIGdyPShlLHQsbik9Pk1hdGgubWluKE1hdGgubWF4KGUsdCksbik7ZnVuY3Rpb24gX3IoZSx0LG4pe2xldCByPWUuaW5kZXhPZih0KTtyZXR1cm4gcj09PS0xP2U6dD09PWAtYCYmciE9PTA/ZS5zbGljZSgwLHIpOmUuc2xpY2UoMCxyKzEpK2Uuc2xpY2UocikucmVwbGFjZShuLGBgKX1mdW5jdGlvbiB2cihlLHQ9ITAsbj0hMCl7ZT10P19yKGUsYC5gLC9cLi9nKTplLnNwbGl0KGAuYClbMF0sZT1uP19yKGUsYC1gLC8tL2cpOmUucmVwbGFjZSgvLS8sYGApO2xldCByPXQ/L1teLTAtOS5dL2c6L1teLTAtOV0vZztyZXR1cm4gZS5yZXBsYWNlKHIsYGApfWZ1bmN0aW9uIHlyKGUsdCl7bGV0IG49MTAqKjEwO3JldHVybiBNYXRoLnJvdW5kKChlK3QpKm4pL259dmFye2hhc093blByb3BlcnR5OmJyfT1PYmplY3QucHJvdG90eXBlO2Z1bmN0aW9uIHhyKGUsdCxuKXtsZXQgcj10W25dO0wocikmJighYnIuY2FsbChlLG4pfHwhUXQocik/ZVtuXT1yOmVbbl09U3IoT2JqZWN0KGVbbl0pLHIpKX1mdW5jdGlvbiBTcihlLHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKG49Pnt4cihlLHQsbil9KSxlfXZhciBDcj17bmFtZTpg5aeT5ZCNYCx0ZWw6YOeUteivnWAsc2F2ZTpg5L+d5a2YYCxjbGVhcjpg5riF56m6YCx1bmRvOmDmkqTplIBgLGNhbmNlbDpg5Y+W5raIYCxjb25maXJtOmDnoa7orqRgLGRlbGV0ZTpg5Yig6ZmkYCxsb2FkaW5nOmDliqDovb3kuK0uLi5gLG5vQ291cG9uOmDmmoLml6DkvJjmg6DliLhgLG5hbWVFbXB0eTpg6K+35aGr5YaZ5aeT5ZCNYCxhZGRDb250YWN0OmDmt7vliqDogZTns7vkurpgLHRlbEludmFsaWQ6YOivt+Whq+WGmeato+ehrueahOeUteivnWAsdmFuQ2FsZW5kYXI6e2VuZDpg57uT5p2fYCxzdGFydDpg5byA5aeLYCx0aXRsZTpg5pel5pyf6YCJ5oupYCx3ZWVrZGF5czpbYOaXpWAsYOS4gGAsYOS6jGAsYOS4iWAsYOWbm2AsYOS6lGAsYOWFrWBdLG1vbnRoVGl0bGU6KGUsdCk9PmAke2V9XHU1RTc0JHt0fVx1NjcwOGAscmFuZ2VQcm9tcHQ6ZT0+YFx1NjcwMFx1NTkxQVx1OTAwOVx1NjJFOSAke2V9IFx1NTkyOWB9LHZhbkNhc2NhZGVyOntzZWxlY3Q6YOivt+mAieaLqWB9LHZhblBhZ2luYXRpb246e3ByZXY6YOS4iuS4gOmhtWAsbmV4dDpg5LiL5LiA6aG1YH0sdmFuUHVsbFJlZnJlc2g6e3B1bGxpbmc6YOS4i+aLieWNs+WPr+WIt+aWsC4uLmAsbG9vc2luZzpg6YeK5pS+5Y2z5Y+v5Yi35pawLi4uYH0sdmFuU3VibWl0QmFyOntsYWJlbDpg5ZCI6K6hOmB9LHZhbkNvdXBvbjp7dW5saW1pdGVkOmDml6Dpl6jmp5tgLGRpc2NvdW50OmU9PmAke2V9XHU2Mjk4YCxjb25kaXRpb246ZT0+YFx1NkVFMSR7ZX1cdTUxNDNcdTUzRUZcdTc1MjhgfSx2YW5Db3Vwb25DZWxsOnt0aXRsZTpg5LyY5oOg5Yi4YCxjb3VudDplPT5gJHtlfVx1NUYyMFx1NTNFRlx1NzUyOGB9LHZhbkNvdXBvbkxpc3Q6e2V4Y2hhbmdlOmDlhZHmjaJgLGNsb3NlOmDkuI3kvb/nlKhgLGVuYWJsZTpg5Y+v55SoYCxkaXNhYmxlZDpg5LiN5Y+v55SoYCxwbGFjZWhvbGRlcjpg6L6T5YWl5LyY5oOg56CBYH0sdmFuQWRkcmVzc0VkaXQ6e2FyZWE6YOWcsOWMumAsYXJlYUVtcHR5OmDor7fpgInmi6nlnLDljLpgLGFkZHJlc3NFbXB0eTpg6K+35aGr5YaZ6K+m57uG5Zyw5Z2AYCxhZGRyZXNzRGV0YWlsOmDor6bnu4blnLDlnYBgLGRlZmF1bHRBZGRyZXNzOmDorr7kuLrpu5jorqTmlLbotKflnLDlnYBgfSx2YW5BZGRyZXNzTGlzdDp7YWRkOmDmlrDlop7lnLDlnYBgfX0sd3I9YihgemgtQ05gKSxUcj1jKHsiemgtQ04iOkNyfSksRXI9e21lc3NhZ2VzKCl7cmV0dXJuIFRyW3dyLnZhbHVlXX0sdXNlKGUsdCl7d3IudmFsdWU9ZSx0aGlzLmFkZCh7W2VdOnR9KX0sYWRkKGU9e30pe1NyKFRyLGUpfX0sRHI9RXI7ZnVuY3Rpb24gT3IoZSl7bGV0IHQ9cHIoZSkrYC5gO3JldHVybihlLC4uLm4pPT57bGV0IHI9RHIubWVzc2FnZXMoKSxpPW9uKHIsdCtlKXx8b24ocixlKTtyZXR1cm4gJHQoaSk/aSguLi5uKTppfX1mdW5jdGlvbiBrcihlLHQpe3JldHVybiB0P3R5cGVvZiB0PT1gc3RyaW5nYD9gICR7ZX0tLSR7dH1gOkFycmF5LmlzQXJyYXkodCk/dC5yZWR1Y2UoKHQsbik9PnQra3IoZSxuKSxgYCk6T2JqZWN0LmtleXModCkucmVkdWNlKChuLHIpPT5uKyh0W3JdP2tyKGUscik6YGApLGBgKTpgYH1mdW5jdGlvbiBBcihlKXtyZXR1cm4odCxuKT0+KHQmJnR5cGVvZiB0IT1gc3RyaW5nYCYmKG49dCx0PWBgKSx0PXQ/YCR7ZX1fXyR7dH1gOmUsYCR7dH0ke2tyKHQsbil9YCl9ZnVuY3Rpb24gSihlKXtsZXQgdD1gdmFuLSR7ZX1gO3JldHVyblt0LEFyKHQpLE9yKHQpXX12YXIganI9YHZhbi1oYWlybGluZWAsTXI9YCR7anJ9LS10b3BgLE5yPWAke2pyfS0tbGVmdGAsUHI9YCR7anJ9LS1yaWdodGAsRnI9YCR7anJ9LS1ib3R0b21gLElyPWAke2pyfS0tc3Vycm91bmRgLExyPWAke2pyfS0tdG9wLWJvdHRvbWAsUnI9YCR7anJ9LXVuc2V0LS10b3AtYm90dG9tYCx6cj1gdmFuLWhhcHRpY3MtZmVlZGJhY2tgLEJyPVN5bWJvbChgdmFuLWZvcm1gKTtmdW5jdGlvbiBWcihlLHthcmdzOnQ9W10sZG9uZTpuLGNhbmNlbGVkOnIsZXJyb3I6aX0pe2lmKGUpe2xldCBhPWUuYXBwbHkobnVsbCx0KTtlbihhKT9hLnRoZW4oZT0+e2U/bigpOnImJnIoKX0pLmNhdGNoKGl8fFh0KTphP24oKTpyJiZyKCl9ZWxzZSBuKCl9ZnVuY3Rpb24gWShlKXtyZXR1cm4gZS5pbnN0YWxsPXQ9PntsZXR7bmFtZTpufT1lO24mJih0LmNvbXBvbmVudChuLGUpLHQuY29tcG9uZW50KHByKGAtJHtufWApLGUpKX0sZX1mdW5jdGlvbiBIcihlLHQpe3JldHVybiBlLnJlZHVjZSgoZSxuKT0+TWF0aC5hYnMoZS10KTxNYXRoLmFicyhuLXQpP2U6bil9dmFyIFVyPVN5bWJvbCgpO2Z1bmN0aW9uIFdyKGUpe2xldCB0PXdlKFVyLG51bGwpO3QmJmYodCx0PT57dCYmZSgpfSl9dmFyIEdyPShlLHQpPT57bGV0IG49YigpLHI9KCk9PntuLnZhbHVlPVcoZSkuaGVpZ2h0fTtyZXR1cm4gTSgoKT0+e2lmKEYociksdClmb3IobGV0IGU9MTtlPD0zO2UrKylzZXRUaW1lb3V0KHIsMTAwKmUpfSksV3IoKCk9PkYocikpLGYoW2VyLHRyXSxyKSxufTtmdW5jdGlvbiBLcihlLHQpe2xldCBuPUdyKGUsITApO3JldHVybiBlPT5FKGBkaXZgLHtjbGFzczp0KGBwbGFjZWhvbGRlcmApLHN0eWxlOntoZWlnaHQ6bi52YWx1ZT9gJHtuLnZhbHVlfXB4YDp2b2lkIDB9fSxbZSgpXSl9dmFyW3FyLEpyXT1KKGBhY3Rpb24tYmFyYCksWXI9U3ltYm9sKHFyKSxYcj1ZKFAoe25hbWU6cXIscHJvcHM6e3BsYWNlaG9sZGVyOkJvb2xlYW4sc2FmZUFyZWFJbnNldEJvdHRvbTpCfSxzZXR1cChlLHtzbG90czp0fSl7bGV0IG49YigpLHI9S3IobixKcikse2xpbmtDaGlsZHJlbjppfT1DbihZcik7aSgpO2xldCBhPSgpPT5FKGBkaXZgLHtyZWY6bixjbGFzczpbSnIoKSx7InZhbi1zYWZlLWFyZWEtYm90dG9tIjplLnNhZmVBcmVhSW5zZXRCb3R0b219XX0sW3QuZGVmYXVsdD8uY2FsbCh0KV0pO3JldHVybigpPT5lLnBsYWNlaG9sZGVyP3IoYSk6YSgpfX0pKTtmdW5jdGlvbiBYKGUpe2xldCB0PVRlKCk7dCYmSSh0LnByb3h5LGUpfXZhciBacj17dG86W1N0cmluZyxPYmplY3RdLHVybDpTdHJpbmcscmVwbGFjZTpCb29sZWFufTtmdW5jdGlvbiBRcih7dG86ZSx1cmw6dCxyZXBsYWNlOm4sJHJvdXRlcjpyfSl7ZSYmcj9yW24/YHJlcGxhY2VgOmBwdXNoYF0oZSk6dCYmKG4/bG9jYXRpb24ucmVwbGFjZSh0KTpsb2NhdGlvbi5ocmVmPXQpfWZ1bmN0aW9uICRyKCl7bGV0IGU9VGUoKS5wcm94eTtyZXR1cm4oKT0+UXIoZSl9dmFyW2VpLHRpXT1KKGBiYWRnZWApLG5pPVkoUCh7bmFtZTplaSxwcm9wczp7ZG90OkJvb2xlYW4sbWF4OnosdGFnOlUoYGRpdmApLGNvbG9yOlN0cmluZyxvZmZzZXQ6QXJyYXksY29udGVudDp6LHNob3daZXJvOkIscG9zaXRpb246VShgdG9wLXJpZ2h0YCl9LHNldHVwKGUse3Nsb3RzOnR9KXtsZXQgbj0oKT0+e2lmKHQuY29udGVudClyZXR1cm4hMDtsZXR7Y29udGVudDpuLHNob3daZXJvOnJ9PWU7cmV0dXJuIEwobikmJm4hPT1gYCYmKHJ8fG4hPT0wJiZuIT09YDBgKX0scj0oKT0+e2xldHtkb3Q6cixtYXg6aSxjb250ZW50OmF9PWU7aWYoIXImJm4oKSlyZXR1cm4gdC5jb250ZW50P3QuY29udGVudCgpOkwoaSkmJnJuKGEpJiYrYT4raT9gJHtpfStgOmF9LGk9ZT0+ZS5zdGFydHNXaXRoKGAtYCk/ZS5yZXBsYWNlKGAtYCxgYCk6YC0ke2V9YCxhPU4oKCk9PntsZXQgbj17YmFja2dyb3VuZDplLmNvbG9yfTtpZihlLm9mZnNldCl7bGV0W3IsYV09ZS5vZmZzZXQse3Bvc2l0aW9uOm99PWUsW3MsY109by5zcGxpdChgLWApO3QuZGVmYXVsdD8odHlwZW9mIGE9PWBudW1iZXJgP25bc109cShzPT09YHRvcGA/YTotYSk6bltzXT1zPT09YHRvcGA/cShhKTppKGEpLHR5cGVvZiByPT1gbnVtYmVyYD9uW2NdPXEoYz09PWBsZWZ0YD9yOi1yKTpuW2NdPWM9PT1gbGVmdGA/cShyKTppKHIpKToobi5tYXJnaW5Ub3A9cShhKSxuLm1hcmdpbkxlZnQ9cShyKSl9cmV0dXJuIG59KSxvPSgpPT57aWYobigpfHxlLmRvdClyZXR1cm4gRShgZGl2YCx7Y2xhc3M6dGkoW2UucG9zaXRpb24se2RvdDplLmRvdCxmaXhlZDohIXQuZGVmYXVsdH1dKSxzdHlsZTphLnZhbHVlfSxbcigpXSl9O3JldHVybigpPT57aWYodC5kZWZhdWx0KXtsZXR7dGFnOm59PWU7cmV0dXJuIEUobix7Y2xhc3M6dGkoYHdyYXBwZXJgKX0se2RlZmF1bHQ6KCk9Plt0LmRlZmF1bHQoKSxvKCldfSl9cmV0dXJuIG8oKX19fSkpLHJpPTJlMyxpaT0oKT0+KytyaSxhaT1lPT57cmk9ZX0sW29pLHNpXT1KKGBjb25maWctcHJvdmlkZXJgKSxjaT1TeW1ib2wob2kpLGxpPXt0YWc6VShgZGl2YCksdGhlbWU6VShgbGlnaHRgKSx6SW5kZXg6TnVtYmVyLHRoZW1lVmFyczpPYmplY3QsdGhlbWVWYXJzRGFyazpPYmplY3QsdGhlbWVWYXJzTGlnaHQ6T2JqZWN0LHRoZW1lVmFyc1Njb3BlOlUoYGxvY2FsYCksaWNvblByZWZpeDpTdHJpbmd9O2Z1bmN0aW9uIHVpKGUpe3JldHVybiBlLnJlcGxhY2UoLyhbYS16QS1aXSkoXGQpL2csYCQxLSQyYCl9ZnVuY3Rpb24gZGkoZSl7bGV0IHQ9e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gobj0+e2xldCByPXVpKG1yKG4pKTt0W2AtLXZhbi0ke3J9YF09ZVtuXX0pLHR9ZnVuY3Rpb24gZmkoZT17fSx0PXt9KXtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKG49PntlW25dIT09dFtuXSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KG4sZVtuXSl9KSxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKHQ9PntlW3RdfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9KX12YXIgcGk9UCh7bmFtZTpvaSxwcm9wczpsaSxzZXR1cChlLHtzbG90czp0fSl7bGV0IG49TigoKT0+ZGkoSSh7fSxlLnRoZW1lVmFycyxlLnRoZW1lPT09YGRhcmtgP2UudGhlbWVWYXJzRGFyazplLnRoZW1lVmFyc0xpZ2h0KSkpO2lmKFp0KXtsZXQgdD0oKT0+e2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKGB2YW4tdGhlbWUtJHtlLnRoZW1lfWApfSxyPSh0PWUudGhlbWUpPT57ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoYHZhbi10aGVtZS0ke3R9YCl9O2YoKCk9PmUudGhlbWUsKGUsbik9PntuJiZyKG4pLHQoKX0se2ltbWVkaWF0ZTohMH0pLHkodCksaChyKSxhKHIpLGYobiwodCxuKT0+e2UudGhlbWVWYXJzU2NvcGU9PT1gZ2xvYmFsYCYmZmkodCxuKX0pLGYoKCk9PmUudGhlbWVWYXJzU2NvcGUsKGUsdCk9Pnt0PT09YGdsb2JhbGAmJmZpKHt9LG4udmFsdWUpLGU9PT1gZ2xvYmFsYCYmZmkobi52YWx1ZSx7fSl9KSxlLnRoZW1lVmFyc1Njb3BlPT09YGdsb2JhbGAmJmZpKG4udmFsdWUse30pfXJldHVybiBtKGNpLGUpLF8oKCk9PntlLnpJbmRleCE9PXZvaWQgMCYmYWkoZS56SW5kZXgpfSksKCk9PkUoZS50YWcse2NsYXNzOnNpKCksc3R5bGU6ZS50aGVtZVZhcnNTY29wZT09PWBsb2NhbGA/bi52YWx1ZTp2b2lkIDB9LHtkZWZhdWx0OigpPT5bdC5kZWZhdWx0Py5jYWxsKHQpXX0pfX0pLFttaSxoaV09SihgaWNvbmApLGdpPWU9PmU/LmluY2x1ZGVzKGAvYCksWj1ZKFAoe25hbWU6bWkscHJvcHM6e2RvdDpCb29sZWFuLHRhZzpVKGBpYCksbmFtZTpTdHJpbmcsc2l6ZTp6LGJhZGdlOnosY29sb3I6U3RyaW5nLGJhZGdlUHJvcHM6T2JqZWN0LGNsYXNzUHJlZml4OlN0cmluZ30sc2V0dXAoZSx7c2xvdHM6dH0pe2xldCBuPXdlKGNpLG51bGwpLGk9TigoKT0+ZS5jbGFzc1ByZWZpeHx8bj8uaWNvblByZWZpeHx8aGkoKSk7cmV0dXJuKCk9PntsZXR7dGFnOm4sZG90OmEsbmFtZTpvLHNpemU6cyxiYWRnZTpjLGNvbG9yOmx9PWUsdT1naShvKTtyZXR1cm4gRShuaSxyKHtkb3Q6YSx0YWc6bixjbGFzczpbaS52YWx1ZSx1P2BgOmAke2kudmFsdWV9LSR7b31gXSxzdHlsZTp7Y29sb3I6bCxmb250U2l6ZTpxKHMpfSxjb250ZW50OmN9LGUuYmFkZ2VQcm9wcykse2RlZmF1bHQ6KCk9Plt0LmRlZmF1bHQ/LmNhbGwodCksdSYmRShgaW1nYCx7Y2xhc3M6aGkoYGltYWdlYCksc3JjOm99LG51bGwpXX0pfX19KSksX2k9WixbdmkseWldPUooYGxvYWRpbmdgKSxiaT1BcnJheSgxMikuZmlsbChudWxsKS5tYXAoKGUsdCk9PkUoYGlgLHtjbGFzczp5aShgbGluZWAsU3RyaW5nKHQrMSkpfSxudWxsKSkseGk9RShgc3ZnYCx7Y2xhc3M6eWkoYGNpcmN1bGFyYCksdmlld0JveDpgMjUgMjUgNTAgNTBgfSxbRShgY2lyY2xlYCx7Y3g6YDUwYCxjeTpgNTBgLHI6YDIwYCxmaWxsOmBub25lYH0sbnVsbCldKSxTaT1ZKFAoe25hbWU6dmkscHJvcHM6e3NpemU6eix0eXBlOlUoYGNpcmN1bGFyYCksY29sb3I6U3RyaW5nLHZlcnRpY2FsOkJvb2xlYW4sdGV4dFNpemU6eix0ZXh0Q29sb3I6U3RyaW5nfSxzZXR1cChlLHtzbG90czp0fSl7bGV0IG49TigoKT0+SSh7Y29sb3I6ZS5jb2xvcn0saXIoZS5zaXplKSkpLHI9KCk9PntsZXQgcj1lLnR5cGU9PT1gc3Bpbm5lcmA/Ymk6eGk7cmV0dXJuIEUoYHNwYW5gLHtjbGFzczp5aShgc3Bpbm5lcmAsZS50eXBlKSxzdHlsZTpuLnZhbHVlfSxbdC5pY29uP3QuaWNvbigpOnJdKX0saT0oKT0+e2lmKHQuZGVmYXVsdClyZXR1cm4gRShgc3BhbmAse2NsYXNzOnlpKGB0ZXh0YCksc3R5bGU6e2ZvbnRTaXplOnEoZS50ZXh0U2l6ZSksY29sb3I6ZS50ZXh0Q29sb3I/P2UuY29sb3J9fSxbdC5kZWZhdWx0KCldKX07cmV0dXJuKCk9PntsZXR7dHlwZTp0LHZlcnRpY2FsOm59PWU7cmV0dXJuIEUoYGRpdmAse2NsYXNzOnlpKFt0LHt2ZXJ0aWNhbDpufV0pLCJhcmlhLWxpdmUiOmBwb2xpdGVgLCJhcmlhLWJ1c3kiOiEwfSxbcigpLGkoKV0pfX19KSksW0NpLHdpXT1KKGBidXR0b25gKSxUaT1ZKFAoe25hbWU6Q2kscHJvcHM6SSh7fSxacix7dGFnOlUoYGJ1dHRvbmApLHRleHQ6U3RyaW5nLGljb246U3RyaW5nLHR5cGU6VShgZGVmYXVsdGApLHNpemU6VShgbm9ybWFsYCksY29sb3I6U3RyaW5nLGJsb2NrOkJvb2xlYW4scGxhaW46Qm9vbGVhbixyb3VuZDpCb29sZWFuLHNxdWFyZTpCb29sZWFuLGxvYWRpbmc6Qm9vbGVhbixoYWlybGluZTpCb29sZWFuLGRpc2FibGVkOkJvb2xlYW4saWNvblByZWZpeDpTdHJpbmcsbmF0aXZlVHlwZTpVKGBidXR0b25gKSxsb2FkaW5nU2l6ZTp6LGxvYWRpbmdUZXh0OlN0cmluZyxsb2FkaW5nVHlwZTpTdHJpbmcsaWNvblBvc2l0aW9uOlUoYGxlZnRgKX0pLGVtaXRzOltgY2xpY2tgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCByPSRyKCksaT0oKT0+bi5sb2FkaW5nP24ubG9hZGluZygpOkUoU2kse3NpemU6ZS5sb2FkaW5nU2l6ZSx0eXBlOmUubG9hZGluZ1R5cGUsY2xhc3M6d2koYGxvYWRpbmdgKX0sbnVsbCksYT0oKT0+e2lmKGUubG9hZGluZylyZXR1cm4gaSgpO2lmKG4uaWNvbilyZXR1cm4gRShgZGl2YCx7Y2xhc3M6d2koYGljb25gKX0sW24uaWNvbigpXSk7aWYoZS5pY29uKXJldHVybiBFKFose25hbWU6ZS5pY29uLGNsYXNzOndpKGBpY29uYCksY2xhc3NQcmVmaXg6ZS5pY29uUHJlZml4fSxudWxsKX0sbz0oKT0+e2xldCB0O2lmKHQ9ZS5sb2FkaW5nP2UubG9hZGluZ1RleHQ6bi5kZWZhdWx0P24uZGVmYXVsdCgpOmUudGV4dCx0KXJldHVybiBFKGBzcGFuYCx7Y2xhc3M6d2koYHRleHRgKX0sW3RdKX0scz0oKT0+e2xldHtjb2xvcjp0LHBsYWluOm59PWU7aWYodCl7bGV0IGU9e2NvbG9yOm4/dDpgd2hpdGVgfTtyZXR1cm4gbnx8KGUuYmFja2dyb3VuZD10KSx0LmluY2x1ZGVzKGBncmFkaWVudGApP2UuYm9yZGVyPTA6ZS5ib3JkZXJDb2xvcj10LGV9fSxjPW49PntlLmxvYWRpbmc/SyhuKTplLmRpc2FibGVkfHwodChgY2xpY2tgLG4pLHIoKSl9O3JldHVybigpPT57bGV0e3RhZzp0LHR5cGU6bixzaXplOnIsYmxvY2s6aSxyb3VuZDpsLHBsYWluOnUsc3F1YXJlOmQsbG9hZGluZzpmLGRpc2FibGVkOnAsaGFpcmxpbmU6bSxuYXRpdmVUeXBlOmgsaWNvblBvc2l0aW9uOmd9PWU7cmV0dXJuIEUodCx7dHlwZTpoLGNsYXNzOlt3aShbbixyLHtwbGFpbjp1LGJsb2NrOmkscm91bmQ6bCxzcXVhcmU6ZCxsb2FkaW5nOmYsZGlzYWJsZWQ6cCxoYWlybGluZTptfV0pLHtbSXJdOm19XSxzdHlsZTpzKCksZGlzYWJsZWQ6cCxvbkNsaWNrOmN9LHtkZWZhdWx0OigpPT5bRShgZGl2YCx7Y2xhc3M6d2koYGNvbnRlbnRgKX0sW2c9PT1gbGVmdGAmJmEoKSxvKCksZz09PWByaWdodGAmJmEoKV0pXX0pfX19KSksW0VpLERpXT1KKGBhY3Rpb24tYmFyLWJ1dHRvbmApLE9pPVkoUCh7bmFtZTpFaSxwcm9wczpJKHt9LFpyLHt0eXBlOlN0cmluZyx0ZXh0OlN0cmluZyxpY29uOlN0cmluZyxjb2xvcjpTdHJpbmcsbG9hZGluZzpCb29sZWFuLGRpc2FibGVkOkJvb2xlYW59KSxzZXR1cChlLHtzbG90czp0fSl7bGV0IG49JHIoKSx7cGFyZW50OnIsaW5kZXg6aX09eW4oWXIpLGE9TigoKT0+e2lmKHIpe2xldCBlPXIuY2hpbGRyZW5baS52YWx1ZS0xXTtyZXR1cm4hKGUmJmBpc0J1dHRvbmBpbiBlKX19KSxvPU4oKCk9PntpZihyKXtsZXQgZT1yLmNoaWxkcmVuW2kudmFsdWUrMV07cmV0dXJuIShlJiZgaXNCdXR0b25gaW4gZSl9fSk7cmV0dXJuIFgoe2lzQnV0dG9uOiEwfSksKCk9PntsZXR7dHlwZTpyLGljb246aSx0ZXh0OnMsY29sb3I6Yyxsb2FkaW5nOmwsZGlzYWJsZWQ6dX09ZTtyZXR1cm4gRShUaSx7Y2xhc3M6RGkoW3Ise2xhc3Q6by52YWx1ZSxmaXJzdDphLnZhbHVlfV0pLHNpemU6YGxhcmdlYCx0eXBlOnIsaWNvbjppLGNvbG9yOmMsbG9hZGluZzpsLGRpc2FibGVkOnUsb25DbGljazpufSx7ZGVmYXVsdDooKT0+W3QuZGVmYXVsdD90LmRlZmF1bHQoKTpzXX0pfX19KSksW2tpLEFpXT1KKGBhY3Rpb24tYmFyLWljb25gKSxqaT1ZKFAoe25hbWU6a2kscHJvcHM6SSh7fSxacix7ZG90OkJvb2xlYW4sdGV4dDpTdHJpbmcsaWNvbjpTdHJpbmcsY29sb3I6U3RyaW5nLGJhZGdlOnosaWNvbkNsYXNzOm51bGwsYmFkZ2VQcm9wczpPYmplY3QsaWNvblByZWZpeDpTdHJpbmcsZGlzYWJsZWQ6Qm9vbGVhbn0pLHNldHVwKGUse3Nsb3RzOnR9KXtsZXQgbj0kcigpO3luKFlyKTtsZXQgaT0oKT0+e2xldHtkb3Q6bixiYWRnZTppLGljb246YSxjb2xvcjpvLGljb25DbGFzczpzLGJhZGdlUHJvcHM6YyxpY29uUHJlZml4Omx9PWU7cmV0dXJuIHQuaWNvbj9FKG5pLHIoe2RvdDpuLGNsYXNzOkFpKGBpY29uYCksY29udGVudDppfSxjKSx7ZGVmYXVsdDp0Lmljb259KTpFKFose3RhZzpgZGl2YCxkb3Q6bixuYW1lOmEsYmFkZ2U6aSxjb2xvcjpvLGNsYXNzOltBaShgaWNvbmApLHNdLGJhZGdlUHJvcHM6YyxjbGFzc1ByZWZpeDpsfSxudWxsKX0sYT0oKT0+e2UuZGlzYWJsZWR8fG4oKX07cmV0dXJuKCk9PkUoYGRpdmAse3JvbGU6YGJ1dHRvbmAsY2xhc3M6QWkoe2Rpc2FibGVkOmUuZGlzYWJsZWR9KSx0YWJpbmRleDplLmRpc2FibGVkPy0xOjAsb25DbGljazphfSxbaSgpLHQuZGVmYXVsdD90LmRlZmF1bHQoKTplLnRleHRdKX19KSksTWk9e3Nob3c6Qm9vbGVhbix6SW5kZXg6eixvdmVybGF5OkIsZHVyYXRpb246eix0ZWxlcG9ydDpbU3RyaW5nLE9iamVjdF0sbG9ja1Njcm9sbDpCLGxhenlSZW5kZXI6QixiZWZvcmVDbG9zZTpGdW5jdGlvbixvdmVybGF5UHJvcHM6T2JqZWN0LG92ZXJsYXlTdHlsZTpPYmplY3Qsb3ZlcmxheUNsYXNzOm51bGwsdHJhbnNpdGlvbkFwcGVhcjpCb29sZWFuLGNsb3NlT25DbGlja092ZXJsYXk6Qn0sTmk9T2JqZWN0LmtleXMoTWkpO2Z1bmN0aW9uIFBpKGUsdCl7cmV0dXJuIGU+dD9gaG9yaXpvbnRhbGA6dD5lP2B2ZXJ0aWNhbGA6YGB9ZnVuY3Rpb24gRmkoKXtsZXQgZT1iKDApLHQ9YigwKSxuPWIoMCkscj1iKDApLGk9YigwKSxhPWIoMCksbz1iKGBgKSxzPWIoITApLGM9KCk9Pm8udmFsdWU9PT1gdmVydGljYWxgLGw9KCk9Pm8udmFsdWU9PT1gaG9yaXpvbnRhbGAsdT0oKT0+e24udmFsdWU9MCxyLnZhbHVlPTAsaS52YWx1ZT0wLGEudmFsdWU9MCxvLnZhbHVlPWBgLHMudmFsdWU9ITB9O3JldHVybnttb3ZlOihjPT57bGV0IGw9Yy50b3VjaGVzWzBdO24udmFsdWU9KGwuY2xpZW50WDwwPzA6bC5jbGllbnRYKS1lLnZhbHVlLHIudmFsdWU9bC5jbGllbnRZLXQudmFsdWUsaS52YWx1ZT1NYXRoLmFicyhuLnZhbHVlKSxhLnZhbHVlPU1hdGguYWJzKHIudmFsdWUpLCghby52YWx1ZXx8aS52YWx1ZTwxMCYmYS52YWx1ZTwxMCkmJihvLnZhbHVlPVBpKGkudmFsdWUsYS52YWx1ZSkpLHMudmFsdWUmJihpLnZhbHVlPjV8fGEudmFsdWU+NSkmJihzLnZhbHVlPSExKX0pLHN0YXJ0OihuPT57dSgpLGUudmFsdWU9bi50b3VjaGVzWzBdLmNsaWVudFgsdC52YWx1ZT1uLnRvdWNoZXNbMF0uY2xpZW50WX0pLHJlc2V0OnUsc3RhcnRYOmUsc3RhcnRZOnQsZGVsdGFYOm4sZGVsdGFZOnIsb2Zmc2V0WDppLG9mZnNldFk6YSxkaXJlY3Rpb246byxpc1ZlcnRpY2FsOmMsaXNIb3Jpem9udGFsOmwsaXNUYXA6c319dmFyIElpPTAsTGk9YHZhbi1vdmVyZmxvdy1oaWRkZW5gO2Z1bmN0aW9uIFJpKGUsdCl7bGV0IG49RmkoKSxyPXQ9PntuLm1vdmUodCk7bGV0IHI9bi5kZWx0YVkudmFsdWU+MD9gMTBgOmAwMWAse3Njcm9sbEhlaWdodDppLG9mZnNldEhlaWdodDphLHNjcm9sbFRvcDpvfT16bih0LnRhcmdldCxlLnZhbHVlKSxzPWAxMWA7bz09PTA/cz1hPj1pP2AwMGA6YDAxYDpvK2E+PWkmJihzPWAxMGApLHMhPT1gMTFgJiZuLmlzVmVydGljYWwoKSYmIShwYXJzZUludChzLDIpJnBhcnNlSW50KHIsMikpJiZLKHQsITApfSxpPSgpPT57ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihgdG91Y2hzdGFydGAsbi5zdGFydCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihgdG91Y2htb3ZlYCxyLHtwYXNzaXZlOiExfSksSWl8fGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChMaSksSWkrK30sbz0oKT0+e0lpJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihgdG91Y2hzdGFydGAsbi5zdGFydCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihgdG91Y2htb3ZlYCxyKSxJaS0tLElpfHxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoTGkpKX0scz0oKT0+dCgpJiZpKCksYz0oKT0+dCgpJiZvKCk7am4ocyksaChjKSxhKGMpLGYodCxlPT57ZT9pKCk6bygpfSl9ZnVuY3Rpb24gemkoZSl7bGV0IHQ9YighMSk7cmV0dXJuIGYoZSxlPT57ZSYmKHQudmFsdWU9ZSl9LHtpbW1lZGlhdGU6ITB9KSxlPT4oKT0+dC52YWx1ZT9lKCk6bnVsbH12YXIgQmk9KCk9PntsZXR7c2NvcGVJZDplfT1UZSgpPy52bm9kZXx8e307cmV0dXJuIGU/e1tlXTpgYH06bnVsbH0sW1ZpLEhpXT1KKGBvdmVybGF5YCksVWk9WShQKHtuYW1lOlZpLGluaGVyaXRBdHRyczohMSxwcm9wczp7c2hvdzpCb29sZWFuLHpJbmRleDp6LGR1cmF0aW9uOnosY2xhc3NOYW1lOm51bGwsbG9ja1Njcm9sbDpCLGxhenlSZW5kZXI6QixjdXN0b21TdHlsZTpPYmplY3QsdGVsZXBvcnQ6W1N0cmluZyxPYmplY3RdfSxzZXR1cChlLHthdHRyczp0LHNsb3RzOml9KXtsZXQgYT1iKCksbz16aSgoKT0+ZS5zaG93fHwhZS5sYXp5UmVuZGVyKSxzPXQ9PntlLmxvY2tTY3JvbGwmJksodCwhMCl9LGM9bygoKT0+e2xldCBvPUkoYXIoZS56SW5kZXgpLGUuY3VzdG9tU3R5bGUpO3JldHVybiBMKGUuZHVyYXRpb24pJiYoby5hbmltYXRpb25EdXJhdGlvbj1gJHtlLmR1cmF0aW9ufXNgKSxuKEUoYGRpdmAscih7cmVmOmEsc3R5bGU6byxjbGFzczpbSGkoKSxlLmNsYXNzTmFtZV19LHQpLFtpLmRlZmF1bHQ/LmNhbGwoaSldKSxbW2l0LGUuc2hvd11dKX0pO3JldHVybiBHKGB0b3VjaG1vdmVgLHMse3RhcmdldDphfSksKCk9PntsZXQgdD1FKEJlLHtuYW1lOmB2YW4tZmFkZWAsYXBwZWFyOiEwfSx7ZGVmYXVsdDpjfSk7cmV0dXJuIGUudGVsZXBvcnQ/RShmZSx7dG86ZS50ZWxlcG9ydH0se2RlZmF1bHQ6KCk9Plt0XX0pOnR9fX0pKSxXaT1JKHt9LE1pLHtyb3VuZDpCb29sZWFuLHBvc2l0aW9uOlUoYGNlbnRlcmApLGNsb3NlSWNvbjpVKGBjcm9zc2ApLGNsb3NlYWJsZTpCb29sZWFuLHRyYW5zaXRpb246U3RyaW5nLGljb25QcmVmaXg6U3RyaW5nLGNsb3NlT25Qb3BzdGF0ZTpCb29sZWFuLGNsb3NlSWNvblBvc2l0aW9uOlUoYHRvcC1yaWdodGApLGRlc3Ryb3lPbkNsb3NlOkJvb2xlYW4sc2FmZUFyZWFJbnNldFRvcDpCb29sZWFuLHNhZmVBcmVhSW5zZXRCb3R0b206Qm9vbGVhbn0pLFtHaSxLaV09SihgcG9wdXBgKSxxaT1ZKFAoe25hbWU6R2ksaW5oZXJpdEF0dHJzOiExLHByb3BzOldpLGVtaXRzOltgb3BlbmAsYGNsb3NlYCxgb3BlbmVkYCxgY2xvc2VkYCxga2V5ZG93bmAsYHVwZGF0ZTpzaG93YCxgY2xpY2tPdmVybGF5YCxgY2xpY2tDbG9zZUljb25gXSxzZXR1cChlLHtlbWl0OnQsYXR0cnM6aSxzbG90czphfSl7bGV0IG8scyxjPWIoKSxsPWIoKSx1PXppKCgpPT5lLnNob3d8fCFlLmxhenlSZW5kZXIpLGQ9TigoKT0+e2xldCB0PXt6SW5kZXg6Yy52YWx1ZX07aWYoTChlLmR1cmF0aW9uKSl7bGV0IG49ZS5wb3NpdGlvbj09PWBjZW50ZXJgP2BhbmltYXRpb25EdXJhdGlvbmA6YHRyYW5zaXRpb25EdXJhdGlvbmA7dFtuXT1gJHtlLmR1cmF0aW9ufXNgfXJldHVybiB0fSkscD0oKT0+e298fChvPSEwLGMudmFsdWU9ZS56SW5kZXg9PT12b2lkIDA/aWkoKTorZS56SW5kZXgsdChgb3BlbmApKX0sZz0oKT0+e28mJlZyKGUuYmVmb3JlQ2xvc2Use2RvbmUoKXtvPSExLHQoYGNsb3NlYCksdChgdXBkYXRlOnNob3dgLCExKX19KX0sXz1uPT57dChgY2xpY2tPdmVybGF5YCxuKSxlLmNsb3NlT25DbGlja092ZXJsYXkmJmcoKX0sdj0oKT0+e2lmKGUub3ZlcmxheSlyZXR1cm4gRShVaSxyKEkoe3Nob3c6ZS5zaG93LGNsYXNzOmUub3ZlcmxheUNsYXNzLHpJbmRleDpjLnZhbHVlLGR1cmF0aW9uOmUuZHVyYXRpb24sY3VzdG9tU3R5bGU6ZS5vdmVybGF5U3R5bGUscm9sZTplLmNsb3NlT25DbGlja092ZXJsYXk/YGJ1dHRvbmA6dm9pZCAwLHRhYmluZGV4OmUuY2xvc2VPbkNsaWNrT3ZlcmxheT8wOnZvaWQgMH0sZS5vdmVybGF5UHJvcHMpLEJpKCkse29uQ2xpY2s6X30pLHtkZWZhdWx0OmFbYG92ZXJsYXktY29udGVudGBdfSl9LHg9ZT0+e3QoYGNsaWNrQ2xvc2VJY29uYCxlKSxnKCl9LFM9KCk9PntpZihlLmNsb3NlYWJsZSlyZXR1cm4gRShaLHtyb2xlOmBidXR0b25gLHRhYmluZGV4OjAsbmFtZTplLmNsb3NlSWNvbixjbGFzczpbS2koYGNsb3NlLWljb25gLGUuY2xvc2VJY29uUG9zaXRpb24pLHpyXSxjbGFzc1ByZWZpeDplLmljb25QcmVmaXgsb25DbGljazp4fSxudWxsKX0sQyx3PSgpPT57QyYmY2xlYXJUaW1lb3V0KEMpLEM9c2V0VGltZW91dCgoKT0+e3QoYG9wZW5lZGApfSl9LFQ9KCk9PnQoYGNsb3NlZGApLE89ZT0+dChga2V5ZG93bmAsZSksaz11KCgpPT57bGV0e2Rlc3Ryb3lPbkNsb3NlOnQscm91bmQ6byxwb3NpdGlvbjpzLHNhZmVBcmVhSW5zZXRUb3A6YyxzYWZlQXJlYUluc2V0Qm90dG9tOnUsc2hvdzpmfT1lO2lmKCEoIWYmJnQpKXJldHVybiBuKEUoYGRpdmAscih7cmVmOmwsc3R5bGU6ZC52YWx1ZSxyb2xlOmBkaWFsb2dgLHRhYmluZGV4OjAsY2xhc3M6W0tpKHtyb3VuZDpvLFtzXTpzfSkseyJ2YW4tc2FmZS1hcmVhLXRvcCI6YywidmFuLXNhZmUtYXJlYS1ib3R0b20iOnV9XSxvbktleWRvd246T30saSxCaSgpKSxbYS5kZWZhdWx0Py5jYWxsKGEpLFMoKV0pLFtbaXQsZl1dKX0pLEE9KCk9PntsZXR7cG9zaXRpb246dCx0cmFuc2l0aW9uOm4sdHJhbnNpdGlvbkFwcGVhcjpyfT1lLGk9dD09PWBjZW50ZXJgP2B2YW4tZmFkZWA6YHZhbi1wb3B1cC1zbGlkZS0ke3R9YDtyZXR1cm4gRShCZSx7bmFtZTpufHxpLGFwcGVhcjpyLG9uQWZ0ZXJFbnRlcjp3LG9uQWZ0ZXJMZWF2ZTpUfSx7ZGVmYXVsdDprfSl9O3JldHVybiBmKCgpPT5lLnNob3csZT0+e2UmJiFvJiYocCgpLGkudGFiaW5kZXg9PT0wJiZGKCgpPT57dmFyIGU7KGU9bC52YWx1ZSk9PW51bGx8fGUuZm9jdXMoKX0pKSwhZSYmbyYmKG89ITEsdChgY2xvc2VgKSl9KSxYKHtwb3B1cFJlZjpsfSksUmkobCwoKT0+ZS5zaG93JiZlLmxvY2tTY3JvbGwpLEcoYHBvcHN0YXRlYCwoKT0+e2UuY2xvc2VPblBvcHN0YXRlJiYoZygpLHM9ITEpfSksTSgoKT0+e2Uuc2hvdyYmcCgpfSkseSgoKT0+e3MmJj0odChgdXBkYXRlOnNob3dgLCEwKSwhMSl9KSxoKCgpPT57ZS5zaG93JiZlLnRlbGVwb3J0JiYoZygpLHM9ITApfSksbShVciwoKT0+ZS5zaG93KSwoKT0+ZS50ZWxlcG9ydD9FKGZlLHt0bzplLnRlbGVwb3J0fSx7ZGVmYXVsdDooKT0+W3YoKSxBKCldfSk6RShELG51bGwsW3YoKSxBKCldKX19KSksW0ppLFlpXT1KKGBhY3Rpb24tc2hlZXRgKSxYaT1JKHt9LE1pLHt0aXRsZTpTdHJpbmcscm91bmQ6QixhY3Rpb25zOlYoKSxjbG9zZUljb246VShgY3Jvc3NgKSxjbG9zZWFibGU6QixjYW5jZWxUZXh0OlN0cmluZyxkZXNjcmlwdGlvbjpTdHJpbmcsY2xvc2VPblBvcHN0YXRlOkIsY2xvc2VPbkNsaWNrQWN0aW9uOkJvb2xlYW4sc2FmZUFyZWFJbnNldEJvdHRvbTpCfSksWmk9Wy4uLk5pLGByb3VuZGAsYGNsb3NlT25Qb3BzdGF0ZWAsYHNhZmVBcmVhSW5zZXRCb3R0b21gXSxRaT1ZKFAoe25hbWU6SmkscHJvcHM6WGksZW1pdHM6W2BzZWxlY3RgLGBjYW5jZWxgLGB1cGRhdGU6c2hvd2BdLHNldHVwKGUse3Nsb3RzOnQsZW1pdDpufSl7bGV0IGk9ZT0+bihgdXBkYXRlOnNob3dgLGUpLGE9KCk9PntpKCExKSxuKGBjYW5jZWxgKX0sbz0oKT0+e2lmKGUudGl0bGUpcmV0dXJuIEUoYGRpdmAse2NsYXNzOllpKGBoZWFkZXJgKX0sW2UudGl0bGUsZS5jbG9zZWFibGUmJkUoWix7bmFtZTplLmNsb3NlSWNvbixjbGFzczpbWWkoYGNsb3NlYCksYHZhbi1oYXB0aWNzLWZlZWRiYWNrYF0sb25DbGljazphfSxudWxsKV0pfSxzPSgpPT57aWYodC5jYW5jZWx8fGUuY2FuY2VsVGV4dClyZXR1cm5bRShgZGl2YCx7Y2xhc3M6WWkoYGdhcGApfSxudWxsKSxFKGBidXR0b25gLHt0eXBlOmBidXR0b25gLGNsYXNzOllpKGBjYW5jZWxgKSxvbkNsaWNrOmF9LFt0LmNhbmNlbD90LmNhbmNlbCgpOmUuY2FuY2VsVGV4dF0pXX0sYz1lPT57aWYoZS5pY29uKXJldHVybiBFKFose2NsYXNzOllpKGBpdGVtLWljb25gKSxuYW1lOmUuaWNvbn0sbnVsbCl9LGw9KGUsbik9PmUubG9hZGluZz9FKFNpLHtjbGFzczpZaShgbG9hZGluZy1pY29uYCl9LG51bGwpOnQuYWN0aW9uP3QuYWN0aW9uKHthY3Rpb246ZSxpbmRleDpufSk6W0UoYHNwYW5gLHtjbGFzczpZaShgbmFtZWApfSxbZS5uYW1lXSksZS5zdWJuYW1lJiZFKGBkaXZgLHtjbGFzczpZaShgc3VibmFtZWApfSxbZS5zdWJuYW1lXSldLHU9KHQscik9PntsZXR7Y29sb3I6YSxsb2FkaW5nOm8sY2FsbGJhY2s6cyxkaXNhYmxlZDp1LGNsYXNzTmFtZTpkfT10O3JldHVybiBFKGBidXR0b25gLHt0eXBlOmBidXR0b25gLHN0eWxlOntjb2xvcjphfSxjbGFzczpbWWkoYGl0ZW1gLHtsb2FkaW5nOm8sZGlzYWJsZWQ6dX0pLGRdLG9uQ2xpY2s6KCk9Pnt1fHxvfHwocyYmcyh0KSxlLmNsb3NlT25DbGlja0FjdGlvbiYmaSghMSksRigoKT0+bihgc2VsZWN0YCx0LHIpKSl9fSxbYyh0KSxsKHQscildKX0sZD0oKT0+e2lmKGUuZGVzY3JpcHRpb258fHQuZGVzY3JpcHRpb24pe2xldCBuPXQuZGVzY3JpcHRpb24/dC5kZXNjcmlwdGlvbigpOmUuZGVzY3JpcHRpb247cmV0dXJuIEUoYGRpdmAse2NsYXNzOllpKGBkZXNjcmlwdGlvbmApfSxbbl0pfX07cmV0dXJuKCk9PkUocWkscih7Y2xhc3M6WWkoKSxwb3NpdGlvbjpgYm90dG9tYCwib25VcGRhdGU6c2hvdyI6aX0sUihlLFppKSkse2RlZmF1bHQ6KCk9PltvKCksZCgpLEUoYGRpdmAse2NsYXNzOllpKGBjb250ZW50YCl9LFtlLmFjdGlvbnMubWFwKHUpLHQuZGVmYXVsdD8uY2FsbCh0KV0pLHMoKV19KX19KSksWyRpLGVhLHRhXT1KKGBwaWNrZXJgKSxuYT1lPT5lLmZpbmQoZT0+IWUuZGlzYWJsZWQpfHxlWzBdO2Z1bmN0aW9uIHJhKGUsdCl7bGV0IG49ZVswXTtpZihuKXtpZihBcnJheS5pc0FycmF5KG4pKXJldHVybmBtdWx0aXBsZWA7aWYodC5jaGlsZHJlbiBpbiBuKXJldHVybmBjYXNjYWRlYH1yZXR1cm5gZGVmYXVsdGB9ZnVuY3Rpb24gaWEoZSx0KXt0PWdyKHQsMCxlLmxlbmd0aCk7Zm9yKGxldCBuPXQ7bjxlLmxlbmd0aDtuKyspaWYoIWVbbl0uZGlzYWJsZWQpcmV0dXJuIG47Zm9yKGxldCBuPXQtMTtuPj0wO24tLSlpZighZVtuXS5kaXNhYmxlZClyZXR1cm4gbjtyZXR1cm4gMH12YXIgYWE9KGUsdCxuKT0+dCE9PXZvaWQgMCYmZS5zb21lKGU9PmVbbi52YWx1ZV09PT10KTtmdW5jdGlvbiBvYShlLHQsbil7cmV0dXJuIGVbaWEoZSxlLmZpbmRJbmRleChlPT5lW24udmFsdWVdPT09dCkpXX1mdW5jdGlvbiBzYShlLHQsbil7bGV0IHI9W10saT17W3QuY2hpbGRyZW5dOmV9LGE9MDtmb3IoO2kmJmlbdC5jaGlsZHJlbl07KXtsZXQgZT1pW3QuY2hpbGRyZW5dLG89bi52YWx1ZVthXTtpZihpPUwobyk/b2EoZSxvLHQpOnZvaWQgMCwhaSYmZS5sZW5ndGgpe2xldCBuPW5hKGUpW3QudmFsdWVdO2k9b2EoZSxuLHQpfWErKyxyLnB1c2goZSl9cmV0dXJuIHJ9ZnVuY3Rpb24gY2EoZSl7bGV0e3RyYW5zZm9ybTp0fT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKSxuPXQuc2xpY2UoNyx0Lmxlbmd0aC0xKS5zcGxpdChgLCBgKVs1XTtyZXR1cm4gTnVtYmVyKG4pfWZ1bmN0aW9uIGxhKGUpe3JldHVybiBJKHt0ZXh0OmB0ZXh0YCx2YWx1ZTpgdmFsdWVgLGNoaWxkcmVuOmBjaGlsZHJlbmB9LGUpfXZhciB1YT0yMDAsZGE9MzAwLGZhPTE1LFtwYSxtYV09SihgcGlja2VyLWNvbHVtbmApLGhhPVN5bWJvbChwYSksZ2E9UCh7bmFtZTpwYSxwcm9wczp7dmFsdWU6eixmaWVsZHM6dW4oT2JqZWN0KSxvcHRpb25zOlYoKSxyZWFkb25seTpCb29sZWFuLGFsbG93SHRtbDpCb29sZWFuLG9wdGlvbkhlaWdodDp1bihOdW1iZXIpLHN3aXBlRHVyYXRpb246dW4oeiksdmlzaWJsZU9wdGlvbk51bTp1bih6KX0sZW1pdHM6W2BjaGFuZ2VgLGBjbGlja09wdGlvbmAsYHNjcm9sbEludG9gXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCByLGksYSxvLHMsYz1iKCksbD1iKCksdT1iKDApLGQ9YigwKSxmPUZpKCkscD0oKT0+ZS5vcHRpb25zLmxlbmd0aCxtPSgpPT5lLm9wdGlvbkhlaWdodCooZS52aXNpYmxlT3B0aW9uTnVtLTEpLzIsaD1uPT57bGV0IGk9aWEoZS5vcHRpb25zLG4pLGE9LWkqZS5vcHRpb25IZWlnaHQsbz0oKT0+e2k+cCgpLTEmJihpPWlhKGUub3B0aW9ucyxuKSk7bGV0IHI9ZS5vcHRpb25zW2ldW2UuZmllbGRzLnZhbHVlXTtyIT09ZS52YWx1ZSYmdChgY2hhbmdlYCxyKX07ciYmYSE9PXUudmFsdWU/cz1vOm8oKSx1LnZhbHVlPWF9LGc9KCk9PmUucmVhZG9ubHl8fCFlLm9wdGlvbnMubGVuZ3RoLHY9bj0+e3J8fGcoKXx8KHM9bnVsbCxkLnZhbHVlPXVhLGgobiksdChgY2xpY2tPcHRpb25gLGUub3B0aW9uc1tuXSkpfSx5PXQ9PmdyKE1hdGgucm91bmQoLXQvZS5vcHRpb25IZWlnaHQpLDAscCgpLTEpLHg9TigoKT0+eSh1LnZhbHVlKSksUz0odCxuKT0+e2xldCByPU1hdGguYWJzKHQvbik7dD11LnZhbHVlK3IvLjAwMyoodDwwPy0xOjEpO2xldCBpPXkodCk7ZC52YWx1ZT0rZS5zd2lwZUR1cmF0aW9uLGgoaSl9LEM9KCk9PntyPSExLGQudmFsdWU9MCxzJiY9KHMoKSxudWxsKX0sdz1lPT57aWYoIWcoKSl7aWYoZi5zdGFydChlKSxyKXtsZXQgZT1jYShsLnZhbHVlKTt1LnZhbHVlPU1hdGgubWluKDAsZS1tKCkpfWQudmFsdWU9MCxpPXUudmFsdWUsYT1EYXRlLm5vdygpLG89aSxzPW51bGx9fSxUPW49PntpZihnKCkpcmV0dXJuO2YubW92ZShuKSxmLmlzVmVydGljYWwoKSYmKHI9ITAsSyhuLCEwKSk7bGV0IHM9Z3IoaStmLmRlbHRhWS52YWx1ZSwtKHAoKSplLm9wdGlvbkhlaWdodCksZS5vcHRpb25IZWlnaHQpLGM9eShzKTtjIT09eC52YWx1ZSYmdChgc2Nyb2xsSW50b2AsZS5vcHRpb25zW2NdKSx1LnZhbHVlPXM7bGV0IGw9RGF0ZS5ub3coKTtsLWE+ZGEmJihhPWwsbz1zKX0sRD0oKT0+e2lmKGcoKSlyZXR1cm47bGV0IGU9dS52YWx1ZS1vLHQ9RGF0ZS5ub3coKS1hO2lmKHQ8ZGEmJk1hdGguYWJzKGUpPmZhKXtTKGUsdCk7cmV0dXJufWxldCBuPXkodS52YWx1ZSk7ZC52YWx1ZT11YSxoKG4pLHNldFRpbWVvdXQoKCk9PntyPSExfSwwKX0sTz0oKT0+e2xldCB0PXtoZWlnaHQ6YCR7ZS5vcHRpb25IZWlnaHR9cHhgfTtyZXR1cm4gZS5vcHRpb25zLm1hcCgocixpKT0+e2xldCBhPXJbZS5maWVsZHMudGV4dF0se2Rpc2FibGVkOm99PXIscz1yW2UuZmllbGRzLnZhbHVlXSxjPXtyb2xlOmBidXR0b25gLHN0eWxlOnQsdGFiaW5kZXg6bz8tMTowLGNsYXNzOlttYShgaXRlbWAse2Rpc2FibGVkOm8sc2VsZWN0ZWQ6cz09PWUudmFsdWV9KSxyLmNsYXNzTmFtZV0sb25DbGljazooKT0+dihpKX0sbD17Y2xhc3M6YHZhbi1lbGxpcHNpc2AsW2UuYWxsb3dIdG1sP2Bpbm5lckhUTUxgOmB0ZXh0Q29udGVudGBdOmF9O3JldHVybiBFKGBsaWAsYyxbbi5vcHRpb24/bi5vcHRpb24ocixpKTpFKGBkaXZgLGwsbnVsbCldKX0pfTtyZXR1cm4geW4oaGEpLFgoe3N0b3BNb21lbnR1bTpDfSksXygoKT0+e2xldCB0PXI/TWF0aC5mbG9vcigtdS52YWx1ZS9lLm9wdGlvbkhlaWdodCk6ZS5vcHRpb25zLmZpbmRJbmRleCh0PT50W2UuZmllbGRzLnZhbHVlXT09PWUudmFsdWUpLG49aWEoZS5vcHRpb25zLHQpLGk9LW4qZS5vcHRpb25IZWlnaHQ7ciYmbjx0JiZDKCksdS52YWx1ZT1pfSksRyhgdG91Y2htb3ZlYCxULHt0YXJnZXQ6Y30pLCgpPT5FKGBkaXZgLHtyZWY6YyxjbGFzczptYSgpLG9uVG91Y2hzdGFydFBhc3NpdmU6dyxvblRvdWNoZW5kOkQsb25Ub3VjaGNhbmNlbDpEfSxbRShgdWxgLHtyZWY6bCxzdHlsZTp7dHJhbnNmb3JtOmB0cmFuc2xhdGUzZCgwLCAke3UudmFsdWUrbSgpfXB4LCAwKWAsdHJhbnNpdGlvbkR1cmF0aW9uOmAke2QudmFsdWV9bXNgLHRyYW5zaXRpb25Qcm9wZXJ0eTpkLnZhbHVlP2BhbGxgOmBub25lYH0sY2xhc3M6bWEoYHdyYXBwZXJgKSxvblRyYW5zaXRpb25lbmQ6Q30sW08oKV0pXSl9fSksW19hXT1KKGBwaWNrZXItdG9vbGJhcmApLHZhPXt0aXRsZTpTdHJpbmcsY2FuY2VsQnV0dG9uVGV4dDpTdHJpbmcsY29uZmlybUJ1dHRvblRleHQ6U3RyaW5nfSx5YT1bYGNhbmNlbGAsYGNvbmZpcm1gLGB0aXRsZWAsYHRvb2xiYXJgXSxiYT1PYmplY3Qua2V5cyh2YSkseGE9UCh7bmFtZTpfYSxwcm9wczp2YSxlbWl0czpbYGNvbmZpcm1gLGBjYW5jZWxgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCByPSgpPT57aWYobi50aXRsZSlyZXR1cm4gbi50aXRsZSgpO2lmKGUudGl0bGUpcmV0dXJuIEUoYGRpdmAse2NsYXNzOltlYShgdGl0bGVgKSxgdmFuLWVsbGlwc2lzYF19LFtlLnRpdGxlXSl9LGk9KCk9PnQoYGNhbmNlbGApLGE9KCk9PnQoYGNvbmZpcm1gKSxvPSgpPT57bGV0IHQ9ZS5jYW5jZWxCdXR0b25UZXh0Pz90YShgY2FuY2VsYCk7aWYoISghbi5jYW5jZWwmJiF0KSlyZXR1cm4gRShgYnV0dG9uYCx7dHlwZTpgYnV0dG9uYCxjbGFzczpbZWEoYGNhbmNlbGApLHpyXSxvbkNsaWNrOml9LFtuLmNhbmNlbD9uLmNhbmNlbCgpOnRdKX0scz0oKT0+e2xldCB0PWUuY29uZmlybUJ1dHRvblRleHQ/P3RhKGBjb25maXJtYCk7aWYoISghbi5jb25maXJtJiYhdCkpcmV0dXJuIEUoYGJ1dHRvbmAse3R5cGU6YGJ1dHRvbmAsY2xhc3M6W2VhKGBjb25maXJtYCksenJdLG9uQ2xpY2s6YX0sW24uY29uZmlybT9uLmNvbmZpcm0oKTp0XSl9O3JldHVybigpPT5FKGBkaXZgLHtjbGFzczplYShgdG9vbGJhcmApfSxbbi50b29sYmFyP24udG9vbGJhcigpOltvKCkscigpLHMoKV1dKX19KSxTYT0oZSx0KT0+e2xldCBuPWIoZSgpKTtyZXR1cm4gZihlLGU9PntlIT09bi52YWx1ZSYmKG4udmFsdWU9ZSl9KSxmKG4sbj0+e24hPT1lKCkmJnQobil9KSxufTtmdW5jdGlvbiBDYShlLHQsbil7bGV0IHIsaT0wLGE9ZS5zY3JvbGxMZWZ0LG89bj09PTA/MTpNYXRoLnJvdW5kKG4qMWUzLzE2KSxzPWE7ZnVuY3Rpb24gYygpe21uKHIpfWZ1bmN0aW9uIGwoKXtzKz0odC1hKS9vLGUuc2Nyb2xsTGVmdD1zLCsraTxvJiYocj1wbihsKSl9cmV0dXJuIGwoKSxjfWZ1bmN0aW9uIHdhKGUsdCxuLHIpe2xldCBpLGE9R24oZSksbz1hPHQscz1uPT09MD8xOk1hdGgucm91bmQobioxZTMvMTYpLGM9KHQtYSkvcztmdW5jdGlvbiBsKCl7bW4oaSl9ZnVuY3Rpb24gdSgpe2ErPWMsKG8mJmE+dHx8IW8mJmE8dCkmJihhPXQpLEtuKGUsYSksbyYmYTx0fHwhbyYmYT50P2k9cG4odSk6ciYmKGk9cG4ocikpfXJldHVybiB1KCksbH12YXIgVGE9MDtmdW5jdGlvbiBFYSgpe2xldHtuYW1lOmU9YHVua25vd25gfT1UZSgpPy50eXBlfHx7fTtyZXR1cm5gJHtlfS0keysrVGF9YH1mdW5jdGlvbiBEYSgpe2xldCBlPWIoW10pLHQ9W107cmV0dXJuIGkoKCk9PntlLnZhbHVlPVtdfSksW2Usbj0+KHRbbl18fCh0W25dPXQ9PntlLnZhbHVlW25dPXR9KSx0W25dKV19ZnVuY3Rpb24gT2EoZSx0KXtpZighWnR8fCF3aW5kb3cuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpcmV0dXJuO2xldCBuPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihlPT57dChlWzBdLmludGVyc2VjdGlvblJhdGlvPjApfSx7cm9vdDpkb2N1bWVudC5ib2R5fSkscj0oKT0+e2UudmFsdWUmJm4ub2JzZXJ2ZShlLnZhbHVlKX0saT0oKT0+e2UudmFsdWUmJm4udW5vYnNlcnZlKGUudmFsdWUpfTtoKGkpLGEoaSksam4ocil9dmFyW2thLEFhXT1KKGBzdGlja3lgKSxqYT1ZKFAoe25hbWU6a2EscHJvcHM6e3pJbmRleDp6LHBvc2l0aW9uOlUoYHRvcGApLGNvbnRhaW5lcjpPYmplY3Qsb2Zmc2V0VG9wOkgoMCksb2Zmc2V0Qm90dG9tOkgoMCl9LGVtaXRzOltgc2Nyb2xsYCxgY2hhbmdlYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXQgcj1iKCksaT1CbihyKSxhPWMoe2ZpeGVkOiExLHdpZHRoOjAsaGVpZ2h0OjAsdHJhbnNmb3JtOjB9KSxvPWIoITEpLHM9TigoKT0+ZHIoZS5wb3NpdGlvbj09PWB0b3BgP2Uub2Zmc2V0VG9wOmUub2Zmc2V0Qm90dG9tKSksbD1OKCgpPT57aWYoby52YWx1ZSlyZXR1cm47bGV0e2ZpeGVkOmUsaGVpZ2h0OnQsd2lkdGg6bn09YTtpZihlKXJldHVybnt3aWR0aDpgJHtufXB4YCxoZWlnaHQ6YCR7dH1weGB9fSksdT1OKCgpPT57aWYoIWEuZml4ZWR8fG8udmFsdWUpcmV0dXJuO2xldCB0PUkoYXIoZS56SW5kZXgpLHt3aWR0aDpgJHthLndpZHRofXB4YCxoZWlnaHQ6YCR7YS5oZWlnaHR9cHhgLFtlLnBvc2l0aW9uXTpgJHtzLnZhbHVlfXB4YH0pO3JldHVybiBhLnRyYW5zZm9ybSYmKHQudHJhbnNmb3JtPWB0cmFuc2xhdGUzZCgwLCAke2EudHJhbnNmb3JtfXB4LCAwKWApLHR9KSxkPWU9PnQoYHNjcm9sbGAse3Njcm9sbFRvcDplLGlzRml4ZWQ6YS5maXhlZH0pLHA9KCk9PntpZighci52YWx1ZXx8JG4ocikpcmV0dXJuO2xldHtjb250YWluZXI6dCxwb3NpdGlvbjpufT1lLGk9VyhyKSxvPUduKHdpbmRvdyk7aWYoYS53aWR0aD1pLndpZHRoLGEuaGVpZ2h0PWkuaGVpZ2h0LG49PT1gdG9wYClpZih0KXtsZXQgZT1XKHQpLG49ZS5ib3R0b20tcy52YWx1ZS1hLmhlaWdodDthLmZpeGVkPXMudmFsdWU+aS50b3AmJmUuYm90dG9tPjAsYS50cmFuc2Zvcm09bjwwP246MH1lbHNlIGEuZml4ZWQ9cy52YWx1ZT5pLnRvcDtlbHNle2xldHtjbGllbnRIZWlnaHQ6ZX09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2lmKHQpe2xldCBuPVcodCkscj1lLW4udG9wLXMudmFsdWUtYS5oZWlnaHQ7YS5maXhlZD1lLXMudmFsdWU8aS5ib3R0b20mJmU+bi50b3AsYS50cmFuc2Zvcm09cjwwPy1yOjB9ZWxzZSBhLmZpeGVkPWUtcy52YWx1ZTxpLmJvdHRvbX1kKG8pfTtyZXR1cm4gZigoKT0+YS5maXhlZCxlPT50KGBjaGFuZ2VgLGUpKSxHKGBzY3JvbGxgLHAse3RhcmdldDppLHBhc3NpdmU6ITB9KSxPYShyLHApLGYoW2VyLHRyXSwoKT0+eyFyLnZhbHVlfHwkbihyKXx8IWEuZml4ZWR8fChvLnZhbHVlPSEwLEYoKCk9PntsZXQgZT1XKHIpO2Eud2lkdGg9ZS53aWR0aCxhLmhlaWdodD1lLmhlaWdodCxvLnZhbHVlPSExfSkpfSksKCk9PkUoYGRpdmAse3JlZjpyLHN0eWxlOmwudmFsdWV9LFtFKGBkaXZgLHtjbGFzczpBYSh7Zml4ZWQ6YS5maXhlZCYmIW8udmFsdWV9KSxzdHlsZTp1LnZhbHVlfSxbbi5kZWZhdWx0Py5jYWxsKG4pXSldKX19KSksW01hLE5hXT1KKGBzd2lwZWApLFBhPXtsb29wOkIsd2lkdGg6eixoZWlnaHQ6eix2ZXJ0aWNhbDpCb29sZWFuLGF1dG9wbGF5OkgoMCksZHVyYXRpb246SCg1MDApLHRvdWNoYWJsZTpCLGxhenlSZW5kZXI6Qm9vbGVhbixpbml0aWFsU3dpcGU6SCgwKSxpbmRpY2F0b3JDb2xvcjpTdHJpbmcsc2hvd0luZGljYXRvcnM6QixzdG9wUHJvcGFnYXRpb246Qn0sRmE9U3ltYm9sKE1hKSxJYT1ZKFAoe25hbWU6TWEscHJvcHM6UGEsZW1pdHM6W2BjaGFuZ2VgLGBkcmFnU3RhcnRgLGBkcmFnRW5kYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXQgcj1iKCksaT1iKCksbz1jKHtyZWN0Om51bGwsd2lkdGg6MCxoZWlnaHQ6MCxvZmZzZXQ6MCxhY3RpdmU6MCxzd2lwaW5nOiExfSkscz0hMSxsPUZpKCkse2NoaWxkcmVuOnUsbGlua0NoaWxkcmVuOmR9PUNuKEZhKSxwPU4oKCk9PnUubGVuZ3RoKSxtPU4oKCk9Pm9bZS52ZXJ0aWNhbD9gaGVpZ2h0YDpgd2lkdGhgXSksZz1OKCgpPT5lLnZlcnRpY2FsP2wuZGVsdGFZLnZhbHVlOmwuZGVsdGFYLnZhbHVlKSxfPU4oKCk9Pm8ucmVjdD8oZS52ZXJ0aWNhbD9vLnJlY3QuaGVpZ2h0Om8ucmVjdC53aWR0aCktbS52YWx1ZSpwLnZhbHVlOjApLHY9TigoKT0+bS52YWx1ZT9NYXRoLmNlaWwoTWF0aC5hYnMoXy52YWx1ZSkvbS52YWx1ZSk6cC52YWx1ZSkseD1OKCgpPT5wLnZhbHVlKm0udmFsdWUpLFM9TigoKT0+KG8uYWN0aXZlK3AudmFsdWUpJXAudmFsdWUpLEM9TigoKT0+e2xldCB0PWUudmVydGljYWw/YHZlcnRpY2FsYDpgaG9yaXpvbnRhbGA7cmV0dXJuIGwuZGlyZWN0aW9uLnZhbHVlPT09dH0pLHc9TigoKT0+e2xldCB0PXt0cmFuc2l0aW9uRHVyYXRpb246YCR7by5zd2lwaW5nPzA6ZS5kdXJhdGlvbn1tc2AsdHJhbnNmb3JtOmB0cmFuc2xhdGUke2UudmVydGljYWw/YFlgOmBYYH0oJHsrby5vZmZzZXQudG9GaXhlZCgyKX1weClgfTtpZihtLnZhbHVlKXtsZXQgbj1lLnZlcnRpY2FsP2BoZWlnaHRgOmB3aWR0aGAscj1lLnZlcnRpY2FsP2B3aWR0aGA6YGhlaWdodGA7dFtuXT1gJHt4LnZhbHVlfXB4YCx0W3JdPWVbcl0/YCR7ZVtyXX1weGA6YGB9cmV0dXJuIHR9KSxUPXQ9PntsZXR7YWN0aXZlOm59PW87cmV0dXJuIHQ/ZS5sb29wP2dyKG4rdCwtMSxwLnZhbHVlKTpncihuK3QsMCx2LnZhbHVlKTpufSxEPSh0LG49MCk9PntsZXQgcj10Km0udmFsdWU7ZS5sb29wfHwocj1NYXRoLm1pbihyLC1fLnZhbHVlKSk7bGV0IGk9bi1yO3JldHVybiBlLmxvb3B8fChpPWdyKGksXy52YWx1ZSwwKSksaX0sTz0oe3BhY2U6bj0wLG9mZnNldDpyPTAsZW1pdENoYW5nZTppfSk9PntpZihwLnZhbHVlPD0xKXJldHVybjtsZXR7YWN0aXZlOmF9PW8scz1UKG4pLGM9RChzLHIpO2lmKGUubG9vcCl7aWYodVswXSYmYyE9PV8udmFsdWUpe2xldCBlPWM8Xy52YWx1ZTt1WzBdLnNldE9mZnNldChlP3gudmFsdWU6MCl9aWYodVtwLnZhbHVlLTFdJiZjIT09MCl7bGV0IGU9Yz4wO3VbcC52YWx1ZS0xXS5zZXRPZmZzZXQoZT8teC52YWx1ZTowKX19by5hY3RpdmU9cyxvLm9mZnNldD1jLGkmJnMhPT1hJiZ0KGBjaGFuZ2VgLFMudmFsdWUpfSxrPSgpPT57by5zd2lwaW5nPSEwLG8uYWN0aXZlPD0tMT9PKHtwYWNlOnAudmFsdWV9KTpvLmFjdGl2ZT49cC52YWx1ZSYmTyh7cGFjZTotcC52YWx1ZX0pfSxBPSgpPT57aygpLGwucmVzZXQoKSxobigoKT0+e28uc3dpcGluZz0hMSxPKHtwYWNlOi0xLGVtaXRDaGFuZ2U6ITB9KX0pfSxqPSgpPT57aygpLGwucmVzZXQoKSxobigoKT0+e28uc3dpcGluZz0hMSxPKHtwYWNlOjEsZW1pdENoYW5nZTohMH0pfSl9LGVlLHRlPSgpPT5jbGVhclRpbWVvdXQoZWUpLG5lPSgpPT57dGUoKSwrZS5hdXRvcGxheT4wJiZwLnZhbHVlPjEmJihlZT1zZXRUaW1lb3V0KCgpPT57aigpLG5lKCl9LCtlLmF1dG9wbGF5KSl9LHJlPSh0PStlLmluaXRpYWxTd2lwZSk9PntpZighci52YWx1ZSlyZXR1cm47bGV0IG49KCk9PntpZighJG4ocikpe2xldCB0PXt3aWR0aDpyLnZhbHVlLm9mZnNldFdpZHRoLGhlaWdodDpyLnZhbHVlLm9mZnNldEhlaWdodH07by5yZWN0PXQsby53aWR0aD0rKGUud2lkdGg/P3Qud2lkdGgpLG8uaGVpZ2h0PSsoZS5oZWlnaHQ/P3QuaGVpZ2h0KX1wLnZhbHVlJiYodD1NYXRoLm1pbihwLnZhbHVlLTEsdCksdD09PS0xJiYodD1wLnZhbHVlLTEpKSxvLmFjdGl2ZT10LG8uc3dpcGluZz0hMCxvLm9mZnNldD1EKHQpLHUuZm9yRWFjaChlPT57ZS5zZXRPZmZzZXQoMCl9KSxuZSgpfTskbihyKT9GKCkudGhlbihuKTpuKCl9LGllPSgpPT5yZShvLmFjdGl2ZSksYWUsb2U9dD0+eyFlLnRvdWNoYWJsZXx8dC50b3VjaGVzLmxlbmd0aD4xfHwobC5zdGFydCh0KSxzPSExLGFlPURhdGUubm93KCksdGUoKSxrKCkpfSxzZT1uPT57ZS50b3VjaGFibGUmJm8uc3dpcGluZyYmKGwubW92ZShuKSxDLnZhbHVlJiYoIWUubG9vcCYmKG8uYWN0aXZlPT09MCYmZy52YWx1ZT4wfHxvLmFjdGl2ZT09PXAudmFsdWUtMSYmZy52YWx1ZTwwKXx8KEsobixlLnN0b3BQcm9wYWdhdGlvbiksTyh7b2Zmc2V0OmcudmFsdWV9KSxzfHw9KHQoYGRyYWdTdGFydGAse2luZGV4OlMudmFsdWV9KSwhMCkpKSl9LGNlPSgpPT57aWYoIWUudG91Y2hhYmxlfHwhby5zd2lwaW5nKXJldHVybjtsZXQgbj1EYXRlLm5vdygpLWFlLHI9Zy52YWx1ZS9uO2lmKChNYXRoLmFicyhyKT4uMjV8fE1hdGguYWJzKGcudmFsdWUpPm0udmFsdWUvMikmJkMudmFsdWUpe2xldCB0PWUudmVydGljYWw/bC5vZmZzZXRZLnZhbHVlOmwub2Zmc2V0WC52YWx1ZSxuPTA7bj1lLmxvb3A/dD4wP2cudmFsdWU+MD8tMToxOjA6LU1hdGhbZy52YWx1ZT4wP2BjZWlsYDpgZmxvb3JgXShnLnZhbHVlL20udmFsdWUpLE8oe3BhY2U6bixlbWl0Q2hhbmdlOiEwfSl9ZWxzZSBnLnZhbHVlJiZPKHtwYWNlOjB9KTtzPSExLG8uc3dpcGluZz0hMSx0KGBkcmFnRW5kYCx7aW5kZXg6Uy52YWx1ZX0pLG5lKCl9LGxlPSh0LG49e30pPT57aygpLGwucmVzZXQoKSxobigoKT0+e2xldCByO3I9ZS5sb29wJiZ0PT09cC52YWx1ZT9vLmFjdGl2ZT09PTA/MDp0OnQlcC52YWx1ZSxuLmltbWVkaWF0ZT9obigoKT0+e28uc3dpcGluZz0hMX0pOm8uc3dpcGluZz0hMSxPKHtwYWNlOnItby5hY3RpdmUsZW1pdENoYW5nZTohMH0pfSl9LHVlPSh0LG4pPT57bGV0IHI9bj09PVMudmFsdWU7cmV0dXJuIEUoYGlgLHtzdHlsZTpyP3tiYWNrZ3JvdW5kQ29sb3I6ZS5pbmRpY2F0b3JDb2xvcn06dm9pZCAwLGNsYXNzOk5hKGBpbmRpY2F0b3JgLHthY3RpdmU6cn0pfSxudWxsKX0sZGU9KCk9PntpZihuLmluZGljYXRvcilyZXR1cm4gbi5pbmRpY2F0b3Ioe2FjdGl2ZTpTLnZhbHVlLHRvdGFsOnAudmFsdWV9KTtpZihlLnNob3dJbmRpY2F0b3JzJiZwLnZhbHVlPjEpcmV0dXJuIEUoYGRpdmAse2NsYXNzOk5hKGBpbmRpY2F0b3JzYCx7dmVydGljYWw6ZS52ZXJ0aWNhbH0pfSxbQXJyYXkocC52YWx1ZSkuZmlsbChgYCkubWFwKHVlKV0pfTtyZXR1cm4gWCh7cHJldjpBLG5leHQ6aixzdGF0ZTpvLHJlc2l6ZTppZSxzd2lwZVRvOmxlfSksZCh7c2l6ZTptLHByb3BzOmUsY291bnQ6cCxhY3RpdmVJbmRpY2F0b3I6U30pLGYoKCk9PmUuaW5pdGlhbFN3aXBlLGU9PnJlKCtlKSksZihwLCgpPT5yZShvLmFjdGl2ZSkpLGYoKCk9PmUuYXV0b3BsYXksbmUpLGYoW2VyLHRyLCgpPT5lLndpZHRoLCgpPT5lLmhlaWdodF0saWUpLGYoSG4oKSxlPT57ZT09PWB2aXNpYmxlYD9uZSgpOnRlKCl9KSxNKHJlKSx5KCgpPT5yZShvLmFjdGl2ZSkpLFdyKCgpPT5yZShvLmFjdGl2ZSkpLGgodGUpLGEodGUpLEcoYHRvdWNobW92ZWAsc2Use3RhcmdldDppfSksKCk9PkUoYGRpdmAse3JlZjpyLGNsYXNzOk5hKCl9LFtFKGBkaXZgLHtyZWY6aSxzdHlsZTp3LnZhbHVlLGNsYXNzOk5hKGB0cmFja2Ase3ZlcnRpY2FsOmUudmVydGljYWx9KSxvblRvdWNoc3RhcnRQYXNzaXZlOm9lLG9uVG91Y2hlbmQ6Y2Usb25Ub3VjaGNhbmNlbDpjZX0sW24uZGVmYXVsdD8uY2FsbChuKV0pLGRlKCldKX19KSksW0xhLFJhXT1KKGB0YWJzYCksemE9UCh7bmFtZTpMYSxwcm9wczp7Y291bnQ6dW4oTnVtYmVyKSxpbml0ZWQ6Qm9vbGVhbixhbmltYXRlZDpCb29sZWFuLGR1cmF0aW9uOnVuKHopLHN3aXBlYWJsZTpCb29sZWFuLGxhenlSZW5kZXI6Qm9vbGVhbixjdXJyZW50SW5kZXg6dW4oTnVtYmVyKX0sZW1pdHM6W2BjaGFuZ2VgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCByPWIoKSxpPWU9PnQoYGNoYW5nZWAsZSksYT0oKT0+e2xldCB0PW4uZGVmYXVsdD8uY2FsbChuKTtyZXR1cm4gZS5hbmltYXRlZHx8ZS5zd2lwZWFibGU/RShJYSx7cmVmOnIsbG9vcDohMSxjbGFzczpSYShgdHJhY2tgKSxkdXJhdGlvbjplLmR1cmF0aW9uKjFlMyx0b3VjaGFibGU6ZS5zd2lwZWFibGUsbGF6eVJlbmRlcjplLmxhenlSZW5kZXIsc2hvd0luZGljYXRvcnM6ITEsb25DaGFuZ2U6aX0se2RlZmF1bHQ6KCk9Plt0XX0pOnR9LG89dD0+e2xldCBuPXIudmFsdWU7biYmbi5zdGF0ZS5hY3RpdmUhPT10JiZuLnN3aXBlVG8odCx7aW1tZWRpYXRlOiFlLmluaXRlZH0pfTtyZXR1cm4gZigoKT0+ZS5jdXJyZW50SW5kZXgsbyksTSgoKT0+e28oZS5jdXJyZW50SW5kZXgpfSksWCh7c3dpcGVSZWY6cn0pLCgpPT5FKGBkaXZgLHtjbGFzczpSYShgY29udGVudGAse2FuaW1hdGVkOmUuYW5pbWF0ZWR8fGUuc3dpcGVhYmxlfSl9LFthKCldKX19KSxbQmEsVmFdPUooYHRhYnNgKSxIYT17dHlwZTpVKGBsaW5lYCksY29sb3I6U3RyaW5nLGJvcmRlcjpCb29sZWFuLHN0aWNreTpCb29sZWFuLHNocmluazpCb29sZWFuLGFjdGl2ZTpIKDApLGR1cmF0aW9uOkgoLjMpLGFuaW1hdGVkOkJvb2xlYW4sZWxsaXBzaXM6Qixzd2lwZWFibGU6Qm9vbGVhbixzY3JvbGxzcHk6Qm9vbGVhbixvZmZzZXRUb3A6SCgwKSxiYWNrZ3JvdW5kOlN0cmluZyxsYXp5UmVuZGVyOkIsc2hvd0hlYWRlcjpCLGxpbmVXaWR0aDp6LGxpbmVIZWlnaHQ6eixiZWZvcmVDaGFuZ2U6RnVuY3Rpb24sc3dpcGVUaHJlc2hvbGQ6SCg1KSx0aXRsZUFjdGl2ZUNvbG9yOlN0cmluZyx0aXRsZUluYWN0aXZlQ29sb3I6U3RyaW5nfSxVYT1TeW1ib2woQmEpLFdhPVAoe25hbWU6QmEscHJvcHM6SGEsZW1pdHM6W2BjaGFuZ2VgLGBzY3JvbGxgLGByZW5kZXJlZGAsYGNsaWNrVGFiYCxgdXBkYXRlOmFjdGl2ZWBdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7bGV0IHIsaSxhLG8scyxsPWIoKSx1PWIoKSxkPWIoKSxwPWIoKSxtPUVhKCksaD1CbihsKSxbZyxfXT1EYSgpLHtjaGlsZHJlbjp2LGxpbmtDaGlsZHJlbjp4fT1DbihVYSksUz1jKHtpbml0ZWQ6ITEscG9zaXRpb246YGAsbGluZVN0eWxlOnt9LGN1cnJlbnRJbmRleDotMX0pLEM9TigoKT0+di5sZW5ndGg+K2Uuc3dpcGVUaHJlc2hvbGR8fCFlLmVsbGlwc2lzfHxlLnNocmluayksdz1OKCgpPT4oe2JvcmRlckNvbG9yOmUuY29sb3IsYmFja2dyb3VuZDplLmJhY2tncm91bmR9KSksVD0oZSx0KT0+ZS5uYW1lPz90LEQ9TigoKT0+e2xldCBlPXZbUy5jdXJyZW50SW5kZXhdO2lmKGUpcmV0dXJuIFQoZSxTLmN1cnJlbnRJbmRleCl9KSxPPU4oKCk9PmRyKGUub2Zmc2V0VG9wKSksaz1OKCgpPT5lLnN0aWNreT9PLnZhbHVlK3I6MCksQT10PT57bGV0IG49dS52YWx1ZSxyPWcudmFsdWU7aWYoIUMudmFsdWV8fCFufHwhcnx8IXJbUy5jdXJyZW50SW5kZXhdKXJldHVybjtsZXQgaT1yW1MuY3VycmVudEluZGV4XS4kZWwsYT1pLm9mZnNldExlZnQtKG4ub2Zmc2V0V2lkdGgtaS5vZmZzZXRXaWR0aCkvMjtvJiZvKCksbz1DYShuLGEsdD8wOitlLmR1cmF0aW9uKX0saj0oKT0+e2xldCB0PVMuaW5pdGVkO0YoKCk9PntsZXQgbj1nLnZhbHVlO2lmKCFufHwhbltTLmN1cnJlbnRJbmRleF18fGUudHlwZSE9PWBsaW5lYHx8JG4obC52YWx1ZSkpcmV0dXJuO2xldCByPW5bUy5jdXJyZW50SW5kZXhdLiRlbCx7bGluZVdpZHRoOmksbGluZUhlaWdodDphfT1lLG89ci5vZmZzZXRMZWZ0K3Iub2Zmc2V0V2lkdGgvMixzPXt3aWR0aDpxKGkpLGJhY2tncm91bmRDb2xvcjplLmNvbG9yLHRyYW5zZm9ybTpgdHJhbnNsYXRlWCgke299cHgpIHRyYW5zbGF0ZVgoLTUwJSlgfTtpZih0JiYocy50cmFuc2l0aW9uRHVyYXRpb249YCR7ZS5kdXJhdGlvbn1zYCksTChhKSl7bGV0IGU9cShhKTtzLmhlaWdodD1lLHMuYm9yZGVyUmFkaXVzPWV9Uy5saW5lU3R5bGU9c30pfSxlZT1lPT57bGV0IHQ9ZTxTLmN1cnJlbnRJbmRleD8tMToxO2Zvcig7ZT49MCYmZTx2Lmxlbmd0aDspe2lmKCF2W2VdLmRpc2FibGVkKXJldHVybiBlO2UrPXR9fSx0ZT0obixyKT0+e2xldCBpPWVlKG4pO2lmKCFMKGkpKXJldHVybjtsZXQgbz12W2ldLHM9VChvLGkpLGM9Uy5jdXJyZW50SW5kZXghPT1udWxsO1MuY3VycmVudEluZGV4IT09aSYmKFMuY3VycmVudEluZGV4PWkscnx8QSgpLGooKSkscyE9PWUuYWN0aXZlJiYodChgdXBkYXRlOmFjdGl2ZWAscyksYyYmdChgY2hhbmdlYCxzLG8udGl0bGUpKSxhJiYhZS5zY3JvbGxzcHkmJkpuKE1hdGguY2VpbChZbihsLnZhbHVlKS1PLnZhbHVlKSl9LG5lPShlLHQpPT57bGV0IG49di5maW5kSW5kZXgoKHQsbik9PlQodCxuKT09PWUpO3RlKG49PT0tMT8wOm4sdCl9LHJlPSh0PSExKT0+e2lmKGUuc2Nyb2xsc3B5KXtsZXQgbj12W1MuY3VycmVudEluZGV4XS4kZWw7aWYobiYmaC52YWx1ZSl7bGV0IHI9WW4obixoLnZhbHVlKS1rLnZhbHVlO2k9ITAscyYmcygpLHM9d2EoaC52YWx1ZSxyLHQ/MDorZS5kdXJhdGlvbiwoKT0+e2k9ITF9KX19fSxpZT0obixyLGkpPT57bGV0e3RpdGxlOmEsZGlzYWJsZWQ6b309dltyXSxzPVQodltyXSxyKTtvfHwoVnIoZS5iZWZvcmVDaGFuZ2Use2FyZ3M6W3NdLGRvbmU6KCk9Pnt0ZShyKSxyZSgpfX0pLFFyKG4pKSx0KGBjbGlja1RhYmAse25hbWU6cyx0aXRsZTphLGV2ZW50OmksZGlzYWJsZWQ6b30pfSxhZT1lPT57YT1lLmlzRml4ZWQsdChgc2Nyb2xsYCxlKX0sb2U9ZT0+e0YoKCk9PntuZShlKSxyZSghMCl9KX0sc2U9KCk9Pntmb3IobGV0IGU9MDtlPHYubGVuZ3RoO2UrKyl7bGV0e3RvcDp0fT1XKHZbZV0uJGVsKTtpZih0PmsudmFsdWUpcmV0dXJuIGU9PT0wPzA6ZS0xfXJldHVybiB2Lmxlbmd0aC0xfSxNPSgpPT57ZS5zY3JvbGxzcHkmJiFpJiZ0ZShzZSgpKX0sY2U9KCk9PntpZihlLnR5cGU9PT1gbGluZWAmJnYubGVuZ3RoKXJldHVybiBFKGBkaXZgLHtjbGFzczpWYShgbGluZWApLHN0eWxlOlMubGluZVN0eWxlfSxudWxsKX0sbGU9KCk9PntsZXR7dHlwZTp0LGJvcmRlcjpyLHN0aWNreTppfT1lLGE9W0UoYGRpdmAse3JlZjppP3ZvaWQgMDpkLGNsYXNzOltWYShgd3JhcGApLHtbTHJdOnQ9PT1gbGluZWAmJnJ9XX0sW0UoYGRpdmAse3JlZjp1LHJvbGU6YHRhYmxpc3RgLGNsYXNzOlZhKGBuYXZgLFt0LHtzaHJpbms6ZS5zaHJpbmssY29tcGxldGU6Qy52YWx1ZX1dKSxzdHlsZTp3LnZhbHVlLCJhcmlhLW9yaWVudGF0aW9uIjpgaG9yaXpvbnRhbGB9LFtuW2BuYXYtbGVmdGBdPy5jYWxsKG4pLHYubWFwKGU9PmUucmVuZGVyVGl0bGUoaWUpKSxjZSgpLG5bYG5hdi1yaWdodGBdPy5jYWxsKG4pXSldKSxuW2BuYXYtYm90dG9tYF0/LmNhbGwobildO3JldHVybiBpP0UoYGRpdmAse3JlZjpkfSxbYV0pOmF9LHVlPSgpPT57aigpLEYoKCk9Pnt2YXIgZTtBKCEwKSwoZT1wLnZhbHVlPy5zd2lwZVJlZi52YWx1ZSk9PW51bGx8fGUucmVzaXplKCl9KX07cmV0dXJuIGYoKCk9PltlLmNvbG9yLGUuZHVyYXRpb24sZS5saW5lV2lkdGgsZS5saW5lSGVpZ2h0XSxqKSxmKGVyLHVlKSxmKCgpPT5lLmFjdGl2ZSxlPT57ZSE9PUQudmFsdWUmJm5lKGUpfSksZigoKT0+di5sZW5ndGgsKCk9PntTLmluaXRlZCYmKG5lKGUuYWN0aXZlKSxqKCksRigoKT0+e0EoITApfSkpfSksWCh7cmVzaXplOnVlLHNjcm9sbFRvOm9lfSkseShqKSxXcihqKSxqbigoKT0+e25lKGUuYWN0aXZlLCEwKSxGKCgpPT57Uy5pbml0ZWQ9ITAsZC52YWx1ZSYmKHI9VyhkLnZhbHVlKS5oZWlnaHQpLEEoITApfSl9KSxPYShsLGopLEcoYHNjcm9sbGAsTSx7dGFyZ2V0OmgscGFzc2l2ZTohMH0pLHgoe2lkOm0scHJvcHM6ZSxzZXRMaW5lOmosc2Nyb2xsYWJsZTpDLG9uUmVuZGVyZWQ6KGUsbik9PnQoYHJlbmRlcmVkYCxlLG4pLGN1cnJlbnROYW1lOkQsc2V0VGl0bGVSZWZzOl8sc2Nyb2xsSW50b1ZpZXc6QX0pLCgpPT5FKGBkaXZgLHtyZWY6bCxjbGFzczpWYShbZS50eXBlXSl9LFtlLnNob3dIZWFkZXI/ZS5zdGlja3k/RShqYSx7Y29udGFpbmVyOmwudmFsdWUsb2Zmc2V0VG9wOk8udmFsdWUsb25TY3JvbGw6YWV9LHtkZWZhdWx0OigpPT5bbGUoKV19KTpsZSgpOm51bGwsRSh6YSx7cmVmOnAsY291bnQ6di5sZW5ndGgsaW5pdGVkOlMuaW5pdGVkLGFuaW1hdGVkOmUuYW5pbWF0ZWQsZHVyYXRpb246ZS5kdXJhdGlvbixzd2lwZWFibGU6ZS5zd2lwZWFibGUsbGF6eVJlbmRlcjplLmxhenlSZW5kZXIsY3VycmVudEluZGV4OlMuY3VycmVudEluZGV4LG9uQ2hhbmdlOnRlfSx7ZGVmYXVsdDooKT0+W24uZGVmYXVsdD8uY2FsbChuKV19KV0pfX0pLEdhPVN5bWJvbCgpLEthPVN5bWJvbCgpLHFhPSgpPT53ZShLYSxudWxsKSxKYT1lPT57bGV0IHQ9cWEoKTttKEdhLGUpLG0oS2EsTigoKT0+KHQ9PW51bGx8fHQudmFsdWUpJiZlLnZhbHVlKSl9LFtZYSxYYV09SihgdGFiYCksWmE9UCh7bmFtZTpZYSxwcm9wczp7aWQ6U3RyaW5nLGRvdDpCb29sZWFuLHR5cGU6U3RyaW5nLGNvbG9yOlN0cmluZyx0aXRsZTpTdHJpbmcsYmFkZ2U6eixzaHJpbms6Qm9vbGVhbixpc0FjdGl2ZTpCb29sZWFuLGRpc2FibGVkOkJvb2xlYW4sY29udHJvbHM6U3RyaW5nLHNjcm9sbGFibGU6Qm9vbGVhbixhY3RpdmVDb2xvcjpTdHJpbmcsaW5hY3RpdmVDb2xvcjpTdHJpbmcsc2hvd1plcm9CYWRnZTpCfSxzZXR1cChlLHtzbG90czp0fSl7bGV0IG49TigoKT0+e2xldCB0PXt9LHt0eXBlOm4sY29sb3I6cixkaXNhYmxlZDppLGlzQWN0aXZlOmEsYWN0aXZlQ29sb3I6byxpbmFjdGl2ZUNvbG9yOnN9PWU7ciYmbj09PWBjYXJkYCYmKHQuYm9yZGVyQ29sb3I9cixpfHwoYT90LmJhY2tncm91bmRDb2xvcj1yOnQuY29sb3I9cikpO2xldCBjPWE/bzpzO3JldHVybiBjJiYodC5jb2xvcj1jKSx0fSkscj0oKT0+e2xldCBuPUUoYHNwYW5gLHtjbGFzczpYYShgdGV4dGAse2VsbGlwc2lzOiFlLnNjcm9sbGFibGV9KX0sW3QudGl0bGU/dC50aXRsZSgpOmUudGl0bGVdKTtyZXR1cm4gZS5kb3R8fEwoZS5iYWRnZSkmJmUuYmFkZ2UhPT1gYD9FKG5pLHtkb3Q6ZS5kb3QsY29udGVudDplLmJhZGdlLHNob3daZXJvOmUuc2hvd1plcm9CYWRnZX0se2RlZmF1bHQ6KCk9PltuXX0pOm59O3JldHVybigpPT5FKGBkaXZgLHtpZDplLmlkLHJvbGU6YHRhYmAsY2xhc3M6W1hhKFtlLnR5cGUse2dyb3c6ZS5zY3JvbGxhYmxlJiYhZS5zaHJpbmssc2hyaW5rOmUuc2hyaW5rLGFjdGl2ZTplLmlzQWN0aXZlLGRpc2FibGVkOmUuZGlzYWJsZWR9XSldLHN0eWxlOm4udmFsdWUsdGFiaW5kZXg6ZS5kaXNhYmxlZD92b2lkIDA6ZS5pc0FjdGl2ZT8wOi0xLCJhcmlhLXNlbGVjdGVkIjplLmlzQWN0aXZlLCJhcmlhLWRpc2FibGVkIjplLmRpc2FibGVkfHx2b2lkIDAsImFyaWEtY29udHJvbHMiOmUuY29udHJvbHMsImRhdGEtYWxsb3ctbWlzbWF0Y2giOmBhdHRyaWJ1dGVgfSxbcigpXSl9fSksW1FhLCRhXT1KKGBzd2lwZS1pdGVtYCksZW89WShQKHtuYW1lOlFhLHNldHVwKGUse3Nsb3RzOnR9KXtsZXQgbixyPWMoe29mZnNldDowLGluaXRlZDohMSxtb3VudGVkOiExfSkse3BhcmVudDppLGluZGV4OmF9PXluKEZhKTtpZighaSlyZXR1cm47bGV0IG89TigoKT0+e2xldCBlPXt9LHt2ZXJ0aWNhbDp0fT1pLnByb3BzO3JldHVybiBpLnNpemUudmFsdWUmJihlW3Q/YGhlaWdodGA6YHdpZHRoYF09YCR7aS5zaXplLnZhbHVlfXB4YCksci5vZmZzZXQmJihlLnRyYW5zZm9ybT1gdHJhbnNsYXRlJHt0P2BZYDpgWGB9KCR7ci5vZmZzZXR9cHgpYCksZX0pLHM9TigoKT0+e2xldHtsb29wOmUsbGF6eVJlbmRlcjp0fT1pLnByb3BzO2lmKCF0fHxuKXJldHVybiEwO2lmKCFyLm1vdW50ZWQpcmV0dXJuITE7bGV0IG89aS5hY3RpdmVJbmRpY2F0b3IudmFsdWUscz1pLmNvdW50LnZhbHVlLTEsYz1vPT09MCYmZT9zOm8tMSxsPW89PT1zJiZlPzA6bysxO3JldHVybiBuPWEudmFsdWU9PT1vfHxhLnZhbHVlPT09Y3x8YS52YWx1ZT09PWwsbn0pO3JldHVybiBNKCgpPT57RigoKT0+e3IubW91bnRlZD0hMH0pfSksWCh7c2V0T2Zmc2V0OmU9PntyLm9mZnNldD1lfX0pLCgpPT5FKGBkaXZgLHtjbGFzczokYSgpLHN0eWxlOm8udmFsdWV9LFtzLnZhbHVlP3QuZGVmYXVsdD8uY2FsbCh0KTpudWxsXSl9fSkpLFt0byxub109SihgdGFiYCkscm89WShQKHtuYW1lOnRvLHByb3BzOkkoe30sWnIse2RvdDpCb29sZWFuLG5hbWU6eixiYWRnZTp6LHRpdGxlOlN0cmluZyxkaXNhYmxlZDpCb29sZWFuLHRpdGxlQ2xhc3M6bnVsbCx0aXRsZVN0eWxlOltTdHJpbmcsT2JqZWN0XSxzaG93WmVyb0JhZGdlOkJ9KSxzZXR1cChlLHtzbG90czp0fSl7bGV0IGk9RWEoKSxhPWIoITEpLG89VGUoKSx7cGFyZW50OnMsaW5kZXg6Y309eW4oVWEpO2lmKCFzKXJldHVybjtsZXQgbD0oKT0+ZS5uYW1lPz9jLnZhbHVlLHU9KCk9PnthLnZhbHVlPSEwLHMucHJvcHMubGF6eVJlbmRlciYmRigoKT0+e3Mub25SZW5kZXJlZChsKCksZS50aXRsZSl9KX0sZD1OKCgpPT57bGV0IGU9bCgpPT09cy5jdXJyZW50TmFtZS52YWx1ZTtyZXR1cm4gZSYmIWEudmFsdWUmJnUoKSxlfSkscD1iKGBgKSxtPWIoYGApO18oKCk9PntsZXR7dGl0bGVDbGFzczp0LHRpdGxlU3R5bGU6bn09ZTtwLnZhbHVlPXQ/aih0KTpgYCxtLnZhbHVlPW4mJnR5cGVvZiBuIT1gc3RyaW5nYD9DZShjZShuKSk6bn0pO2xldCBoPW49PkUoWmEscih7a2V5OmksaWQ6YCR7cy5pZH0tJHtjLnZhbHVlfWAscmVmOnMuc2V0VGl0bGVSZWZzKGMudmFsdWUpLHN0eWxlOm0udmFsdWUsY2xhc3M6cC52YWx1ZSxpc0FjdGl2ZTpkLnZhbHVlLGNvbnRyb2xzOmksc2Nyb2xsYWJsZTpzLnNjcm9sbGFibGUudmFsdWUsYWN0aXZlQ29sb3I6cy5wcm9wcy50aXRsZUFjdGl2ZUNvbG9yLGluYWN0aXZlQ29sb3I6cy5wcm9wcy50aXRsZUluYWN0aXZlQ29sb3Isb25DbGljazplPT5uKG8ucHJveHksYy52YWx1ZSxlKX0sUihzLnByb3BzLFtgdHlwZWAsYGNvbG9yYCxgc2hyaW5rYF0pLFIoZSxbYGRvdGAsYGJhZGdlYCxgdGl0bGVgLGBkaXNhYmxlZGAsYHNob3daZXJvQmFkZ2VgXSkpLHt0aXRsZTp0LnRpdGxlfSksZz1iKCFkLnZhbHVlKTtyZXR1cm4gZihkLGU9PntlP2cudmFsdWU9ITE6aG4oKCk9PntnLnZhbHVlPSEwfSl9KSxmKCgpPT5lLnRpdGxlLCgpPT57cy5zZXRMaW5lKCkscy5zY3JvbGxJbnRvVmlldygpfSksSmEoZCksWCh7aWQ6aSxyZW5kZXJUaXRsZTpofSksKCk9PntsZXQgZT1gJHtzLmlkfS0ke2MudmFsdWV9YCx7YW5pbWF0ZWQ6cixzd2lwZWFibGU6byxzY3JvbGxzcHk6bCxsYXp5UmVuZGVyOnV9PXMucHJvcHM7aWYoIXQuZGVmYXVsdCYmIXIpcmV0dXJuO2xldCBmPWx8fGQudmFsdWU7aWYocnx8bylyZXR1cm4gRShlbyx7aWQ6aSxyb2xlOmB0YWJwYW5lbGAsY2xhc3M6bm8oYHBhbmVsLXdyYXBwZXJgLHtpbmFjdGl2ZTpnLnZhbHVlfSksdGFiaW5kZXg6ZC52YWx1ZT8wOi0xLCJhcmlhLWhpZGRlbiI6IWQudmFsdWUsImFyaWEtbGFiZWxsZWRieSI6ZSwiZGF0YS1hbGxvdy1taXNtYXRjaCI6YGF0dHJpYnV0ZWB9LHtkZWZhdWx0OigpPT5bRShgZGl2YCx7Y2xhc3M6bm8oYHBhbmVsYCl9LFt0LmRlZmF1bHQ/LmNhbGwodCldKV19KTtsZXQgcD1hLnZhbHVlfHxsfHwhdT90LmRlZmF1bHQ/LmNhbGwodCk6bnVsbDtyZXR1cm4gbihFKGBkaXZgLHtpZDppLHJvbGU6YHRhYnBhbmVsYCxjbGFzczpubyhgcGFuZWxgKSx0YWJpbmRleDpmPzA6LTEsImFyaWEtbGFiZWxsZWRieSI6ZSwiZGF0YS1hbGxvdy1taXNtYXRjaCI6YGF0dHJpYnV0ZWB9LFtwXSksW1tpdCxmXV0pfX19KSksaW89WShXYSksW2FvLG9vXT1KKGBwaWNrZXItZ3JvdXBgKSxzbz1TeW1ib2woYW8pLGNvPVAoe25hbWU6YW8scHJvcHM6SSh7dGFiczpWKCksYWN0aXZlVGFiOkgoMCksbmV4dFN0ZXBUZXh0OlN0cmluZyxzaG93VG9vbGJhcjpCfSx2YSksZW1pdHM6W2Bjb25maXJtYCxgY2FuY2VsYCxgdXBkYXRlOmFjdGl2ZVRhYmBdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7bGV0IHI9U2EoKCk9PmUuYWN0aXZlVGFiLGU9PnQoYHVwZGF0ZTphY3RpdmVUYWJgLGUpKSx7Y2hpbGRyZW46aSxsaW5rQ2hpbGRyZW46YX09Q24oc28pO2EoKTtsZXQgbz0oKT0+K3IudmFsdWU8ZS50YWJzLmxlbmd0aC0xJiZlLm5leHRTdGVwVGV4dCxzPSgpPT57bygpP3IudmFsdWU9K3IudmFsdWUrMTp0KGBjb25maXJtYCxpLm1hcChlPT5lLmNvbmZpcm0oKSkpfSxjPSgpPT50KGBjYW5jZWxgKTtyZXR1cm4oKT0+e2xldCB0PShuLmRlZmF1bHQ/LmNhbGwobikpPy5maWx0ZXIoZT0+ZS50eXBlIT09YWUpLm1hcChlPT5lLnR5cGU9PT1EP2UuY2hpbGRyZW46ZSk7dCYmPWxuKHQpO2xldCBpPW8oKT9lLm5leHRTdGVwVGV4dDplLmNvbmZpcm1CdXR0b25UZXh0O3JldHVybiBFKGBkaXZgLHtjbGFzczpvbygpfSxbZS5zaG93VG9vbGJhcj9FKHhhLHt0aXRsZTplLnRpdGxlLGNhbmNlbEJ1dHRvblRleHQ6ZS5jYW5jZWxCdXR0b25UZXh0LGNvbmZpcm1CdXR0b25UZXh0Omksb25Db25maXJtOnMsb25DYW5jZWw6Y30sUihuLHlhKSk6bnVsbCxFKGlvLHthY3RpdmU6ci52YWx1ZSwib25VcGRhdGU6YWN0aXZlIjplPT5yLnZhbHVlPWUsY2xhc3M6b28oYHRhYnNgKSxzaHJpbms6ITAsYW5pbWF0ZWQ6ITAsbGF6eVJlbmRlcjohMX0se2RlZmF1bHQ6KCk9PltlLnRhYnMubWFwKChlLG4pPT5FKHJvLHt0aXRsZTplLHRpdGxlQ2xhc3M6b28oYHRhYi10aXRsZWApfSx7ZGVmYXVsdDooKT0+W3Q/LltuXV19KSldfSldKX19fSksbG89SSh7bG9hZGluZzpCb29sZWFuLHJlYWRvbmx5OkJvb2xlYW4sYWxsb3dIdG1sOkJvb2xlYW4sb3B0aW9uSGVpZ2h0OkgoNDQpLHNob3dUb29sYmFyOkIsc3dpcGVEdXJhdGlvbjpIKDFlMyksdmlzaWJsZU9wdGlvbk51bTpIKDYpfSx2YSksdW89UCh7bmFtZTokaSxwcm9wczpJKHt9LGxvLHtjb2x1bW5zOlYoKSxtb2RlbFZhbHVlOlYoKSx0b29sYmFyUG9zaXRpb246VShgdG9wYCksY29sdW1uc0ZpZWxkTmFtZXM6T2JqZWN0fSksZW1pdHM6W2Bjb25maXJtYCxgY2FuY2VsYCxgY2hhbmdlYCxgc2Nyb2xsSW50b2AsYGNsaWNrT3B0aW9uYCxgdXBkYXRlOm1vZGVsVmFsdWVgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCBpPWIoKSxhPWIoZS5tb2RlbFZhbHVlLnNsaWNlKDApKSx7cGFyZW50Om99PXluKHNvKSx7Y2hpbGRyZW46cyxsaW5rQ2hpbGRyZW46Y309Q24oaGEpO2MoKTtsZXQgbD1OKCgpPT5sYShlLmNvbHVtbnNGaWVsZE5hbWVzKSksdT1OKCgpPT5kcihlLm9wdGlvbkhlaWdodCkpLGQ9TigoKT0+cmEoZS5jb2x1bW5zLGwudmFsdWUpKSxwPU4oKCk9PntsZXR7Y29sdW1uczp0fT1lO3N3aXRjaChkLnZhbHVlKXtjYXNlYG11bHRpcGxlYDpyZXR1cm4gdDtjYXNlYGNhc2NhZGVgOnJldHVybiBzYSh0LGwudmFsdWUsYSk7ZGVmYXVsdDpyZXR1cm5bdF19fSksbT1OKCgpPT5wLnZhbHVlLnNvbWUoZT0+ZS5sZW5ndGgpKSxoPU4oKCk9PnAudmFsdWUubWFwKChlLHQpPT5vYShlLGEudmFsdWVbdF0sbC52YWx1ZSkpKSxnPU4oKCk9PnAudmFsdWUubWFwKChlLHQpPT5lLmZpbmRJbmRleChlPT5lW2wudmFsdWUudmFsdWVdPT09YS52YWx1ZVt0XSkpKSxfPShlLHQpPT57aWYoYS52YWx1ZVtlXSE9PXQpe2xldCBuPWEudmFsdWUuc2xpY2UoMCk7bltlXT10LGEudmFsdWU9bn19LHY9KCk9Pih7c2VsZWN0ZWRWYWx1ZXM6YS52YWx1ZS5zbGljZSgwKSxzZWxlY3RlZE9wdGlvbnM6aC52YWx1ZSxzZWxlY3RlZEluZGV4ZXM6Zy52YWx1ZX0pLHk9KGUsbik9PntfKG4sZSksZC52YWx1ZT09PWBjYXNjYWRlYCYmYS52YWx1ZS5mb3JFYWNoKChlLHQpPT57bGV0IG49cC52YWx1ZVt0XTthYShuLGUsbC52YWx1ZSl8fF8odCxuLmxlbmd0aD9uWzBdW2wudmFsdWUudmFsdWVdOnZvaWQgMCl9KSxGKCgpPT57dChgY2hhbmdlYCxJKHtjb2x1bW5JbmRleDpufSx2KCkpKX0pfSx4PShlLG4pPT57bGV0IHI9e2NvbHVtbkluZGV4Om4sY3VycmVudE9wdGlvbjplfTt0KGBjbGlja09wdGlvbmAsSSh2KCkscikpLHQoYHNjcm9sbEludG9gLHIpfSxTPSgpPT57cy5mb3JFYWNoKGU9PmUuc3RvcE1vbWVudHVtKCkpO2xldCBlPXYoKTtyZXR1cm4gRigoKT0+e3QoYGNvbmZpcm1gLHYoKSl9KSxlfSxDPSgpPT50KGBjYW5jZWxgLHYoKSksdz0oKT0+cC52YWx1ZS5tYXAoKHIsaSk9PkUoZ2Ese3ZhbHVlOmEudmFsdWVbaV0sZmllbGRzOmwudmFsdWUsb3B0aW9uczpyLHJlYWRvbmx5OmUucmVhZG9ubHksYWxsb3dIdG1sOmUuYWxsb3dIdG1sLG9wdGlvbkhlaWdodDp1LnZhbHVlLHN3aXBlRHVyYXRpb246ZS5zd2lwZUR1cmF0aW9uLHZpc2libGVPcHRpb25OdW06ZS52aXNpYmxlT3B0aW9uTnVtLG9uQ2hhbmdlOmU9PnkoZSxpKSxvbkNsaWNrT3B0aW9uOmU9PngoZSxpKSxvblNjcm9sbEludG86ZT0+e3QoYHNjcm9sbEludG9gLHtjdXJyZW50T3B0aW9uOmUsY29sdW1uSW5kZXg6aX0pfX0se29wdGlvbjpuLm9wdGlvbn0pKSxUPWU9PntpZihtLnZhbHVlKXtsZXQgdD17aGVpZ2h0OmAke3UudmFsdWV9cHhgfSxuPXtiYWNrZ3JvdW5kU2l6ZTpgMTAwJSAkeyhlLXUudmFsdWUpLzJ9cHhgfTtyZXR1cm5bRShgZGl2YCx7Y2xhc3M6ZWEoYG1hc2tgKSxzdHlsZTpufSxudWxsKSxFKGBkaXZgLHtjbGFzczpbUnIsZWEoYGZyYW1lYCldLHN0eWxlOnR9LG51bGwpXX19LEQ9KCk9PntsZXQgdD11LnZhbHVlKitlLnZpc2libGVPcHRpb25OdW0scj17aGVpZ2h0OmAke3R9cHhgfTtyZXR1cm4hZS5sb2FkaW5nJiYhbS52YWx1ZSYmbi5lbXB0eT9uLmVtcHR5KCk6RShgZGl2YCx7cmVmOmksY2xhc3M6ZWEoYGNvbHVtbnNgKSxzdHlsZTpyfSxbdygpLFQodCldKX0sTz0oKT0+e2lmKGUuc2hvd1Rvb2xiYXImJiFvKXJldHVybiBFKHhhLHIoUihlLGJhKSx7b25Db25maXJtOlMsb25DYW5jZWw6Q30pLFIobix5YSkpfSxrPWU9PntlLmZvckVhY2goKGUsdCk9PntlLmxlbmd0aCYmIWFhKGUsYS52YWx1ZVt0XSxsLnZhbHVlKSYmXyh0LG5hKGUpW2wudmFsdWUudmFsdWVdKX0pfTtmKHAsZT0+ayhlKSx7aW1tZWRpYXRlOiEwfSk7bGV0IEE7cmV0dXJuIGYoKCk9PmUubW9kZWxWYWx1ZSx0PT57IXNuKHQsYS52YWx1ZSkmJiFzbih0LEEpJiYoYS52YWx1ZT10LnNsaWNlKDApLEE9dC5zbGljZSgwKSksZS5tb2RlbFZhbHVlLmxlbmd0aD09PTAmJmsocC52YWx1ZSl9LHtkZWVwOiEwfSksZihhLG49PntzbihuLGUubW9kZWxWYWx1ZSl8fChBPW4uc2xpY2UoMCksdChgdXBkYXRlOm1vZGVsVmFsdWVgLEEpKX0se2ltbWVkaWF0ZTohMH0pLEcoYHRvdWNobW92ZWAsSyx7dGFyZ2V0Oml9KSxYKHtjb25maXJtOlMsZ2V0U2VsZWN0ZWRPcHRpb25zOigpPT5oLnZhbHVlfSksKCk9PkUoYGRpdmAse2NsYXNzOmVhKCl9LFtlLnRvb2xiYXJQb3NpdGlvbj09PWB0b3BgP08oKTpudWxsLGUubG9hZGluZz9FKFNpLHtjbGFzczplYShgbG9hZGluZ2ApfSxudWxsKTpudWxsLG5bYGNvbHVtbnMtdG9wYF0/LmNhbGwobiksRCgpLG5bYGNvbHVtbnMtYm90dG9tYF0/LmNhbGwobiksZS50b29sYmFyUG9zaXRpb249PT1gYm90dG9tYD9PKCk6bnVsbF0pfX0pLGZvPWAwMDAwMDBgLHBvPVtgdGl0bGVgLGBjYW5jZWxgLGBjb25maXJtYCxgdG9vbGJhcmAsYGNvbHVtbnMtdG9wYCxgY29sdW1ucy1ib3R0b21gXSxtbz1bYHRpdGxlYCxgbG9hZGluZ2AsYHJlYWRvbmx5YCxgb3B0aW9uSGVpZ2h0YCxgc3dpcGVEdXJhdGlvbmAsYHZpc2libGVPcHRpb25OdW1gLGBjYW5jZWxCdXR0b25UZXh0YCxgY29uZmlybUJ1dHRvblRleHRgXSxobz0oZT1gYCx0PWZvLG49dm9pZCAwKT0+KHt0ZXh0OmUsdmFsdWU6dCxjaGlsZHJlbjpufSk7ZnVuY3Rpb24gZ28oe2FyZWFMaXN0OmUsY29sdW1uc051bTp0LGNvbHVtbnNQbGFjZWhvbGRlcjpufSl7bGV0e2NpdHlfbGlzdDpyPXt9LGNvdW50eV9saXN0Omk9e30scHJvdmluY2VfbGlzdDphPXt9fT1lLG89K3Q+MSxzPSt0PjIsYz0oKT0+e2lmKG8pcmV0dXJuIG4ubGVuZ3RoPjE/W2hvKG5bMV0sZm8scz9bXTp2b2lkIDApXTpbXX0sbD1uZXcgTWFwO09iamVjdC5rZXlzKGEpLmZvckVhY2goZT0+e2wuc2V0KGUuc2xpY2UoMCwyKSxobyhhW2VdLGUsYygpKSl9KTtsZXQgdT1uZXcgTWFwO2lmKG8pe2xldCBlPSgpPT57aWYocylyZXR1cm4gbi5sZW5ndGg+Mj9baG8oblsyXSldOltdfTtPYmplY3Qua2V5cyhyKS5mb3JFYWNoKHQ9PntsZXQgbj1obyhyW3RdLHQsZSgpKTt1LnNldCh0LnNsaWNlKDAsNCksbik7bGV0IGk9bC5nZXQodC5zbGljZSgwLDIpKTtpJiZpLmNoaWxkcmVuLnB1c2gobil9KX1zJiZPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGU9PntsZXQgdD11LmdldChlLnNsaWNlKDAsNCkpO3QmJnQuY2hpbGRyZW4ucHVzaChobyhpW2VdLGUpKX0pO2xldCBkPUFycmF5LmZyb20obC52YWx1ZXMoKSk7aWYobi5sZW5ndGgpe2xldCBlPXM/W2hvKG5bMl0pXTp2b2lkIDAsdD1vP1tobyhuWzFdLGZvLGUpXTp2b2lkIDA7ZC51bnNoaWZ0KGhvKG5bMF0sZm8sdCkpfXJldHVybiBkfXZhciBfbz1ZKHVvKSxbdm8seW9dPUooYGFyZWFgKSxibz1ZKFAoe25hbWU6dm8scHJvcHM6SSh7fSxSKGxvLG1vKSx7bW9kZWxWYWx1ZTpTdHJpbmcsY29sdW1uc051bTpIKDMpLGNvbHVtbnNQbGFjZWhvbGRlcjpWKCksYXJlYUxpc3Q6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6KCk9Pih7fSl9fSksZW1pdHM6W2BjaGFuZ2VgLGBjb25maXJtYCxgY2FuY2VsYCxgdXBkYXRlOm1vZGVsVmFsdWVgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCBpPWIoW10pLGE9YigpLG89TigoKT0+Z28oZSkpLHM9KC4uLmUpPT50KGBjaGFuZ2VgLC4uLmUpLGM9KC4uLmUpPT50KGBjYW5jZWxgLC4uLmUpLGw9KC4uLmUpPT50KGBjb25maXJtYCwuLi5lKTtyZXR1cm4gZihpLG49PntsZXQgcj1uLmxlbmd0aD9uW24ubGVuZ3RoLTFdOmBgO3ImJnIhPT1lLm1vZGVsVmFsdWUmJnQoYHVwZGF0ZTptb2RlbFZhbHVlYCxyKX0se2RlZXA6ITB9KSxmKCgpPT5lLm1vZGVsVmFsdWUsdD0+e3Q/dCE9PShpLnZhbHVlLmxlbmd0aD9pLnZhbHVlW2kudmFsdWUubGVuZ3RoLTFdOmBgKSYmKGkudmFsdWU9W2Ake3Quc2xpY2UoMCwyKX0wMDAwYCxgJHt0LnNsaWNlKDAsNCl9MDBgLHRdLnNsaWNlKDAsK2UuY29sdW1uc051bSkpOmkudmFsdWU9W119LHtpbW1lZGlhdGU6ITB9KSxYKHtjb25maXJtOigpPT5hLnZhbHVlPy5jb25maXJtKCksZ2V0U2VsZWN0ZWRPcHRpb25zOigpPT5hLnZhbHVlPy5nZXRTZWxlY3RlZE9wdGlvbnMoKXx8W119KSwoKT0+RShfbyxyKHtyZWY6YSxtb2RlbFZhbHVlOmkudmFsdWUsIm9uVXBkYXRlOm1vZGVsVmFsdWUiOmU9PmkudmFsdWU9ZSxjbGFzczp5bygpLGNvbHVtbnM6by52YWx1ZSxvbkNoYW5nZTpzLG9uQ2FuY2VsOmMsb25Db25maXJtOmx9LFIoZSxtbykpLFIobixwbykpfX0pKSxbeG8sU29dPUooYGNlbGxgKSxDbz17dGFnOlUoYGRpdmApLGljb246U3RyaW5nLHNpemU6U3RyaW5nLHRpdGxlOnosdmFsdWU6eixsYWJlbDp6LGNlbnRlcjpCb29sZWFuLGlzTGluazpCb29sZWFuLGJvcmRlcjpCLGljb25QcmVmaXg6U3RyaW5nLHZhbHVlQ2xhc3M6bnVsbCxsYWJlbENsYXNzOm51bGwsdGl0bGVDbGFzczpudWxsLHRpdGxlU3R5bGU6bnVsbCxhcnJvd0RpcmVjdGlvbjpTdHJpbmcscmVxdWlyZWQ6e3R5cGU6W0Jvb2xlYW4sU3RyaW5nXSxkZWZhdWx0Om51bGx9LGNsaWNrYWJsZTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6bnVsbH19LHdvPVkoUCh7bmFtZTp4byxwcm9wczpJKHt9LENvLFpyKSxzZXR1cChlLHtzbG90czp0fSl7bGV0IG49JHIoKSxyPSgpPT57aWYodC5sYWJlbHx8TChlLmxhYmVsKSlyZXR1cm4gRShgZGl2YCx7Y2xhc3M6W1NvKGBsYWJlbGApLGUubGFiZWxDbGFzc119LFt0LmxhYmVsP3QubGFiZWwoKTplLmxhYmVsXSl9LGk9KCk9PntpZih0LnRpdGxlfHxMKGUudGl0bGUpKXtsZXQgbj10LnRpdGxlPy5jYWxsKHQpO3JldHVybiBBcnJheS5pc0FycmF5KG4pJiZuLmxlbmd0aD09PTA/dm9pZCAwOkUoYGRpdmAse2NsYXNzOltTbyhgdGl0bGVgKSxlLnRpdGxlQ2xhc3NdLHN0eWxlOmUudGl0bGVTdHlsZX0sW258fEUoYHNwYW5gLG51bGwsW2UudGl0bGVdKSxyKCldKX19LGE9KCk9PntsZXQgbj10LnZhbHVlfHx0LmRlZmF1bHQ7aWYobnx8TChlLnZhbHVlKSlyZXR1cm4gRShgZGl2YCx7Y2xhc3M6W1NvKGB2YWx1ZWApLGUudmFsdWVDbGFzc119LFtuP24oKTpFKGBzcGFuYCxudWxsLFtlLnZhbHVlXSldKX0sbz0oKT0+e2lmKHQuaWNvbilyZXR1cm4gdC5pY29uKCk7aWYoZS5pY29uKXJldHVybiBFKFose25hbWU6ZS5pY29uLGNsYXNzOlNvKGBsZWZ0LWljb25gKSxjbGFzc1ByZWZpeDplLmljb25QcmVmaXh9LG51bGwpfSxzPSgpPT57aWYodFtgcmlnaHQtaWNvbmBdKXJldHVybiB0W2ByaWdodC1pY29uYF0oKTtpZihlLmlzTGluaylyZXR1cm4gRShaLHtuYW1lOmUuYXJyb3dEaXJlY3Rpb24mJmUuYXJyb3dEaXJlY3Rpb24hPT1gcmlnaHRgP2BhcnJvdy0ke2UuYXJyb3dEaXJlY3Rpb259YDpgYXJyb3dgLGNsYXNzOlNvKGByaWdodC1pY29uYCl9LG51bGwpfTtyZXR1cm4oKT0+e2xldHt0YWc6cixzaXplOmMsY2VudGVyOmwsYm9yZGVyOnUsaXNMaW5rOmQscmVxdWlyZWQ6Zn09ZSxwPWUuY2xpY2thYmxlPz9kLG09e2NlbnRlcjpsLHJlcXVpcmVkOiEhZixjbGlja2FibGU6cCxib3JkZXJsZXNzOiF1fTtyZXR1cm4gYyYmKG1bY109ISFjKSxFKHIse2NsYXNzOlNvKG0pLHJvbGU6cD9gYnV0dG9uYDp2b2lkIDAsdGFiaW5kZXg6cD8wOnZvaWQgMCxvbkNsaWNrOm59LHtkZWZhdWx0OigpPT5bbygpLGkoKSxhKCkscygpLHQuZXh0cmE/LmNhbGwodCldfSl9fX0pKSxbVG8sRW9dPUooYGZvcm1gKSxEbz1ZKFAoe25hbWU6VG8scHJvcHM6e2NvbG9uOkJvb2xlYW4sZGlzYWJsZWQ6Qm9vbGVhbixyZWFkb25seTpCb29sZWFuLHJlcXVpcmVkOltCb29sZWFuLFN0cmluZ10sc2hvd0Vycm9yOkJvb2xlYW4sbGFiZWxXaWR0aDp6LGxhYmVsQWxpZ246U3RyaW5nLGlucHV0QWxpZ246U3RyaW5nLHNjcm9sbFRvRXJyb3I6Qm9vbGVhbixzY3JvbGxUb0Vycm9yUG9zaXRpb246U3RyaW5nLHZhbGlkYXRlRmlyc3Q6Qm9vbGVhbixzdWJtaXRPbkVudGVyOkIsc2hvd0Vycm9yTWVzc2FnZTpCLGVycm9yTWVzc2FnZUFsaWduOlN0cmluZyx2YWxpZGF0ZVRyaWdnZXI6e3R5cGU6W1N0cmluZyxBcnJheV0sZGVmYXVsdDpgb25CbHVyYH19LGVtaXRzOltgc3VibWl0YCxgZmFpbGVkYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXR7Y2hpbGRyZW46cixsaW5rQ2hpbGRyZW46aX09Q24oQnIpLGE9ZT0+ZT9yLmZpbHRlcih0PT5lLmluY2x1ZGVzKHQubmFtZSkpOnIsbz1lPT5uZXcgUHJvbWlzZSgodCxuKT0+e2xldCByPVtdO2EoZSkucmVkdWNlKChlLHQpPT5lLnRoZW4oKCk9PntpZighci5sZW5ndGgpcmV0dXJuIHQudmFsaWRhdGUoKS50aGVuKGU9PntlJiZyLnB1c2goZSl9KX0pLFByb21pc2UucmVzb2x2ZSgpKS50aGVuKCgpPT57ci5sZW5ndGg/bihyKTp0KCl9KX0pLHM9ZT0+bmV3IFByb21pc2UoKHQsbik9PntsZXQgcj1hKGUpO1Byb21pc2UuYWxsKHIubWFwKGU9PmUudmFsaWRhdGUoKSkpLnRoZW4oZT0+e2U9ZS5maWx0ZXIoQm9vbGVhbiksZS5sZW5ndGg/bihlKTp0KCl9KX0pLGM9ZT0+e2xldCB0PXIuZmluZCh0PT50Lm5hbWU9PT1lKTtyZXR1cm4gdD9uZXcgUHJvbWlzZSgoZSxuKT0+e3QudmFsaWRhdGUoKS50aGVuKHQ9Pnt0P24odCk6ZSgpfSl9KTpQcm9taXNlLnJlamVjdCgpfSxsPXQ9PnR5cGVvZiB0PT1gc3RyaW5nYD9jKHQpOmUudmFsaWRhdGVGaXJzdD9vKHQpOnModCksdT1lPT57dHlwZW9mIGU9PWBzdHJpbmdgJiYoZT1bZV0pLGEoZSkuZm9yRWFjaChlPT57ZS5yZXNldFZhbGlkYXRpb24oKX0pfSxkPSgpPT5yLnJlZHVjZSgoZSx0KT0+KGVbdC5uYW1lXT10LmdldFZhbGlkYXRpb25TdGF0dXMoKSxlKSx7fSksZj0oZSx0KT0+e3Iuc29tZShuPT5uLm5hbWU9PT1lPyhuLiRlbC5zY3JvbGxJbnRvVmlldyh0KSwhMCk6ITEpfSxwPSgpPT5yLnJlZHVjZSgoZSx0KT0+KHQubmFtZSE9PXZvaWQgMCYmKGVbdC5uYW1lXT10LmZvcm1WYWx1ZS52YWx1ZSksZSkse30pLG09KCk9PntsZXQgbj1wKCk7bCgpLnRoZW4oKCk9PnQoYHN1Ym1pdGAsbikpLmNhdGNoKHI9Pnt0KGBmYWlsZWRgLHt2YWx1ZXM6bixlcnJvcnM6cn0pO2xldHtzY3JvbGxUb0Vycm9yOmksc2Nyb2xsVG9FcnJvclBvc2l0aW9uOmF9PWU7aSYmclswXS5uYW1lJiZmKHJbMF0ubmFtZSxhP3tibG9jazphfTp2b2lkIDApfSl9LGg9ZT0+e0soZSksbSgpfTtyZXR1cm4gaSh7cHJvcHM6ZX0pLFgoe3N1Ym1pdDptLHZhbGlkYXRlOmwsZ2V0VmFsdWVzOnAsc2Nyb2xsVG9GaWVsZDpmLHJlc2V0VmFsaWRhdGlvbjp1LGdldFZhbGlkYXRpb25TdGF0dXM6ZH0pLCgpPT5FKGBmb3JtYCx7Y2xhc3M6RW8oKSxvblN1Ym1pdDpofSxbbi5kZWZhdWx0Py5jYWxsKG4pXSl9fSkpO2Z1bmN0aW9uIE9vKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpPyFlLmxlbmd0aDplPT09MD8hMTohZX1mdW5jdGlvbiBrbyhlLHQpe2lmKE9vKGUpKXtpZih0LnJlcXVpcmVkKXJldHVybiExO2lmKHQudmFsaWRhdGVFbXB0eT09PSExKXJldHVybiEwfXJldHVybiEodC5wYXR0ZXJuJiYhdC5wYXR0ZXJuLnRlc3QoU3RyaW5nKGUpKSl9ZnVuY3Rpb24gQW8oZSx0KXtyZXR1cm4gbmV3IFByb21pc2Uobj0+e2xldCByPXQudmFsaWRhdG9yKGUsdCk7aWYoZW4ocikpe3IudGhlbihuKTtyZXR1cm59bihyKX0pfWZ1bmN0aW9uIGpvKGUsdCl7bGV0e21lc3NhZ2U6bn09dDtyZXR1cm4gJHQobik/bihlLHQpOm58fGBgfWZ1bmN0aW9uIE1vKHt0YXJnZXQ6ZX0pe2UuY29tcG9zaW5nPSEwfWZ1bmN0aW9uIE5vKHt0YXJnZXQ6ZX0pe2UuY29tcG9zaW5nJiYoZS5jb21wb3Npbmc9ITEsZS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChgaW5wdXRgKSkpfWZ1bmN0aW9uIFBvKGUsdCl7bGV0IG49cW4oKTtlLnN0eWxlLmhlaWdodD1gYXV0b2A7bGV0IHI9ZS5zY3JvbGxIZWlnaHQ7aWYoUXQodCkpe2xldHttYXhIZWlnaHQ6ZSxtaW5IZWlnaHQ6bn09dDtlIT09dm9pZCAwJiYocj1NYXRoLm1pbihyLGUpKSxuIT09dm9pZCAwJiYocj1NYXRoLm1heChyLG4pKX1yJiYoZS5zdHlsZS5oZWlnaHQ9YCR7cn1weGAsSm4obikpfWZ1bmN0aW9uIEZvKGUsdCl7cmV0dXJuIGU9PT1gbnVtYmVyYCYmKGU9YHRleHRgLHQ/Pz1gZGVjaW1hbGApLGU9PT1gZGlnaXRgJiYoZT1gdGVsYCx0Pz89YG51bWVyaWNgKSx7dHlwZTplLGlucHV0bW9kZTp0fX1mdW5jdGlvbiBJbyhlKXtyZXR1cm5bLi4uZV0ubGVuZ3RofWZ1bmN0aW9uIExvKGUsdCl7cmV0dXJuWy4uLmVdLnNsaWNlKDAsdCkuam9pbihgYCl9dmFyW1JvLHpvXT1KKGBmaWVsZGApLEJvPXtpZDpTdHJpbmcsbmFtZTpTdHJpbmcsbGVmdEljb246U3RyaW5nLHJpZ2h0SWNvbjpTdHJpbmcsYXV0b2ZvY3VzOkJvb2xlYW4sY2xlYXJhYmxlOkJvb2xlYW4sbWF4bGVuZ3RoOnosbWF4Ok51bWJlcixtaW46TnVtYmVyLGZvcm1hdHRlcjpGdW5jdGlvbixjbGVhckljb246VShgY2xlYXJgKSxtb2RlbFZhbHVlOkgoYGApLGlucHV0QWxpZ246U3RyaW5nLHBsYWNlaG9sZGVyOlN0cmluZyxhdXRvY29tcGxldGU6U3RyaW5nLGF1dG9jYXBpdGFsaXplOlN0cmluZyxhdXRvY29ycmVjdDpTdHJpbmcsZXJyb3JNZXNzYWdlOlN0cmluZyxlbnRlcmtleWhpbnQ6U3RyaW5nLGNsZWFyVHJpZ2dlcjpVKGBmb2N1c2ApLGZvcm1hdFRyaWdnZXI6VShgb25DaGFuZ2VgKSxzcGVsbGNoZWNrOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfSxlcnJvcjp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6bnVsbH0sZGlzYWJsZWQ6e3R5cGU6Qm9vbGVhbixkZWZhdWx0Om51bGx9LHJlYWRvbmx5Ont0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfSxpbnB1dG1vZGU6U3RyaW5nfSxWbz1ZKFAoe25hbWU6Um8scHJvcHM6SSh7fSxDbyxCbyx7cm93czp6LHR5cGU6VShgdGV4dGApLHJ1bGVzOkFycmF5LGF1dG9zaXplOltCb29sZWFuLE9iamVjdF0sbGFiZWxXaWR0aDp6LGxhYmVsQ2xhc3M6bnVsbCxsYWJlbEFsaWduOlN0cmluZyxzaG93V29yZExpbWl0OkJvb2xlYW4sZXJyb3JNZXNzYWdlQWxpZ246U3RyaW5nLGNvbG9uOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfX0pLGVtaXRzOltgYmx1cmAsYGZvY3VzYCxgY2xlYXJgLGBrZXlwcmVzc2AsYGNsaWNrSW5wdXRgLGBlbmRWYWxpZGF0ZWAsYHN0YXJ0VmFsaWRhdGVgLGBjbGlja0xlZnRJY29uYCxgY2xpY2tSaWdodEljb25gLGB1cGRhdGU6bW9kZWxWYWx1ZWBdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7bGV0IGk9RWEoKSxhPWMoe3N0YXR1czpgdW52YWxpZGF0ZWRgLGZvY3VzZWQ6ITEsdmFsaWRhdGVNZXNzYWdlOmBgfSksbz1iKCkscz1iKCksbD1iKCkse3BhcmVudDp1fT15bihCciksZD0oKT0+U3RyaW5nKGUubW9kZWxWYWx1ZT8/YGApLHA9dD0+e2lmKEwoZVt0XSkpcmV0dXJuIGVbdF07aWYodSYmTCh1LnByb3BzW3RdKSlyZXR1cm4gdS5wcm9wc1t0XX0saD1OKCgpPT57bGV0IHQ9cChgcmVhZG9ubHlgKTtpZihlLmNsZWFyYWJsZSYmIXQpe2xldCB0PWQoKSE9PWBgLG49ZS5jbGVhclRyaWdnZXI9PT1gYWx3YXlzYHx8ZS5jbGVhclRyaWdnZXI9PT1gZm9jdXNgJiZhLmZvY3VzZWQ7cmV0dXJuIHQmJm59cmV0dXJuITF9KSxnPU4oKCk9PmwudmFsdWUmJm4uaW5wdXQ/bC52YWx1ZSgpOmUubW9kZWxWYWx1ZSksXz1OKCgpPT57bGV0IHQ9cChgcmVxdWlyZWRgKTtyZXR1cm4gdD09PWBhdXRvYD9lLnJ1bGVzPy5zb21lKGU9PmUucmVxdWlyZWQpOnR9KSx2PWU9PmUucmVkdWNlKChlLHQpPT5lLnRoZW4oKCk9PntpZihhLnN0YXR1cz09PWBmYWlsZWRgKXJldHVybjtsZXR7dmFsdWU6ZX09ZztpZih0LmZvcm1hdHRlciYmKGU9dC5mb3JtYXR0ZXIoZSx0KSksIWtvKGUsdCkpe2Euc3RhdHVzPWBmYWlsZWRgLGEudmFsaWRhdGVNZXNzYWdlPWpvKGUsdCk7cmV0dXJufWlmKHQudmFsaWRhdG9yKXJldHVybiBPbyhlKSYmdC52YWxpZGF0ZUVtcHR5PT09ITE/dm9pZCAwOkFvKGUsdCkudGhlbihuPT57biYmdHlwZW9mIG49PWBzdHJpbmdgPyhhLnN0YXR1cz1gZmFpbGVkYCxhLnZhbGlkYXRlTWVzc2FnZT1uKTpuPT09ITEmJihhLnN0YXR1cz1gZmFpbGVkYCxhLnZhbGlkYXRlTWVzc2FnZT1qbyhlLHQpKX0pfSksUHJvbWlzZS5yZXNvbHZlKCkpLHk9KCk9PnthLnN0YXR1cz1gdW52YWxpZGF0ZWRgLGEudmFsaWRhdGVNZXNzYWdlPWBgfSx4PSgpPT50KGBlbmRWYWxpZGF0ZWAse3N0YXR1czphLnN0YXR1cyxtZXNzYWdlOmEudmFsaWRhdGVNZXNzYWdlfSksUz0obj1lLnJ1bGVzKT0+bmV3IFByb21pc2Uocj0+e3koKSxuPyh0KGBzdGFydFZhbGlkYXRlYCksdihuKS50aGVuKCgpPT57YS5zdGF0dXM9PT1gZmFpbGVkYD8ocih7bmFtZTplLm5hbWUsbWVzc2FnZTphLnZhbGlkYXRlTWVzc2FnZX0pLHgoKSk6KGEuc3RhdHVzPWBwYXNzZWRgLHIoKSx4KCkpfSkpOnIoKX0pLEM9dD0+e2lmKHUmJmUucnVsZXMpe2xldHt2YWxpZGF0ZVRyaWdnZXI6bn09dS5wcm9wcyxyPWNuKG4pLmluY2x1ZGVzKHQpLGk9ZS5ydWxlcy5maWx0ZXIoZT0+ZS50cmlnZ2VyP2NuKGUudHJpZ2dlcikuaW5jbHVkZXModCk6cik7aS5sZW5ndGgmJlMoaSl9fSx3PXQ9PntsZXR7bWF4bGVuZ3RoOm59PWU7aWYoTChuKSYmSW8odCk+K24pe2xldCBlPWQoKTtpZihlJiZJbyhlKT09PStuKXJldHVybiBlO2xldCByPW8udmFsdWU/LnNlbGVjdGlvbkVuZDtpZihhLmZvY3VzZWQmJnIpe2xldCBlPVsuLi50XSxpPWUubGVuZ3RoLStuO3JldHVybiByPUlvKHQuc2xpY2UoMCxyKSksZS5zcGxpY2Uoci1pLGkpLGUuam9pbihgYCl9cmV0dXJuIExvKHQsK24pfXJldHVybiB0fSxUPShuLHI9YG9uQ2hhbmdlYCk9PntsZXQgaT1uO249dyhuKTtsZXQgcz1pLmxlbmd0aC1uLmxlbmd0aDtpZihlLnR5cGU9PT1gbnVtYmVyYHx8ZS50eXBlPT09YGRpZ2l0YCl7bGV0IHQ9ZS50eXBlPT09YG51bWJlcmA7aWYobj12cihuLHQsdCkscj09PWBvbkJsdXJgJiZuIT09YGAmJihlLm1pbiE9PXZvaWQgMHx8ZS5tYXghPT12b2lkIDApKXtsZXQgdD1ncigrbixlLm1pbj8/LTEvMCxlLm1heD8/MS8wKTsrbiE9PXQmJihuPXQudG9TdHJpbmcoKSl9fWxldCBjPTA7aWYoZS5mb3JtYXR0ZXImJnI9PT1lLmZvcm1hdFRyaWdnZXIpe2xldHtmb3JtYXR0ZXI6dCxtYXhsZW5ndGg6cn09ZTtpZihuPXQobiksTChyKSYmSW8obik+K3ImJihuPUxvKG4sK3IpKSxvLnZhbHVlJiZhLmZvY3VzZWQpe2xldHtzZWxlY3Rpb25FbmQ6ZX09by52YWx1ZSxuPUxvKGksZSk7Yz10KG4pLmxlbmd0aC1uLmxlbmd0aH19aWYoby52YWx1ZSYmby52YWx1ZS52YWx1ZSE9PW4paWYoYS5mb2N1c2VkKXtsZXR7c2VsZWN0aW9uU3RhcnQ6ZSxzZWxlY3Rpb25FbmQ6dH09by52YWx1ZTtpZihvLnZhbHVlLnZhbHVlPW4sTChlKSYmTCh0KSl7bGV0IHI9bi5sZW5ndGg7cz8oZS09cyx0LT1zKTpjJiYoZSs9Yyx0Kz1jKSxvLnZhbHVlLnNldFNlbGVjdGlvblJhbmdlKE1hdGgubWluKGUsciksTWF0aC5taW4odCxyKSl9fWVsc2Ugby52YWx1ZS52YWx1ZT1uO24hPT1lLm1vZGVsVmFsdWUmJnQoYHVwZGF0ZTptb2RlbFZhbHVlYCxuKX0sRD1lPT57ZS50YXJnZXQuY29tcG9zaW5nfHxUKGUudGFyZ2V0LnZhbHVlKX0sTz0oKT0+by52YWx1ZT8uYmx1cigpLGs9KCk9Pm8udmFsdWU/LmZvY3VzKCksQT0oKT0+e2xldCB0PW8udmFsdWU7ZS50eXBlPT09YHRleHRhcmVhYCYmZS5hdXRvc2l6ZSYmdCYmUG8odCxlLmF1dG9zaXplKX0saj1lPT57YS5mb2N1c2VkPSEwLHQoYGZvY3VzYCxlKSxGKEEpLHAoYHJlYWRvbmx5YCkmJk8oKX0sZWU9ZT0+e2EuZm9jdXNlZD0hMSxUKGQoKSxgb25CbHVyYCksdChgYmx1cmAsZSksIXAoYHJlYWRvbmx5YCkmJihDKGBvbkJsdXJgKSxGKEEpLFpuKCkpfSx0ZT1lPT50KGBjbGlja0lucHV0YCxlKSxuZT1lPT50KGBjbGlja0xlZnRJY29uYCxlKSxyZT1lPT50KGBjbGlja1JpZ2h0SWNvbmAsZSksYWU9ZT0+e0soZSksdChgdXBkYXRlOm1vZGVsVmFsdWVgLGBgKSx0KGBjbGVhcmAsZSl9LG9lPU4oKCk9PntpZih0eXBlb2YgZS5lcnJvcj09YGJvb2xlYW5gKXJldHVybiBlLmVycm9yO2lmKHUmJnUucHJvcHMuc2hvd0Vycm9yJiZhLnN0YXR1cz09PWBmYWlsZWRgKXJldHVybiEwfSksc2U9TigoKT0+e2xldCBlPXAoYGxhYmVsV2lkdGhgKSx0PXAoYGxhYmVsQWxpZ25gKTtpZihlJiZ0IT09YHRvcGApcmV0dXJue3dpZHRoOnEoZSl9fSksY2U9bj0+e24ua2V5Q29kZT09PTEzJiYoISh1JiZ1LnByb3BzLnN1Ym1pdE9uRW50ZXIpJiZlLnR5cGUhPT1gdGV4dGFyZWFgJiZLKG4pLGUudHlwZT09PWBzZWFyY2hgJiZPKCkpLHQoYGtleXByZXNzYCxuKX0sbGU9KCk9PmUuaWR8fGAke2l9LWlucHV0YCx1ZT0oKT0+YS5zdGF0dXMsZGU9KCk9PntsZXQgdD16byhgY29udHJvbGAsW3AoYGlucHV0QWxpZ25gKSx7ZXJyb3I6b2UudmFsdWUsY3VzdG9tOiEhbi5pbnB1dCwibWluLWhlaWdodCI6ZS50eXBlPT09YHRleHRhcmVhYCYmIWUuYXV0b3NpemV9XSk7aWYobi5pbnB1dClyZXR1cm4gRShgZGl2YCx7Y2xhc3M6dCxvbkNsaWNrOnRlfSxbbi5pbnB1dCgpXSk7bGV0IGE9e2lkOmxlKCkscmVmOm8sbmFtZTplLm5hbWUscm93czplLnJvd3M9PT12b2lkIDA/dm9pZCAwOitlLnJvd3MsY2xhc3M6dCxkaXNhYmxlZDpwKGBkaXNhYmxlZGApLHJlYWRvbmx5OnAoYHJlYWRvbmx5YCksYXV0b2ZvY3VzOmUuYXV0b2ZvY3VzLHBsYWNlaG9sZGVyOmUucGxhY2Vob2xkZXIsYXV0b2NvbXBsZXRlOmUuYXV0b2NvbXBsZXRlLGF1dG9jYXBpdGFsaXplOmUuYXV0b2NhcGl0YWxpemUsYXV0b2NvcnJlY3Q6ZS5hdXRvY29ycmVjdCxlbnRlcmtleWhpbnQ6ZS5lbnRlcmtleWhpbnQsc3BlbGxjaGVjazplLnNwZWxsY2hlY2ssImFyaWEtbGFiZWxsZWRieSI6ZS5sYWJlbD9gJHtpfS1sYWJlbGA6dm9pZCAwLCJkYXRhLWFsbG93LW1pc21hdGNoIjpgYXR0cmlidXRlYCxvbkJsdXI6ZWUsb25Gb2N1czpqLG9uSW5wdXQ6RCxvbkNsaWNrOnRlLG9uQ2hhbmdlOk5vLG9uS2V5cHJlc3M6Y2Usb25Db21wb3NpdGlvbmVuZDpObyxvbkNvbXBvc2l0aW9uc3RhcnQ6TW99O3JldHVybiBlLnR5cGU9PT1gdGV4dGFyZWFgP0UoYHRleHRhcmVhYCxyKGEse2lucHV0bW9kZTplLmlucHV0bW9kZX0pLG51bGwpOkUoYGlucHV0YCxyKEZvKGUudHlwZSxlLmlucHV0bW9kZSksYSksbnVsbCl9LGZlPSgpPT57bGV0IHQ9bltgbGVmdC1pY29uYF07aWYoZS5sZWZ0SWNvbnx8dClyZXR1cm4gRShgZGl2YCx7Y2xhc3M6em8oYGxlZnQtaWNvbmApLG9uQ2xpY2s6bmV9LFt0P3QoKTpFKFose25hbWU6ZS5sZWZ0SWNvbixjbGFzc1ByZWZpeDplLmljb25QcmVmaXh9LG51bGwpXSl9LHBlPSgpPT57bGV0IHQ9bltgcmlnaHQtaWNvbmBdO2lmKGUucmlnaHRJY29ufHx0KXJldHVybiBFKGBkaXZgLHtjbGFzczp6byhgcmlnaHQtaWNvbmApLG9uQ2xpY2s6cmV9LFt0P3QoKTpFKFose25hbWU6ZS5yaWdodEljb24sY2xhc3NQcmVmaXg6ZS5pY29uUHJlZml4fSxudWxsKV0pfSxtZT0oKT0+e2lmKGUuc2hvd1dvcmRMaW1pdCYmZS5tYXhsZW5ndGgpe2xldCB0PUlvKGQoKSk7cmV0dXJuIEUoYGRpdmAse2NsYXNzOnpvKGB3b3JkLWxpbWl0YCl9LFtFKGBzcGFuYCx7Y2xhc3M6em8oYHdvcmQtbnVtYCl9LFt0XSksaWUoYC9gKSxlLm1heGxlbmd0aF0pfX0saGU9KCk9PntpZih1JiZ1LnByb3BzLnNob3dFcnJvck1lc3NhZ2U9PT0hMSlyZXR1cm47bGV0IHQ9ZS5lcnJvck1lc3NhZ2V8fGEudmFsaWRhdGVNZXNzYWdlO2lmKHQpe2xldCBlPW5bYGVycm9yLW1lc3NhZ2VgXTtyZXR1cm4gRShgZGl2YCx7Y2xhc3M6em8oYGVycm9yLW1lc3NhZ2VgLHAoYGVycm9yTWVzc2FnZUFsaWduYCkpfSxbZT9lKHttZXNzYWdlOnR9KTp0XSl9fSxnZT0oKT0+e2xldCB0PXAoYGxhYmVsV2lkdGhgKSxyPXAoYGxhYmVsQWxpZ25gKSxhPXAoYGNvbG9uYCk/YDpgOmBgO2lmKG4ubGFiZWwpcmV0dXJuW24ubGFiZWwoKSxhXTtpZihlLmxhYmVsKXJldHVybiBFKGBsYWJlbGAse2lkOmAke2l9LWxhYmVsYCxmb3I6bi5pbnB1dD92b2lkIDA6bGUoKSwiZGF0YS1hbGxvdy1taXNtYXRjaCI6YGF0dHJpYnV0ZWAsb25DbGljazplPT57SyhlKSxrKCl9LHN0eWxlOnI9PT1gdG9wYCYmdD97d2lkdGg6cSh0KX06dm9pZCAwfSxbZS5sYWJlbCthXSl9LF9lPSgpPT5bRShgZGl2YCx7Y2xhc3M6em8oYGJvZHlgKX0sW2RlKCksaC52YWx1ZSYmRShaLHtyZWY6cyxuYW1lOmUuY2xlYXJJY29uLGNsYXNzOnpvKGBjbGVhcmApfSxudWxsKSxwZSgpLG4uYnV0dG9uJiZFKGBkaXZgLHtjbGFzczp6byhgYnV0dG9uYCl9LFtuLmJ1dHRvbigpXSldKSxtZSgpLGhlKCldO3JldHVybiBYKHtibHVyOk8sZm9jdXM6ayx2YWxpZGF0ZTpTLGZvcm1WYWx1ZTpnLHJlc2V0VmFsaWRhdGlvbjp5LGdldFZhbGlkYXRpb25TdGF0dXM6dWV9KSxtKFVuLHtjdXN0b21WYWx1ZTpsLHJlc2V0VmFsaWRhdGlvbjp5LHZhbGlkYXRlV2l0aFRyaWdnZXI6Q30pLGYoKCk9PmUubW9kZWxWYWx1ZSwoKT0+e1QoZCgpKSx5KCksQyhgb25DaGFuZ2VgKSxGKEEpfSksTSgoKT0+e1QoZCgpLGUuZm9ybWF0VHJpZ2dlciksRihBKX0pLEcoYHRvdWNoc3RhcnRgLGFlLHt0YXJnZXQ6TigoKT0+cy52YWx1ZT8uJGVsKX0pLCgpPT57bGV0IHQ9cChgZGlzYWJsZWRgKSxyPXAoYGxhYmVsQWxpZ25gKSxpPWZlKCksYT0oKT0+e2xldCBlPWdlKCk7cmV0dXJuIHI9PT1gdG9wYD9baSxlXS5maWx0ZXIoQm9vbGVhbik6ZXx8W119O3JldHVybiBFKHdvLHtzaXplOmUuc2l6ZSxjbGFzczp6byh7ZXJyb3I6b2UudmFsdWUsZGlzYWJsZWQ6dCxbYGxhYmVsLSR7cn1gXTpyfSksY2VudGVyOmUuY2VudGVyLGJvcmRlcjplLmJvcmRlcixpc0xpbms6ZS5pc0xpbmssY2xpY2thYmxlOmUuY2xpY2thYmxlLHRpdGxlU3R5bGU6c2UudmFsdWUsdmFsdWVDbGFzczp6byhgdmFsdWVgKSx0aXRsZUNsYXNzOlt6byhgbGFiZWxgLFtyLHtyZXF1aXJlZDpfLnZhbHVlfV0pLGUubGFiZWxDbGFzc10sYXJyb3dEaXJlY3Rpb246ZS5hcnJvd0RpcmVjdGlvbn0se2ljb246aSYmciE9PWB0b3BgPygpPT5pOm51bGwsdGl0bGU6YSx2YWx1ZTpfZSxleHRyYTpuLmV4dHJhfSl9fX0pKSxIbz0wO2Z1bmN0aW9uIFVvKGUpe2U/KEhvfHxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoYHZhbi10b2FzdC0tdW5jbGlja2FibGVgKSxIbysrKTpIbyYmKEhvLS0sSG98fGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShgdmFuLXRvYXN0LS11bmNsaWNrYWJsZWApKX12YXJbV28sR29dPUooYHRvYXN0YCksS289W2BzaG93YCxgb3ZlcmxheWAsYHRlbGVwb3J0YCxgdHJhbnNpdGlvbmAsYG92ZXJsYXlDbGFzc2AsYG92ZXJsYXlTdHlsZWAsYGNsb3NlT25DbGlja092ZXJsYXlgLGB6SW5kZXhgXSxxbz1QKHtuYW1lOldvLHByb3BzOntpY29uOlN0cmluZyxzaG93OkJvb2xlYW4sdHlwZTpVKGB0ZXh0YCksb3ZlcmxheTpCb29sZWFuLG1lc3NhZ2U6eixpY29uU2l6ZTp6LGR1cmF0aW9uOmRuKDJlMykscG9zaXRpb246VShgbWlkZGxlYCksdGVsZXBvcnQ6W1N0cmluZyxPYmplY3RdLHdvcmRCcmVhazpTdHJpbmcsY2xhc3NOYW1lOm51bGwsaWNvblByZWZpeDpTdHJpbmcsdHJhbnNpdGlvbjpVKGB2YW4tZmFkZWApLGxvYWRpbmdUeXBlOlN0cmluZyxmb3JiaWRDbGljazpCb29sZWFuLG92ZXJsYXlDbGFzczpudWxsLG92ZXJsYXlTdHlsZTpPYmplY3QsY2xvc2VPbkNsaWNrOkJvb2xlYW4sY2xvc2VPbkNsaWNrT3ZlcmxheTpCb29sZWFuLHpJbmRleDp6fSxlbWl0czpbYHVwZGF0ZTpzaG93YF0sc2V0dXAoZSx7ZW1pdDpuLHNsb3RzOml9KXtsZXQgYSxvPSExLHM9KCk9PntsZXQgdD1lLnNob3cmJmUuZm9yYmlkQ2xpY2s7byE9PXQmJihvPXQsVW8obykpfSxjPWU9Pm4oYHVwZGF0ZTpzaG93YCxlKSxsPSgpPT57ZS5jbG9zZU9uQ2xpY2smJmMoITEpfSx1PSgpPT5jbGVhclRpbWVvdXQoYSksZD0oKT0+e2xldHtpY29uOnQsdHlwZTpuLGljb25TaXplOnIsaWNvblByZWZpeDppLGxvYWRpbmdUeXBlOmF9PWU7aWYodHx8bj09PWBzdWNjZXNzYHx8bj09PWBmYWlsYClyZXR1cm4gRShaLHtuYW1lOnR8fG4sc2l6ZTpyLGNsYXNzOkdvKGBpY29uYCksY2xhc3NQcmVmaXg6aX0sbnVsbCk7aWYobj09PWBsb2FkaW5nYClyZXR1cm4gRShTaSx7Y2xhc3M6R28oYGxvYWRpbmdgKSxzaXplOnIsdHlwZTphfSxudWxsKX0scD0oKT0+e2xldHt0eXBlOnQsbWVzc2FnZTpufT1lO2lmKGkubWVzc2FnZSlyZXR1cm4gRShgZGl2YCx7Y2xhc3M6R28oYHRleHRgKX0sW2kubWVzc2FnZSgpXSk7aWYoTChuKSYmbiE9PWBgKXJldHVybiB0PT09YGh0bWxgP0UoYGRpdmAse2tleTowLGNsYXNzOkdvKGB0ZXh0YCksaW5uZXJIVE1MOlN0cmluZyhuKX0sbnVsbCk6RShgZGl2YCx7Y2xhc3M6R28oYHRleHRgKX0sW25dKX07cmV0dXJuIGYoKCk9PltlLnNob3csZS5mb3JiaWRDbGlja10scyksZigoKT0+W2Uuc2hvdyxlLnR5cGUsZS5tZXNzYWdlLGUuZHVyYXRpb25dLCgpPT57dSgpLGUuc2hvdyYmZS5kdXJhdGlvbj4wJiYoYT1zZXRUaW1lb3V0KCgpPT57YyghMSl9LGUuZHVyYXRpb24pKX0pLE0ocyksdChzKSwoKT0+RShxaSxyKHtjbGFzczpbR28oW2UucG9zaXRpb24sZS53b3JkQnJlYWs9PT1gbm9ybWFsYD9gYnJlYWstbm9ybWFsYDplLndvcmRCcmVhayx7W2UudHlwZV06IWUuaWNvbn1dKSxlLmNsYXNzTmFtZV0sbG9ja1Njcm9sbDohMSxvbkNsaWNrOmwsb25DbG9zZWQ6dSwib25VcGRhdGU6c2hvdyI6Y30sUihlLEtvKSkse2RlZmF1bHQ6KCk9PltkKCkscCgpXX0pfX0pO2Z1bmN0aW9uIEpvKCl7bGV0IGU9Yyh7c2hvdzohMX0pLHQ9dD0+e2Uuc2hvdz10fSxuPW49PntJKGUsbix7dHJhbnNpdGlvbkFwcGVhcjohMH0pLHQoITApfSxyPSgpPT50KCExKTtyZXR1cm4gWCh7b3BlbjpuLGNsb3NlOnIsdG9nZ2xlOnR9KSx7b3BlbjpuLGNsb3NlOnIsc3RhdGU6ZSx0b2dnbGU6dH19ZnVuY3Rpb24gWW8oZSl7bGV0IHQ9cXQoZSksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBkaXZgKTtyZXR1cm4gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKSx7aW5zdGFuY2U6dC5tb3VudChuKSx1bm1vdW50KCl7dC51bm1vdW50KCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChuKX19fXZhciBYbz17aWNvbjpgYCx0eXBlOmB0ZXh0YCxtZXNzYWdlOmBgLGNsYXNzTmFtZTpgYCxvdmVybGF5OiExLG9uQ2xvc2U6dm9pZCAwLG9uT3BlbmVkOnZvaWQgMCxkdXJhdGlvbjoyZTMsdGVsZXBvcnQ6YGJvZHlgLGljb25TaXplOnZvaWQgMCxpY29uUHJlZml4OnZvaWQgMCxwb3NpdGlvbjpgbWlkZGxlYCx0cmFuc2l0aW9uOmB2YW4tZmFkZWAsZm9yYmlkQ2xpY2s6ITEsbG9hZGluZ1R5cGU6dm9pZCAwLG92ZXJsYXlDbGFzczpgYCxvdmVybGF5U3R5bGU6dm9pZCAwLGNsb3NlT25DbGljazohMSxjbG9zZU9uQ2xpY2tPdmVybGF5OiExfSxabz1bXSxRbz0hMSwkbz1JKHt9LFhvKSxlcz1uZXcgTWFwO2Z1bmN0aW9uIHRzKGUpe3JldHVybiBRdChlKT9lOnttZXNzYWdlOmV9fWZ1bmN0aW9uIG5zKCl7bGV0e2luc3RhbmNlOmUsdW5tb3VudDp0fT1Zbyh7c2V0dXAoKXtsZXQgbj1iKGBgKSx7b3BlbjppLHN0YXRlOmEsY2xvc2U6byx0b2dnbGU6c309Sm8oKSxjPSgpPT57UW8mJihabz1aby5maWx0ZXIodD0+dCE9PWUpLHQoKSl9LGw9KCk9PkUocW8scihhLHtvbkNsb3NlZDpjLCJvblVwZGF0ZTpzaG93IjpzfSksbnVsbCk7cmV0dXJuIGYobixlPT57YS5tZXNzYWdlPWV9KSxUZSgpLnJlbmRlcj1sLHtvcGVuOmksY2xvc2U6byxtZXNzYWdlOm59fX0pO3JldHVybiBlfWZ1bmN0aW9uIHJzKCl7aWYoIVpvLmxlbmd0aHx8UW8pe2xldCBlPW5zKCk7Wm8ucHVzaChlKX1yZXR1cm4gWm9bWm8ubGVuZ3RoLTFdfWZ1bmN0aW9uIGlzKGU9e30pe2lmKCFadClyZXR1cm57fTtsZXQgdD1ycygpLG49dHMoZSk7cmV0dXJuIHQub3BlbihJKHt9LCRvLGVzLmdldChuLnR5cGV8fCRvLnR5cGUpLG4pKSx0fXZhciBhcz1lPT50PT5pcyhJKHt0eXBlOmV9LHRzKHQpKSksb3M9YXMoYGxvYWRpbmdgKSxzcz1hcyhgc3VjY2Vzc2ApLGNzPWFzKGBmYWlsYCksbHM9ZT0+e3ZhciB0O1pvLmxlbmd0aCYmKGU/KFpvLmZvckVhY2goZT0+e2UuY2xvc2UoKX0pLFpvPVtdKTpRbz8odD1aby5zaGlmdCgpKT09bnVsbHx8dC5jbG9zZSgpOlpvWzBdLmNsb3NlKCkpfSx1cz1ZKHFvKSxbZHMsZnNdPUooYHN3aXRjaGApLHBzPVkoUCh7bmFtZTpkcyxwcm9wczp7c2l6ZTp6LGxvYWRpbmc6Qm9vbGVhbixkaXNhYmxlZDpCb29sZWFuLG1vZGVsVmFsdWU6bnVsbCxhY3RpdmVDb2xvcjpTdHJpbmcsaW5hY3RpdmVDb2xvcjpTdHJpbmcsYWN0aXZlVmFsdWU6e3R5cGU6bnVsbCxkZWZhdWx0OiEwfSxpbmFjdGl2ZVZhbHVlOnt0eXBlOm51bGwsZGVmYXVsdDohMX19LGVtaXRzOltgY2hhbmdlYCxgdXBkYXRlOm1vZGVsVmFsdWVgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCByPSgpPT5lLm1vZGVsVmFsdWU9PT1lLmFjdGl2ZVZhbHVlLGk9KCk9PntpZighZS5kaXNhYmxlZCYmIWUubG9hZGluZyl7bGV0IG49cigpP2UuaW5hY3RpdmVWYWx1ZTplLmFjdGl2ZVZhbHVlO3QoYHVwZGF0ZTptb2RlbFZhbHVlYCxuKSx0KGBjaGFuZ2VgLG4pfX0sYT0oKT0+e2lmKGUubG9hZGluZyl7bGV0IHQ9cigpP2UuYWN0aXZlQ29sb3I6ZS5pbmFjdGl2ZUNvbG9yO3JldHVybiBFKFNpLHtjbGFzczpmcyhgbG9hZGluZ2ApLGNvbG9yOnR9LG51bGwpfWlmKG4ubm9kZSlyZXR1cm4gbi5ub2RlKCl9O3JldHVybiBXbigoKT0+ZS5tb2RlbFZhbHVlKSwoKT0+e2xldHtzaXplOnQsbG9hZGluZzpvLGRpc2FibGVkOnMsYWN0aXZlQ29sb3I6YyxpbmFjdGl2ZUNvbG9yOmx9PWUsdT1yKCksZD17Zm9udFNpemU6cSh0KSxiYWNrZ3JvdW5kQ29sb3I6dT9jOmx9O3JldHVybiBFKGBkaXZgLHtyb2xlOmBzd2l0Y2hgLGNsYXNzOmZzKHtvbjp1LGxvYWRpbmc6byxkaXNhYmxlZDpzfSksc3R5bGU6ZCx0YWJpbmRleDpzP3ZvaWQgMDowLCJhcmlhLWNoZWNrZWQiOnUsb25DbGljazppfSxbRShgZGl2YCx7Y2xhc3M6ZnMoYG5vZGVgKX0sW2EoKV0pLG4uYmFja2dyb3VuZD8uY2FsbChuKV0pfX19KSksW21zLGhzXT1KKGBhZGRyZXNzLWVkaXQtZGV0YWlsYCksZ3M9SihgYWRkcmVzcy1lZGl0YClbMl0sX3M9UCh7bmFtZTptcyxwcm9wczp7c2hvdzpCb29sZWFuLHJvd3M6eix2YWx1ZTpTdHJpbmcscnVsZXM6QXJyYXksZm9jdXNlZDpCb29sZWFuLG1heGxlbmd0aDp6LHNlYXJjaFJlc3VsdDpBcnJheSxzaG93U2VhcmNoUmVzdWx0OkJvb2xlYW59LGVtaXRzOltgYmx1cmAsYGZvY3VzYCxgaW5wdXRgLGBzZWxlY3RTZWFyY2hgXSxzZXR1cChlLHtlbWl0OnR9KXtsZXQgbj1iKCkscj0oKT0+ZS5mb2N1c2VkJiZlLnNlYXJjaFJlc3VsdCYmZS5zaG93U2VhcmNoUmVzdWx0LGk9ZT0+e3QoYHNlbGVjdFNlYXJjaGAsZSksdChgaW5wdXRgLGAke2UuYWRkcmVzc3x8YGB9ICR7ZS5uYW1lfHxgYH1gLnRyaW0oKSl9LGE9KCk9PntpZighcigpKXJldHVybjtsZXR7c2VhcmNoUmVzdWx0OnR9PWU7cmV0dXJuIHQubWFwKGU9PkUod28se2NsaWNrYWJsZTohMCxrZXk6KGUubmFtZXx8YGApKyhlLmFkZHJlc3N8fGBgKSxpY29uOmBsb2NhdGlvbi1vYCx0aXRsZTplLm5hbWUsbGFiZWw6ZS5hZGRyZXNzLGNsYXNzOmhzKGBzZWFyY2gtaXRlbWApLGJvcmRlcjohMSxvbkNsaWNrOigpPT5pKGUpfSxudWxsKSl9LG89ZT0+dChgYmx1cmAsZSkscz1lPT50KGBmb2N1c2AsZSksYz1lPT50KGBpbnB1dGAsZSk7cmV0dXJuKCk9PntpZihlLnNob3cpcmV0dXJuIEUoRCxudWxsLFtFKFZvLHthdXRvc2l6ZTohMCxjbGVhcmFibGU6ITAscmVmOm4sY2xhc3M6aHMoKSxyb3dzOmUucm93cyx0eXBlOmB0ZXh0YXJlYWAscnVsZXM6ZS5ydWxlcyxsYWJlbDpncyhgYWRkcmVzc0RldGFpbGApLGJvcmRlcjohcigpLG1heGxlbmd0aDplLm1heGxlbmd0aCxtb2RlbFZhbHVlOmUudmFsdWUscGxhY2Vob2xkZXI6Z3MoYGFkZHJlc3NEZXRhaWxgKSxvbkJsdXI6byxvbkZvY3VzOnMsIm9uVXBkYXRlOm1vZGVsVmFsdWUiOmN9LG51bGwpLGEoKV0pfX19KSxbdnMseXMsYnNdPUooYGFkZHJlc3MtZWRpdGApLHhzPXtuYW1lOmBgLHRlbDpgYCxjaXR5OmBgLGNvdW50eTpgYCxwcm92aW5jZTpgYCxhcmVhQ29kZTpgYCxpc0RlZmF1bHQ6ITEsYWRkcmVzc0RldGFpbDpgYH0sU3M9WShQKHtuYW1lOnZzLHByb3BzOnthcmVhTGlzdDpPYmplY3QsaXNTYXZpbmc6Qm9vbGVhbixpc0RlbGV0aW5nOkJvb2xlYW4sdmFsaWRhdG9yOkZ1bmN0aW9uLHNob3dBcmVhOkIsc2hvd0RldGFpbDpCLHNob3dEZWxldGU6Qm9vbGVhbixkaXNhYmxlQXJlYTpCb29sZWFuLHNlYXJjaFJlc3VsdDpBcnJheSx0ZWxNYXhsZW5ndGg6eixzaG93U2V0RGVmYXVsdDpCb29sZWFuLHNhdmVCdXR0b25UZXh0OlN0cmluZyxhcmVhUGxhY2Vob2xkZXI6U3RyaW5nLGRlbGV0ZUJ1dHRvblRleHQ6U3RyaW5nLHNob3dTZWFyY2hSZXN1bHQ6Qm9vbGVhbixkZXRhaWxSb3dzOkgoMSksZGV0YWlsTWF4bGVuZ3RoOkgoMjAwKSxhcmVhQ29sdW1uc1BsYWNlaG9sZGVyOlYoKSxhZGRyZXNzSW5mbzp7dHlwZTpPYmplY3QsZGVmYXVsdDooKT0+SSh7fSx4cyl9LHRlbFZhbGlkYXRvcjp7dHlwZTpGdW5jdGlvbixkZWZhdWx0Om5ufX0sZW1pdHM6W2BzYXZlYCxgZm9jdXNgLGBjaGFuZ2VgLGBkZWxldGVgLGBjbGlja0FyZWFgLGBjaGFuZ2VBcmVhYCxgY2hhbmdlRGV0YWlsYCxgc2VsZWN0U2VhcmNoYCxgY2hhbmdlRGVmYXVsdGBdLHNldHVwKGUse2VtaXQ6dCxzbG90czpyfSl7bGV0IGk9YigpLGE9Yyh7fSksbz1iKCExKSxzPWIoITEpLGw9TigoKT0+UXQoZS5hcmVhTGlzdCkmJk9iamVjdC5rZXlzKGUuYXJlYUxpc3QpLmxlbmd0aCksdT1OKCgpPT57bGV0e3Byb3ZpbmNlOmUsY2l0eTp0LGNvdW50eTpuLGFyZWFDb2RlOnJ9PWE7aWYocil7bGV0IHI9W2UsdCxuXTtyZXR1cm4gZSYmZT09PXQmJnIuc3BsaWNlKDEsMSksci5maWx0ZXIoQm9vbGVhbikuam9pbihgL2ApfXJldHVybmBgfSksZD1OKCgpPT5lLnNlYXJjaFJlc3VsdD8ubGVuZ3RoJiZzLnZhbHVlKSxwPWU9PntzLnZhbHVlPWU9PT1gYWRkcmVzc0RldGFpbGAsdChgZm9jdXNgLGUpfSxtPShlLG4pPT57dChgY2hhbmdlYCx7a2V5OmUsdmFsdWU6bn0pfSxoPU4oKCk9PntsZXR7dmFsaWRhdG9yOnQsdGVsVmFsaWRhdG9yOm59PWUscj0oZSxuKT0+KHt2YWxpZGF0b3I6cj0+e2lmKHQpe2xldCBuPXQoZSxyKTtpZihuKXJldHVybiBufXJldHVybiByPyEwOm59fSk7cmV0dXJue25hbWU6W3IoYG5hbWVgLGJzKGBuYW1lRW1wdHlgKSldLHRlbDpbcihgdGVsYCxicyhgdGVsSW52YWxpZGApKSx7dmFsaWRhdG9yOm4sbWVzc2FnZTpicyhgdGVsSW52YWxpZGApfV0sYXJlYUNvZGU6W3IoYGFyZWFDb2RlYCxicyhgYXJlYUVtcHR5YCkpXSxhZGRyZXNzRGV0YWlsOltyKGBhZGRyZXNzRGV0YWlsYCxicyhgYWRkcmVzc0VtcHR5YCkpXX19KSxnPSgpPT50KGBzYXZlYCxhKSxfPWU9PnthLmFkZHJlc3NEZXRhaWw9ZSx0KGBjaGFuZ2VEZXRhaWxgLGUpfSx2PWU9PnthLnByb3ZpbmNlPWVbMF0udGV4dCxhLmNpdHk9ZVsxXS50ZXh0LGEuY291bnR5PWVbMl0udGV4dH0seT0oe3NlbGVjdGVkVmFsdWVzOmUsc2VsZWN0ZWRPcHRpb25zOm59KT0+e2Uuc29tZShlPT5lPT09YDAwMDAwMGApP2lzKGJzKGBhcmVhRW1wdHlgKSk6KG8udmFsdWU9ITEsdihuKSx0KGBjaGFuZ2VBcmVhYCxuKSl9LHg9KCk9PnQoYGRlbGV0ZWAsYSksUz1lPT57YS5hcmVhQ29kZT1lfHxgYH0sQz0oKT0+e3NldFRpbWVvdXQoKCk9PntzLnZhbHVlPSExfSl9LHc9ZT0+e2EuYWRkcmVzc0RldGFpbD1lfSxUPSgpPT57aWYoZS5zaG93U2V0RGVmYXVsdClyZXR1cm4gbihFKHdvLHtjZW50ZXI6ITAsYm9yZGVyOiExLHRpdGxlOmJzKGBkZWZhdWx0QWRkcmVzc2ApLGNsYXNzOnlzKGBkZWZhdWx0YCl9LHsicmlnaHQtaWNvbiI6KCk9PkUocHMse21vZGVsVmFsdWU6YS5pc0RlZmF1bHQsIm9uVXBkYXRlOm1vZGVsVmFsdWUiOmU9PmEuaXNEZWZhdWx0PWUsb25DaGFuZ2U6ZT0+dChgY2hhbmdlRGVmYXVsdGAsZSl9LG51bGwpfSksW1tpdCwhZC52YWx1ZV1dKX07cmV0dXJuIFgoe3NldEFyZWFDb2RlOlMsc2V0QWRkcmVzc0RldGFpbDp3fSksZigoKT0+ZS5hZGRyZXNzSW5mbyxlPT57SShhLHhzLGUpLEYoKCk9PntsZXQgZT1pLnZhbHVlPy5nZXRTZWxlY3RlZE9wdGlvbnMoKTtlJiZlLmV2ZXJ5KGU9PmUmJmUudmFsdWUhPT1gMDAwMDAwYCkmJnYoZSl9KX0se2RlZXA6ITAsaW1tZWRpYXRlOiEwfSksKCk9PntsZXR7ZGlzYWJsZUFyZWE6Y309ZTtyZXR1cm4gRShEbyx7Y2xhc3M6eXMoKSxvblN1Ym1pdDpnfSx7ZGVmYXVsdDooKT0+W0UoYGRpdmAse2NsYXNzOnlzKGBmaWVsZHNgKX0sW0UoVm8se21vZGVsVmFsdWU6YS5uYW1lLCJvblVwZGF0ZTptb2RlbFZhbHVlIjpbZT0+YS5uYW1lPWUsZT0+bShgbmFtZWAsZSldLGNsZWFyYWJsZTohMCxsYWJlbDpicyhgbmFtZWApLHJ1bGVzOmgudmFsdWUubmFtZSxwbGFjZWhvbGRlcjpicyhgbmFtZWApLG9uRm9jdXM6KCk9PnAoYG5hbWVgKX0sbnVsbCksRShWbyx7bW9kZWxWYWx1ZTphLnRlbCwib25VcGRhdGU6bW9kZWxWYWx1ZSI6W2U9PmEudGVsPWUsZT0+bShgdGVsYCxlKV0sY2xlYXJhYmxlOiEwLHR5cGU6YHRlbGAsbGFiZWw6YnMoYHRlbGApLHJ1bGVzOmgudmFsdWUudGVsLG1heGxlbmd0aDplLnRlbE1heGxlbmd0aCxwbGFjZWhvbGRlcjpicyhgdGVsYCksb25Gb2N1czooKT0+cChgdGVsYCl9LG51bGwpLG4oRShWbyx7cmVhZG9ubHk6ITAsbGFiZWw6YnMoYGFyZWFgKSwiaXMtbGluayI6IWMsbW9kZWxWYWx1ZTp1LnZhbHVlLHJ1bGVzOmUuc2hvd0FyZWE/aC52YWx1ZS5hcmVhQ29kZTp2b2lkIDAscGxhY2Vob2xkZXI6ZS5hcmVhUGxhY2Vob2xkZXJ8fGJzKGBhcmVhYCksb25Gb2N1czooKT0+cChgYXJlYUNvZGVgKSxvbkNsaWNrOigpPT57dChgY2xpY2tBcmVhYCksby52YWx1ZT0hY319LG51bGwpLFtbaXQsZS5zaG93QXJlYV1dKSxFKF9zLHtzaG93OmUuc2hvd0RldGFpbCxyb3dzOmUuZGV0YWlsUm93cyxydWxlczpoLnZhbHVlLmFkZHJlc3NEZXRhaWwsdmFsdWU6YS5hZGRyZXNzRGV0YWlsLGZvY3VzZWQ6cy52YWx1ZSxtYXhsZW5ndGg6ZS5kZXRhaWxNYXhsZW5ndGgsc2VhcmNoUmVzdWx0OmUuc2VhcmNoUmVzdWx0LHNob3dTZWFyY2hSZXN1bHQ6ZS5zaG93U2VhcmNoUmVzdWx0LG9uQmx1cjpDLG9uRm9jdXM6KCk9PnAoYGFkZHJlc3NEZXRhaWxgKSxvbklucHV0Ol8sb25TZWxlY3RTZWFyY2g6ZT0+dChgc2VsZWN0U2VhcmNoYCxlKX0sbnVsbCksci5kZWZhdWx0Py5jYWxsKHIpXSksVCgpLG4oRShgZGl2YCx7Y2xhc3M6eXMoYGJ1dHRvbnNgKX0sW0UoVGkse2Jsb2NrOiEwLHJvdW5kOiEwLHR5cGU6YHByaW1hcnlgLHRleHQ6ZS5zYXZlQnV0dG9uVGV4dHx8YnMoYHNhdmVgKSxjbGFzczp5cyhgYnV0dG9uYCksbG9hZGluZzplLmlzU2F2aW5nLG5hdGl2ZVR5cGU6YHN1Ym1pdGB9LG51bGwpLGUuc2hvd0RlbGV0ZSYmRShUaSx7YmxvY2s6ITAscm91bmQ6ITAsY2xhc3M6eXMoYGJ1dHRvbmApLGxvYWRpbmc6ZS5pc0RlbGV0aW5nLHRleHQ6ZS5kZWxldGVCdXR0b25UZXh0fHxicyhgZGVsZXRlYCksb25DbGljazp4fSxudWxsKV0pLFtbaXQsIWQudmFsdWVdXSksRShxaSx7c2hvdzpvLnZhbHVlLCJvblVwZGF0ZTpzaG93IjplPT5vLnZhbHVlPWUscm91bmQ6ITAsdGVsZXBvcnQ6YGJvZHlgLHBvc2l0aW9uOmBib3R0b21gLGxhenlSZW5kZXI6ITF9LHtkZWZhdWx0OigpPT5bRShibyx7bW9kZWxWYWx1ZTphLmFyZWFDb2RlLCJvblVwZGF0ZTptb2RlbFZhbHVlIjplPT5hLmFyZWFDb2RlPWUscmVmOmksbG9hZGluZzohbC52YWx1ZSxhcmVhTGlzdDplLmFyZWFMaXN0LGNvbHVtbnNQbGFjZWhvbGRlcjplLmFyZWFDb2x1bW5zUGxhY2Vob2xkZXIsb25Db25maXJtOnksb25DYW5jZWw6KCk9PntvLnZhbHVlPSExfX0sbnVsbCldfSldfSl9fX0pKSxbQ3Msd3NdPUooYHJhZGlvLWdyb3VwYCksVHM9e3NoYXBlOlN0cmluZyxkaXNhYmxlZDpCb29sZWFuLGljb25TaXplOnosZGlyZWN0aW9uOlN0cmluZyxtb2RlbFZhbHVlOm51bGwsY2hlY2tlZENvbG9yOlN0cmluZ30sRXM9U3ltYm9sKENzKSxEcz1ZKFAoe25hbWU6Q3MscHJvcHM6VHMsZW1pdHM6W2BjaGFuZ2VgLGB1cGRhdGU6bW9kZWxWYWx1ZWBdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7bGV0e2xpbmtDaGlsZHJlbjpyfT1DbihFcyk7cmV0dXJuIGYoKCk9PmUubW9kZWxWYWx1ZSxlPT50KGBjaGFuZ2VgLGUpKSxyKHtwcm9wczplLHVwZGF0ZVZhbHVlOmU9PnQoYHVwZGF0ZTptb2RlbFZhbHVlYCxlKX0pLFduKCgpPT5lLm1vZGVsVmFsdWUpLCgpPT5FKGBkaXZgLHtjbGFzczp3cyhbZS5kaXJlY3Rpb25dKSxyb2xlOmByYWRpb2dyb3VwYH0sW24uZGVmYXVsdD8uY2FsbChuKV0pfX0pKSxbT3Msa3NdPUooYGNoZWNrYm94LWdyb3VwYCksQXM9e21heDp6LHNoYXBlOlUoYHJvdW5kYCksZGlzYWJsZWQ6Qm9vbGVhbixpY29uU2l6ZTp6LGRpcmVjdGlvbjpTdHJpbmcsbW9kZWxWYWx1ZTpWKCksY2hlY2tlZENvbG9yOlN0cmluZ30sanM9U3ltYm9sKE9zKSxNcz1ZKFAoe25hbWU6T3MscHJvcHM6QXMsZW1pdHM6W2BjaGFuZ2VgLGB1cGRhdGU6bW9kZWxWYWx1ZWBdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7bGV0e2NoaWxkcmVuOnIsbGlua0NoaWxkcmVuOml9PUNuKGpzKSxhPWU9PnQoYHVwZGF0ZTptb2RlbFZhbHVlYCxlKTtyZXR1cm4gZigoKT0+ZS5tb2RlbFZhbHVlLGU9PnQoYGNoYW5nZWAsZSkpLFgoe3RvZ2dsZUFsbDooZT17fSk9Pnt0eXBlb2YgZT09YGJvb2xlYW5gJiYoZT17Y2hlY2tlZDplfSk7bGV0e2NoZWNrZWQ6dCxza2lwRGlzYWJsZWQ6bn09ZTthKHIuZmlsdGVyKGU9PmUucHJvcHMuYmluZEdyb3VwP2UucHJvcHMuZGlzYWJsZWQmJm4/ZS5jaGVja2VkLnZhbHVlOnQ/PyFlLmNoZWNrZWQudmFsdWU6ITEpLm1hcChlPT5lLm5hbWUpKX19KSxXbigoKT0+ZS5tb2RlbFZhbHVlKSxpKHtwcm9wczplLHVwZGF0ZVZhbHVlOmF9KSwoKT0+RShgZGl2YCx7Y2xhc3M6a3MoW2UuZGlyZWN0aW9uXSl9LFtuLmRlZmF1bHQ/LmNhbGwobildKX19KSksW05zLFBzXT1KKGB0YWdgKSxGcz1ZKFAoe25hbWU6TnMscHJvcHM6e3NpemU6U3RyaW5nLG1hcms6Qm9vbGVhbixzaG93OkIsdHlwZTpVKGBkZWZhdWx0YCksY29sb3I6U3RyaW5nLHBsYWluOkJvb2xlYW4scm91bmQ6Qm9vbGVhbix0ZXh0Q29sb3I6U3RyaW5nLGNsb3NlYWJsZTpCb29sZWFufSxlbWl0czpbYGNsb3NlYF0sc2V0dXAoZSx7c2xvdHM6dCxlbWl0Om59KXtsZXQgcj1lPT57ZS5zdG9wUHJvcGFnYXRpb24oKSxuKGBjbG9zZWAsZSl9LGk9KCk9PmUucGxhaW4/e2NvbG9yOmUudGV4dENvbG9yfHxlLmNvbG9yLGJvcmRlckNvbG9yOmUuY29sb3J9Ontjb2xvcjplLnRleHRDb2xvcixiYWNrZ3JvdW5kOmUuY29sb3J9LGE9KCk9PntsZXR7dHlwZTpuLG1hcms6YSxwbGFpbjpvLHJvdW5kOnMsc2l6ZTpjLGNsb3NlYWJsZTpsfT1lLHU9e21hcms6YSxwbGFpbjpvLHJvdW5kOnN9O2MmJih1W2NdPWMpO2xldCBkPWwmJkUoWix7bmFtZTpgY3Jvc3NgLGNsYXNzOltQcyhgY2xvc2VgKSxgdmFuLWhhcHRpY3MtZmVlZGJhY2tgXSxvbkNsaWNrOnJ9LG51bGwpO3JldHVybiBFKGBzcGFuYCx7c3R5bGU6aSgpLGNsYXNzOlBzKFt1LG5dKX0sW3QuZGVmYXVsdD8uY2FsbCh0KSxkXSl9O3JldHVybigpPT5FKEJlLHtuYW1lOmUuY2xvc2VhYmxlP2B2YW4tZmFkZWA6dm9pZCAwfSx7ZGVmYXVsdDooKT0+W2Uuc2hvdz9hKCk6bnVsbF19KX19KSksSXM9e25hbWU6bnVsbCxkaXNhYmxlZDpCb29sZWFuLGljb25TaXplOnosbW9kZWxWYWx1ZTpudWxsLGNoZWNrZWRDb2xvcjpTdHJpbmcsbGFiZWxQb3NpdGlvbjpTdHJpbmcsbGFiZWxEaXNhYmxlZDpCb29sZWFufSxMcz1QKHtwcm9wczpJKHt9LElzLHtiZW06dW4oRnVuY3Rpb24pLHJvbGU6U3RyaW5nLHNoYXBlOlN0cmluZyxwYXJlbnQ6T2JqZWN0LGNoZWNrZWQ6Qm9vbGVhbixiaW5kR3JvdXA6QixpbmRldGVybWluYXRlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfX0pLGVtaXRzOltgY2xpY2tgLGB0b2dnbGVgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCByPWIoKSxpPXQ9PntpZihlLnBhcmVudCYmZS5iaW5kR3JvdXApcmV0dXJuIGUucGFyZW50LnByb3BzW3RdfSxhPU4oKCk9PntpZihlLnBhcmVudCYmZS5iaW5kR3JvdXApe2xldCB0PWkoYGRpc2FibGVkYCl8fGUuZGlzYWJsZWQ7aWYoZS5yb2xlPT09YGNoZWNrYm94YCl7bGV0IG49aShgbW9kZWxWYWx1ZWApLmxlbmd0aCxyPWkoYG1heGApLGE9ciYmbj49K3I7cmV0dXJuIHR8fGEmJiFlLmNoZWNrZWR9cmV0dXJuIHR9cmV0dXJuIGUuZGlzYWJsZWR9KSxvPU4oKCk9PmkoYGRpcmVjdGlvbmApKSxzPU4oKCk9PntsZXQgdD1lLmNoZWNrZWRDb2xvcnx8aShgY2hlY2tlZENvbG9yYCk7aWYodCYmKGUuY2hlY2tlZHx8ZS5pbmRldGVybWluYXRlKSYmIWEudmFsdWUpcmV0dXJue2JvcmRlckNvbG9yOnQsYmFja2dyb3VuZENvbG9yOnR9fSksYz1OKCgpPT5lLnNoYXBlfHxpKGBzaGFwZWApfHxgcm91bmRgKSxsPW49PntsZXR7dGFyZ2V0Oml9PW4sbz1yLnZhbHVlLHM9bz09PWl8fG8/LmNvbnRhaW5zKGkpOyFhLnZhbHVlJiYoc3x8IWUubGFiZWxEaXNhYmxlZCkmJnQoYHRvZ2dsZWApLHQoYGNsaWNrYCxuKX0sdT0oKT0+e2xldHtiZW06dCxjaGVja2VkOm8saW5kZXRlcm1pbmF0ZTpsfT1lLHU9ZS5pY29uU2l6ZXx8aShgaWNvblNpemVgKTtyZXR1cm4gRShgZGl2YCx7cmVmOnIsY2xhc3M6dChgaWNvbmAsW2MudmFsdWUse2Rpc2FibGVkOmEudmFsdWUsY2hlY2tlZDpvLGluZGV0ZXJtaW5hdGU6bH1dKSxzdHlsZTpjLnZhbHVlPT09YGRvdGA/e3dpZHRoOnEodSksaGVpZ2h0OnEodSksYm9yZGVyQ29sb3I6cy52YWx1ZT8uYm9yZGVyQ29sb3J9Ontmb250U2l6ZTpxKHUpfX0sW24uaWNvbj9uLmljb24oe2NoZWNrZWQ6byxkaXNhYmxlZDphLnZhbHVlfSk6Yy52YWx1ZT09PWBkb3RgP0UoYGRpdmAse2NsYXNzOnQoYGljb24tLWRvdF9faWNvbmApLHN0eWxlOntiYWNrZ3JvdW5kQ29sb3I6cy52YWx1ZT8uYmFja2dyb3VuZENvbG9yfX0sbnVsbCk6RShaLHtuYW1lOmw/YG1pbnVzYDpgc3VjY2Vzc2Asc3R5bGU6cy52YWx1ZX0sbnVsbCldKX0sZD0oKT0+e2xldHtjaGVja2VkOnR9PWU7aWYobi5kZWZhdWx0KXJldHVybiBFKGBzcGFuYCx7Y2xhc3M6ZS5iZW0oYGxhYmVsYCxbZS5sYWJlbFBvc2l0aW9uLHtkaXNhYmxlZDphLnZhbHVlfV0pfSxbbi5kZWZhdWx0KHtjaGVja2VkOnQsZGlzYWJsZWQ6YS52YWx1ZX0pXSl9O3JldHVybigpPT57bGV0IHQ9ZS5sYWJlbFBvc2l0aW9uPT09YGxlZnRgP1tkKCksdSgpXTpbdSgpLGQoKV07cmV0dXJuIEUoYGRpdmAse3JvbGU6ZS5yb2xlLGNsYXNzOmUuYmVtKFt7ZGlzYWJsZWQ6YS52YWx1ZSwibGFiZWwtZGlzYWJsZWQiOmUubGFiZWxEaXNhYmxlZH0sby52YWx1ZV0pLHRhYmluZGV4OmEudmFsdWU/dm9pZCAwOjAsImFyaWEtY2hlY2tlZCI6ZS5jaGVja2VkLG9uQ2xpY2s6bH0sW3RdKX19fSksUnM9SSh7fSxJcyx7c2hhcGU6U3RyaW5nfSksW3pzLEJzXT1KKGByYWRpb2ApLFZzPVkoUCh7bmFtZTp6cyxwcm9wczpScyxlbWl0czpbYHVwZGF0ZTptb2RlbFZhbHVlYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXR7cGFyZW50Oml9PXluKEVzKSxhPSgpPT4oaT9pLnByb3BzLm1vZGVsVmFsdWU6ZS5tb2RlbFZhbHVlKT09PWUubmFtZSxvPSgpPT57aT9pLnVwZGF0ZVZhbHVlKGUubmFtZSk6dChgdXBkYXRlOm1vZGVsVmFsdWVgLGUubmFtZSl9O3JldHVybigpPT5FKExzLHIoe2JlbTpCcyxyb2xlOmByYWRpb2AscGFyZW50OmksY2hlY2tlZDphKCksb25Ub2dnbGU6b30sZSksUihuLFtgZGVmYXVsdGAsYGljb25gXSkpfX0pKSxbSHMsVXNdPUooYGNoZWNrYm94YCksV3M9WShQKHtuYW1lOkhzLHByb3BzOkkoe30sSXMse3NoYXBlOlN0cmluZyxiaW5kR3JvdXA6QixpbmRldGVybWluYXRlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfX0pLGVtaXRzOltgY2hhbmdlYCxgdXBkYXRlOm1vZGVsVmFsdWVgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldHtwYXJlbnQ6aX09eW4oanMpLGE9dD0+e2xldHtuYW1lOm59PWUse21heDpyLG1vZGVsVmFsdWU6YX09aS5wcm9wcyxvPWEuc2xpY2UoKTtpZih0KSEociYmby5sZW5ndGg+PStyKSYmIW8uaW5jbHVkZXMobikmJihvLnB1c2gobiksZS5iaW5kR3JvdXAmJmkudXBkYXRlVmFsdWUobykpO2Vsc2V7bGV0IHQ9by5pbmRleE9mKG4pO3QhPT0tMSYmKG8uc3BsaWNlKHQsMSksZS5iaW5kR3JvdXAmJmkudXBkYXRlVmFsdWUobykpfX0sbz1OKCgpPT5pJiZlLmJpbmRHcm91cD9pLnByb3BzLm1vZGVsVmFsdWUuaW5kZXhPZihlLm5hbWUpIT09LTE6ISFlLm1vZGVsVmFsdWUpLHM9KG49IW8udmFsdWUpPT57aSYmZS5iaW5kR3JvdXA/YShuKTp0KGB1cGRhdGU6bW9kZWxWYWx1ZWAsbiksZS5pbmRldGVybWluYXRlIT09bnVsbCYmdChgY2hhbmdlYCxuKX07cmV0dXJuIGYoKCk9PmUubW9kZWxWYWx1ZSxuPT57ZS5pbmRldGVybWluYXRlPT09bnVsbCYmdChgY2hhbmdlYCxuKX0pLFgoe3RvZ2dsZTpzLHByb3BzOmUsY2hlY2tlZDpvfSksV24oKCk9PmUubW9kZWxWYWx1ZSksKCk9PkUoTHMscih7YmVtOlVzLHJvbGU6YGNoZWNrYm94YCxwYXJlbnQ6aSxjaGVja2VkOm8udmFsdWUsb25Ub2dnbGU6c30sZSksUihuLFtgZGVmYXVsdGAsYGljb25gXSkpfX0pKSxbR3MsS3NdPUooYGFkZHJlc3MtaXRlbWApLHFzPVAoe25hbWU6R3MscHJvcHM6e2FkZHJlc3M6dW4oT2JqZWN0KSxkaXNhYmxlZDpCb29sZWFuLHN3aXRjaGFibGU6Qm9vbGVhbixzaW5nbGVDaG9pY2U6Qm9vbGVhbixkZWZhdWx0VGFnVGV4dDpTdHJpbmcscmlnaHRJY29uOlUoYGVkaXRgKX0sZW1pdHM6W2BlZGl0YCxgY2xpY2tgLGBzZWxlY3RgXSxzZXR1cChlLHtzbG90czp0LGVtaXQ6bn0pe2xldCByPXQ9PntlLnN3aXRjaGFibGUmJm4oYHNlbGVjdGApLG4oYGNsaWNrYCx0KX0saT0oKT0+RShaLHtuYW1lOmUucmlnaHRJY29uLGNsYXNzOktzKGBlZGl0YCksb25DbGljazplPT57ZS5zdG9wUHJvcGFnYXRpb24oKSxuKGBlZGl0YCksbihgY2xpY2tgLGUpfX0sbnVsbCksYT0oKT0+e2lmKHQudGFnKXJldHVybiB0LnRhZyhlLmFkZHJlc3MpO2lmKGUuYWRkcmVzcy5pc0RlZmF1bHQmJmUuZGVmYXVsdFRhZ1RleHQpcmV0dXJuIEUoRnMse3R5cGU6YHByaW1hcnlgLHJvdW5kOiEwLGNsYXNzOktzKGB0YWdgKX0se2RlZmF1bHQ6KCk9PltlLmRlZmF1bHRUYWdUZXh0XX0pfSxvPSgpPT57bGV0e2FkZHJlc3M6dCxkaXNhYmxlZDpuLHN3aXRjaGFibGU6cixzaW5nbGVDaG9pY2U6aX09ZSxvPVtFKGBkaXZgLHtjbGFzczpLcyhgbmFtZWApfSxbYCR7dC5uYW1lfSAke3QudGVsfWAsYSgpXSksRShgZGl2YCx7Y2xhc3M6S3MoYGFkZHJlc3NgKX0sW3QuYWRkcmVzc10pXTtyZXR1cm4gciYmIW4/RShpP1ZzOldzLHtuYW1lOnQuaWQsaWNvblNpemU6MTh9LHtkZWZhdWx0OigpPT5bb119KTpvfTtyZXR1cm4oKT0+e2xldHtkaXNhYmxlZDpufT1lO3JldHVybiBFKGBkaXZgLHtjbGFzczpLcyh7ZGlzYWJsZWQ6bn0pLG9uQ2xpY2s6cn0sW0Uod28se2JvcmRlcjohMSx0aXRsZUNsYXNzOktzKGB0aXRsZWApfSx7dGl0bGU6bywicmlnaHQtaWNvbiI6aX0pLHQuYm90dG9tPy5jYWxsKHQsSSh7fSxlLmFkZHJlc3Mse2Rpc2FibGVkOm59KSldKX19fSksW0pzLFlzLFhzXT1KKGBhZGRyZXNzLWxpc3RgKSxacz1ZKFAoe25hbWU6SnMscHJvcHM6e2xpc3Q6VigpLG1vZGVsVmFsdWU6Wy4uLnosQXJyYXldLHN3aXRjaGFibGU6QixkaXNhYmxlZFRleHQ6U3RyaW5nLGRpc2FibGVkTGlzdDpWKCksc2hvd0FkZEJ1dHRvbjpCLGFkZEJ1dHRvblRleHQ6U3RyaW5nLGRlZmF1bHRUYWdUZXh0OlN0cmluZyxyaWdodEljb246VShgZWRpdGApfSxlbWl0czpbYGFkZGAsYGVkaXRgLGBzZWxlY3RgLGBjbGlja0l0ZW1gLGBlZGl0RGlzYWJsZWRgLGBzZWxlY3REaXNhYmxlZGAsYHVwZGF0ZTptb2RlbFZhbHVlYF0sc2V0dXAoZSx7c2xvdHM6dCxlbWl0Om59KXtsZXQgcj1OKCgpPT4hQXJyYXkuaXNBcnJheShlLm1vZGVsVmFsdWUpKSxpPShpLGEsbyk9PkUocXMse2tleTppLmlkLGFkZHJlc3M6aSxkaXNhYmxlZDpvLHN3aXRjaGFibGU6ZS5zd2l0Y2hhYmxlLHNpbmdsZUNob2ljZTpyLnZhbHVlLGRlZmF1bHRUYWdUZXh0OmUuZGVmYXVsdFRhZ1RleHQscmlnaHRJY29uOmUucmlnaHRJY29uLG9uRWRpdDooKT0+bihvP2BlZGl0RGlzYWJsZWRgOmBlZGl0YCxpLGEpLG9uQ2xpY2s6ZT0+bihgY2xpY2tJdGVtYCxpLGEse2V2ZW50OmV9KSxvblNlbGVjdDooKT0+e2lmKG4obz9gc2VsZWN0RGlzYWJsZWRgOmBzZWxlY3RgLGksYSksIW8paWYoci52YWx1ZSluKGB1cGRhdGU6bW9kZWxWYWx1ZWAsaS5pZCk7ZWxzZXtsZXQgdD1lLm1vZGVsVmFsdWU7dC5pbmNsdWRlcyhpLmlkKT9uKGB1cGRhdGU6bW9kZWxWYWx1ZWAsdC5maWx0ZXIoZT0+ZSE9PWkuaWQpKTpuKGB1cGRhdGU6bW9kZWxWYWx1ZWAsWy4uLnQsaS5pZF0pfX19LHtib3R0b206dFtgaXRlbS1ib3R0b21gXSx0YWc6dC50YWd9KSxhPShlLHQpPT57aWYoZSlyZXR1cm4gZS5tYXAoKGUsbik9PmkoZSxuLHQpKX0sbz0oKT0+ZS5zaG93QWRkQnV0dG9uP0UoYGRpdmAse2NsYXNzOltZcyhgYm90dG9tYCksYHZhbi1zYWZlLWFyZWEtYm90dG9tYF19LFtFKFRpLHtyb3VuZDohMCxibG9jazohMCx0eXBlOmBwcmltYXJ5YCx0ZXh0OmUuYWRkQnV0dG9uVGV4dHx8WHMoYGFkZGApLGNsYXNzOllzKGBhZGRgKSxvbkNsaWNrOigpPT5uKGBhZGRgKX0sbnVsbCldKTp2b2lkIDA7cmV0dXJuKCk9PntsZXQgbj1hKGUubGlzdCksaT1hKGUuZGlzYWJsZWRMaXN0LCEwKSxzPWUuZGlzYWJsZWRUZXh0JiZFKGBkaXZgLHtjbGFzczpZcyhgZGlzYWJsZWQtdGV4dGApfSxbZS5kaXNhYmxlZFRleHRdKTtyZXR1cm4gRShgZGl2YCx7Y2xhc3M6WXMoKX0sW3QudG9wPy5jYWxsKHQpLCFyLnZhbHVlJiZBcnJheS5pc0FycmF5KGUubW9kZWxWYWx1ZSk/RShNcyx7bW9kZWxWYWx1ZTplLm1vZGVsVmFsdWV9LHtkZWZhdWx0OigpPT5bbl19KTpFKERzLHttb2RlbFZhbHVlOmUubW9kZWxWYWx1ZX0se2RlZmF1bHQ6KCk9PltuXX0pLHMsaSx0LmRlZmF1bHQ/LmNhbGwodCksbygpXSl9fX0pKTtmbiYmYEludGVyc2VjdGlvbk9ic2VydmVyYGluIHdpbmRvdyYmYEludGVyc2VjdGlvbk9ic2VydmVyRW50cnlgaW4gd2luZG93JiZgaW50ZXJzZWN0aW9uUmF0aW9gaW4gd2luZG93LkludGVyc2VjdGlvbk9ic2VydmVyRW50cnkucHJvdG90eXBlO2Z1bmN0aW9uIFFzKGUsdCl7bGV0IG49bnVsbCxyPTA7cmV0dXJuIGZ1bmN0aW9uKC4uLmkpe2lmKG4pcmV0dXJuO2xldCBhPURhdGUubm93KCktcixvPSgpPT57cj1EYXRlLm5vdygpLG49ITEsZS5hcHBseSh0aGlzLGkpfTthPj10P28oKTpuPXNldFRpbWVvdXQobyx0KX19dmFyWyRzLGVjXT1KKGBiYWNrLXRvcGApLHRjPVkoUCh7bmFtZTokcyxpbmhlcml0QXR0cnM6ITEscHJvcHM6e3JpZ2h0OnosYm90dG9tOnosekluZGV4OnosdGFyZ2V0OltTdHJpbmcsT2JqZWN0XSxvZmZzZXQ6SCgyMDApLGltbWVkaWF0ZTpCb29sZWFuLHRlbGVwb3J0Ont0eXBlOltTdHJpbmcsT2JqZWN0XSxkZWZhdWx0OmBib2R5YH19LGVtaXRzOltgY2xpY2tgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bixhdHRyczppfSl7bGV0IGE9ITEsbz1iKCExKSxzPWIoKSxjPWIoKSxsPU4oKCk9PkkoYXIoZS56SW5kZXgpLHtyaWdodDpxKGUucmlnaHQpLGJvdHRvbTpxKGUuYm90dG9tKX0pKSx1PW49Pnt2YXIgcjt0KGBjbGlja2AsbiksKHI9Yy52YWx1ZSk9PW51bGx8fHIuc2Nyb2xsVG8oe3RvcDowLGJlaGF2aW9yOmUuaW1tZWRpYXRlP2BhdXRvYDpgc21vb3RoYH0pfSxkPSgpPT57by52YWx1ZT1jLnZhbHVlP0duKGMudmFsdWUpPj0rZS5vZmZzZXQ6ITF9LHA9KCk9PntsZXR7dGFyZ2V0OnR9PWU7aWYodHlwZW9mIHQ9PWBzdHJpbmdgKXtsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpO2lmKGUpcmV0dXJuIGV9ZWxzZSByZXR1cm4gdH0sbT0oKT0+e1p0JiZGKCgpPT57Yy52YWx1ZT1lLnRhcmdldD9wKCk6em4ocy52YWx1ZSksZCgpfSl9O3JldHVybiBHKGBzY3JvbGxgLFFzKGQsMTAwKSx7dGFyZ2V0OmN9KSxNKG0pLHkoKCk9PnthJiY9KG8udmFsdWU9ITAsITEpfSksaCgoKT0+e28udmFsdWUmJmUudGVsZXBvcnQmJihvLnZhbHVlPSExLGE9ITApfSksZigoKT0+ZS50YXJnZXQsbSksKCk9PntsZXQgdD1FKGBkaXZgLHIoe3JlZjplLnRlbGVwb3J0P3ZvaWQgMDpzLGNsYXNzOmVjKHthY3RpdmU6by52YWx1ZX0pLHN0eWxlOmwudmFsdWUsb25DbGljazp1fSxpKSxbbi5kZWZhdWx0P24uZGVmYXVsdCgpOkUoWix7bmFtZTpgYmFjay10b3BgLGNsYXNzOmVjKGBpY29uYCl9LG51bGwpXSk7cmV0dXJuIGUudGVsZXBvcnQ/W0UoYGRpdmAse3JlZjpzLGNsYXNzOmVjKGBwbGFjZWhvbGRlcmApfSxudWxsKSxFKGZlLHt0bzplLnRlbGVwb3J0fSx7ZGVmYXVsdDooKT0+W3RdfSldOnR9fX0pKSxuYz0oZSx0LG4pPT5uZXcgUHJvbWlzZSgocixpKT0+e3ZhciBhPWU9Pnt0cnl7cyhuLm5leHQoZSkpfWNhdGNoKGUpe2koZSl9fSxvPWU9Pnt0cnl7cyhuLnRocm93KGUpKX1jYXRjaChlKXtpKGUpfX0scz1lPT5lLmRvbmU/cihlLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoZS52YWx1ZSkudGhlbihhLG8pO3MoKG49bi5hcHBseShlLHQpKS5uZXh0KCkpfSkscmM9e3RvcDpIKDEwKSxyb3dzOkgoNCksZHVyYXRpb246SCg0ZTMpLGF1dG9QbGF5OkIsZGVsYXk6ZG4oMzAwKSxtb2RlbFZhbHVlOlYoKX0sW2ljLGFjXT1KKGBiYXJyYWdlYCksb2M9WShQKHtuYW1lOmljLHByb3BzOnJjLGVtaXRzOltgdXBkYXRlOm1vZGVsVmFsdWVgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCByPWIoKSxpPWFjKGBpdGVtYCksYT1iKDApLG89W10scz0odCxuPWUuZGVsYXkpPT57bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgc3BhbmApO3JldHVybiByLmNsYXNzTmFtZT1pLHIuaW5uZXJUZXh0PVN0cmluZyh0KSxyLnN0eWxlLmFuaW1hdGlvbkR1cmF0aW9uPWAke2UuZHVyYXRpb259bXNgLHIuc3R5bGUuYW5pbWF0aW9uRGVsYXk9YCR7bn1tc2Asci5zdHlsZS5hbmltYXRpb25OYW1lPWB2YW4tYmFycmFnZWAsci5zdHlsZS5hbmltYXRpb25UaW1pbmdGdW5jdGlvbj1gbGluZWFyYCxyfSxjPWIoITApLGw9YihlLmF1dG9QbGF5KSx1PSh7aWQ6bix0ZXh0Oml9LHUpPT57dmFyIGQ7bGV0IGY9cyhpLGMudmFsdWU/dSplLmRlbGF5OnZvaWQgMCk7IWUuYXV0b1BsYXkmJmwudmFsdWU9PT0hMSYmKGYuc3R5bGUuYW5pbWF0aW9uUGxheVN0YXRlPWBwYXVzZWRgKSwoZD1yLnZhbHVlKT09bnVsbHx8ZC5hcHBlbmQoZiksYS52YWx1ZSsrO2xldCBwPShhLnZhbHVlLTEpJWUucm93cypmLm9mZnNldEhlaWdodCsgK2UudG9wO2Yuc3R5bGUudG9wPWAke3B9cHhgLGYuZGF0YXNldC5pZD1TdHJpbmcobiksby5wdXNoKGYpLGYuYWRkRXZlbnRMaXN0ZW5lcihgYW5pbWF0aW9uZW5kYCwoKT0+e3QoYHVwZGF0ZTptb2RlbFZhbHVlYCxbLi4uZS5tb2RlbFZhbHVlXS5maWx0ZXIoZT0+U3RyaW5nKGUuaWQpIT09Zi5kYXRhc2V0LmlkKSl9KX0sZD0oZSx0KT0+e2xldCBuPW5ldyBNYXAodC5tYXAoZT0+W2UuaWQsZV0pKTtlLmZvckVhY2goKGUsdCk9PntuLmhhcyhlLmlkKT9uLmRlbGV0ZShlLmlkKTp1KGUsdCl9KSxuLmZvckVhY2goZT0+e2xldCB0PW8uZmluZEluZGV4KHQ9PnQuZGF0YXNldC5pZD09PVN0cmluZyhlLmlkKSk7dD4tMSYmKG9bdF0ucmVtb3ZlKCksby5zcGxpY2UodCwxKSl9KSxjLnZhbHVlPSExfTtmKCgpPT5lLm1vZGVsVmFsdWUuc2xpY2UoKSwoZSx0KT0+ZChlPz9bXSx0Pz9bXSkse2RlZXA6ITB9KTtsZXQgcD1iKHt9KTtyZXR1cm4gTSgoKT0+bmMobnVsbCxudWxsLGZ1bmN0aW9uKigpe3AudmFsdWVbYC0tbW92ZS1kaXN0YW5jZWBdPWAtJHtyLnZhbHVlPy5vZmZzZXRXaWR0aH1weGAseWllbGQgRigpLGQoZS5tb2RlbFZhbHVlLFtdKX0pKSxYKHtwbGF5OigpPT57bC52YWx1ZT0hMCxvLmZvckVhY2goZT0+e2Uuc3R5bGUuYW5pbWF0aW9uUGxheVN0YXRlPWBydW5uaW5nYH0pfSxwYXVzZTooKT0+e2wudmFsdWU9ITEsby5mb3JFYWNoKGU9PntlLnN0eWxlLmFuaW1hdGlvblBsYXlTdGF0ZT1gcGF1c2VkYH0pfX0pLCgpPT5FKGBkaXZgLHtjbGFzczphYygpLHJlZjpyLHN0eWxlOnAudmFsdWV9LFtuLmRlZmF1bHQ/LmNhbGwobildKX19KSksW3NjLGNjLGxjXT1KKGBjYWxlbmRhcmApLHVjPWU9PmxjKGBtb250aFRpdGxlYCxlLmdldEZ1bGxZZWFyKCksZS5nZXRNb250aCgpKzEpO2Z1bmN0aW9uIGRjKGUsdCl7bGV0IG49ZS5nZXRGdWxsWWVhcigpLHI9dC5nZXRGdWxsWWVhcigpO2lmKG49PT1yKXtsZXQgbj1lLmdldE1vbnRoKCkscj10LmdldE1vbnRoKCk7cmV0dXJuIG49PT1yPzA6bj5yPzE6LTF9cmV0dXJuIG4+cj8xOi0xfWZ1bmN0aW9uIGZjKGUsdCl7bGV0IG49ZGMoZSx0KTtpZihuPT09MCl7bGV0IG49ZS5nZXREYXRlKCkscj10LmdldERhdGUoKTtyZXR1cm4gbj09PXI/MDpuPnI/MTotMX1yZXR1cm4gbn12YXIgcGM9ZT0+bmV3IERhdGUoZSksbWM9ZT0+QXJyYXkuaXNBcnJheShlKT9lLm1hcChwYyk6cGMoZSk7ZnVuY3Rpb24gaGMoZSx0KXtsZXQgbj1wYyhlKTtyZXR1cm4gbi5zZXREYXRlKG4uZ2V0RGF0ZSgpK3QpLG59ZnVuY3Rpb24gZ2MoZSx0KXtsZXQgbj1wYyhlKTtyZXR1cm4gbi5zZXRNb250aChuLmdldE1vbnRoKCkrdCksbi5nZXREYXRlKCkhPT1lLmdldERhdGUoKSYmbi5zZXREYXRlKDApLG59ZnVuY3Rpb24gX2MoZSx0KXtsZXQgbj1wYyhlKTtyZXR1cm4gbi5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCkrdCksbi5nZXREYXRlKCkhPT1lLmdldERhdGUoKSYmbi5zZXREYXRlKDApLG59dmFyIHZjPWU9PmhjKGUsLTEpLHljPWU9PmhjKGUsMSksYmM9ZT0+Z2MoZSwtMSkseGM9ZT0+Z2MoZSwxKSxTYz1lPT5fYyhlLC0xKSxDYz1lPT5fYyhlLDEpLHdjPSgpPT57bGV0IGU9bmV3IERhdGU7cmV0dXJuIGUuc2V0SG91cnMoMCwwLDAsMCksZX07ZnVuY3Rpb24gVGMoZSl7bGV0IHQ9ZVswXS5nZXRUaW1lKCk7cmV0dXJuKGVbMV0uZ2V0VGltZSgpLXQpLygxZTMqNjAqNjAqMjQpKzF9ZnVuY3Rpb24gRWMoZSx0PTApe2xldCBuPW5ldyBEYXRlKGUuZ2V0RnVsbFllYXIoKSxlLmdldE1vbnRoKCkrMSwwKSxyPXQrZS5nZXREYXRlKCktMSxpPXQrbi5nZXREYXRlKCktMTtyZXR1cm4gTWF0aC5mbG9vcihyLzcpPT09TWF0aC5mbG9vcihpLzcpfXZhciBEYz1JKHt9LGxvLHttb2RlbFZhbHVlOlYoKSxmaWx0ZXI6RnVuY3Rpb24sZm9ybWF0dGVyOnt0eXBlOkZ1bmN0aW9uLGRlZmF1bHQ6KGUsdCk9PnR9fSksT2M9T2JqZWN0LmtleXMobG8pO2Z1bmN0aW9uIGtjKGUsdCl7aWYoZTwwKXJldHVybltdO2xldCBuPUFycmF5KGUpLHI9LTE7Zm9yKDsrK3I8ZTspbltyXT10KHIpO3JldHVybiBufXZhciBBYz0oZSx0KT0+MzItbmV3IERhdGUoZSx0LTEsMzIpLmdldERhdGUoKSxqYz0oZSx0LG4scixpLGEpPT57bGV0IG89a2ModC1lKzEsdD0+e2xldCBpPWhyKGUrdCk7cmV0dXJuIHIobix7dGV4dDppLHZhbHVlOml9KX0pO3JldHVybiBpP2kobixvLGEpOm99LE1jPShlLHQpPT5lLm1hcCgoZSxuKT0+e2xldCByPXRbbl07aWYoci5sZW5ndGgpe2xldCB0PStyWzBdLnZhbHVlLG49K3Jbci5sZW5ndGgtMV0udmFsdWU7cmV0dXJuIGhyKGdyKCtlLHQsbikpfXJldHVybiBlfSksW05jXT1KKGBjYWxlbmRhci1kYXlgKSxQYz1QKHtuYW1lOk5jLHByb3BzOntpdGVtOnVuKE9iamVjdCksY29sb3I6U3RyaW5nLGluZGV4Ok51bWJlcixvZmZzZXQ6ZG4oMCkscm93SGVpZ2h0OlN0cmluZ30sZW1pdHM6W2BjbGlja2AsYGNsaWNrRGlzYWJsZWREYXRlYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXQgcj1OKCgpPT57bGV0e2l0ZW06dCxpbmRleDpuLGNvbG9yOnIsb2Zmc2V0Omkscm93SGVpZ2h0OmF9PWUsbz17aGVpZ2h0OmF9O2lmKHQudHlwZT09PWBwbGFjZWhvbGRlcmApcmV0dXJuIG8ud2lkdGg9YDEwMCVgLG87aWYobj09PTAmJihvLm1hcmdpbkxlZnQ9YCR7MTAwKmkvN30lYCkscilzd2l0Y2godC50eXBlKXtjYXNlYGVuZGA6Y2FzZWBzdGFydGA6Y2FzZWBzdGFydC1lbmRgOmNhc2VgbXVsdGlwbGUtbWlkZGxlYDpjYXNlYG11bHRpcGxlLXNlbGVjdGVkYDpvLmJhY2tncm91bmQ9cjticmVhaztjYXNlYG1pZGRsZWA6by5jb2xvcj1yO2JyZWFrfXJldHVybiB0LmRhdGUmJkVjKHQuZGF0ZSxpKSYmKG8ubWFyZ2luQm90dG9tPTApLG99KSxpPSgpPT57ZS5pdGVtLnR5cGU9PT1gZGlzYWJsZWRgP3QoYGNsaWNrRGlzYWJsZWREYXRlYCxlLml0ZW0pOnQoYGNsaWNrYCxlLml0ZW0pfSxhPSgpPT57bGV0e3RvcEluZm86dH09ZS5pdGVtO2lmKHR8fG5bYHRvcC1pbmZvYF0pcmV0dXJuIEUoYGRpdmAse2NsYXNzOmNjKGB0b3AtaW5mb2ApfSxbbltgdG9wLWluZm9gXT9uW2B0b3AtaW5mb2BdKGUuaXRlbSk6dF0pfSxvPSgpPT57bGV0e2JvdHRvbUluZm86dH09ZS5pdGVtO2lmKHR8fG5bYGJvdHRvbS1pbmZvYF0pcmV0dXJuIEUoYGRpdmAse2NsYXNzOmNjKGBib3R0b20taW5mb2ApfSxbbltgYm90dG9tLWluZm9gXT9uW2Bib3R0b20taW5mb2BdKGUuaXRlbSk6dF0pfSxzPSgpPT5uLnRleHQ/bi50ZXh0KGUuaXRlbSk6ZS5pdGVtLnRleHQsYz0oKT0+e2xldHtpdGVtOnQsY29sb3I6bixyb3dIZWlnaHQ6cn09ZSx7dHlwZTppfT10LGM9W2EoKSxzKCksbygpXTtyZXR1cm4gaT09PWBzZWxlY3RlZGA/RShgZGl2YCx7Y2xhc3M6Y2MoYHNlbGVjdGVkLWRheWApLHN0eWxlOnt3aWR0aDpyLGhlaWdodDpyLGJhY2tncm91bmQ6bn19LFtjXSk6Y307cmV0dXJuKCk9PntsZXR7dHlwZTp0LGNsYXNzTmFtZTpufT1lLml0ZW07cmV0dXJuIHQ9PT1gcGxhY2Vob2xkZXJgP0UoYGRpdmAse2NsYXNzOmNjKGBkYXlgKSxzdHlsZTpyLnZhbHVlfSxudWxsKTpFKGBkaXZgLHtyb2xlOmBncmlkY2VsbGAsc3R5bGU6ci52YWx1ZSxjbGFzczpbY2MoYGRheWAsdCksbl0sdGFiaW5kZXg6dD09PWBkaXNhYmxlZGA/dm9pZCAwOi0xLG9uQ2xpY2s6aX0sW2MoKV0pfX19KSxbRmNdPUooYGNhbGVuZGFyLW1vbnRoYCksSWM9UCh7bmFtZTpGYyxwcm9wczp7ZGF0ZTp1bihEYXRlKSx0eXBlOlN0cmluZyxjb2xvcjpTdHJpbmcsbWluRGF0ZTpEYXRlLG1heERhdGU6RGF0ZSxzaG93TWFyazpCb29sZWFuLHJvd0hlaWdodDp6LGZvcm1hdHRlcjpGdW5jdGlvbixsYXp5UmVuZGVyOkJvb2xlYW4sY3VycmVudERhdGU6W0RhdGUsQXJyYXldLGFsbG93U2FtZURheTpCb29sZWFuLHNob3dTdWJ0aXRsZTpCb29sZWFuLHNob3dNb250aFRpdGxlOkJvb2xlYW4sZmlyc3REYXlPZldlZWs6TnVtYmVyfSxlbWl0czpbYGNsaWNrYCxgY2xpY2tEaXNhYmxlZERhdGVgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldFtyLGldPXZuKCksYT1iKCksbz1iKCkscz1HcihvKSxjPU4oKCk9PnVjKGUuZGF0ZSkpLGw9TigoKT0+cShlLnJvd0hlaWdodCkpLHU9TigoKT0+e2xldCB0PWUuZGF0ZS5nZXREYXRlKCksbj0oZS5kYXRlLmdldERheSgpLXQlNys4KSU3O3JldHVybiBlLmZpcnN0RGF5T2ZXZWVrPyhuKzctZS5maXJzdERheU9mV2VlayklNzpufSksZD1OKCgpPT5BYyhlLmRhdGUuZ2V0RnVsbFllYXIoKSxlLmRhdGUuZ2V0TW9udGgoKSsxKSksZj1OKCgpPT5yLnZhbHVlfHwhZS5sYXp5UmVuZGVyKSxwPSgpPT5jLnZhbHVlLG09dD0+e2xldCBuPXQ9PmUuY3VycmVudERhdGUuc29tZShlPT5mYyhlLHQpPT09MCk7aWYobih0KSl7bGV0IGU9dmModCkscj15Yyh0KSxpPW4oZSksYT1uKHIpO3JldHVybiBpJiZhP2BtdWx0aXBsZS1taWRkbGVgOmk/YGVuZGA6YT9gc3RhcnRgOmBtdWx0aXBsZS1zZWxlY3RlZGB9cmV0dXJuYGB9LGg9dD0+e2xldFtuLHJdPWUuY3VycmVudERhdGU7aWYoIW4pcmV0dXJuYGA7bGV0IGk9ZmModCxuKTtpZighcilyZXR1cm4gaT09PTA/YHN0YXJ0YDpgYDtsZXQgYT1mYyh0LHIpO3JldHVybiBlLmFsbG93U2FtZURheSYmaT09PTAmJmE9PT0wP2BzdGFydC1lbmRgOmk9PT0wP2BzdGFydGA6YT09PTA/YGVuZGA6aT4wJiZhPDA/YG1pZGRsZWA6YGB9LGc9dD0+e2xldHt0eXBlOm4sbWluRGF0ZTpyLG1heERhdGU6aSxjdXJyZW50RGF0ZTphfT1lO2lmKHImJmZjKHQscik8MHx8aSYmZmModCxpKT4wKXJldHVybmBkaXNhYmxlZGA7aWYoYT09PW51bGwpcmV0dXJuYGA7aWYoQXJyYXkuaXNBcnJheShhKSl7aWYobj09PWBtdWx0aXBsZWApcmV0dXJuIG0odCk7aWYobj09PWByYW5nZWApcmV0dXJuIGgodCl9ZWxzZSBpZihuPT09YHNpbmdsZWApcmV0dXJuIGZjKHQsYSk9PT0wP2BzZWxlY3RlZGA6YGA7cmV0dXJuYGB9LF89dD0+e2lmKGUudHlwZT09PWByYW5nZWApe2lmKHQ9PT1gc3RhcnRgfHx0PT09YGVuZGApcmV0dXJuIGxjKHQpO2lmKHQ9PT1gc3RhcnQtZW5kYClyZXR1cm5gJHtsYyhgc3RhcnRgKX0vJHtsYyhgZW5kYCl9YH19LHY9KCk9PntpZihlLnNob3dNb250aFRpdGxlKXJldHVybiBFKGBkaXZgLHtjbGFzczpjYyhgbW9udGgtdGl0bGVgKX0sW25bYG1vbnRoLXRpdGxlYF0/bltgbW9udGgtdGl0bGVgXSh7ZGF0ZTplLmRhdGUsdGV4dDpjLnZhbHVlfSk6Yy52YWx1ZV0pfSx5PSgpPT57aWYoZS5zaG93TWFyayYmZi52YWx1ZSlyZXR1cm4gRShgZGl2YCx7Y2xhc3M6Y2MoYG1vbnRoLW1hcmtgKX0sW2UuZGF0ZS5nZXRNb250aCgpKzFdKX0seD1OKCgpPT57bGV0IGU9TWF0aC5jZWlsKChkLnZhbHVlK3UudmFsdWUpLzcpO3JldHVybiBBcnJheShlKS5maWxsKHt0eXBlOmBwbGFjZWhvbGRlcmB9KX0pLFM9TigoKT0+e2xldCB0PVtdLG49ZS5kYXRlLmdldEZ1bGxZZWFyKCkscj1lLmRhdGUuZ2V0TW9udGgoKTtmb3IobGV0IGk9MTtpPD1kLnZhbHVlO2krKyl7bGV0IGE9bmV3IERhdGUobixyLGkpLG89ZyhhKSxzPXtkYXRlOmEsdHlwZTpvLHRleHQ6aSxib3R0b21JbmZvOl8obyl9O2UuZm9ybWF0dGVyJiYocz1lLmZvcm1hdHRlcihzKSksdC5wdXNoKHMpfXJldHVybiB0fSksQz1OKCgpPT5TLnZhbHVlLmZpbHRlcihlPT5lLnR5cGU9PT1gZGlzYWJsZWRgKSksdz0oZSx0KT0+e2lmKGEudmFsdWUpe2xldCBuPVcoYS52YWx1ZSkscj14LnZhbHVlLmxlbmd0aCxpPShNYXRoLmNlaWwoKHQuZ2V0RGF0ZSgpK3UudmFsdWUpLzcpLTEpKm4uaGVpZ2h0L3I7S24oZSxuLnRvcCtpK2Uuc2Nyb2xsVG9wLVcoZSkudG9wKX19LFQ9KHIsaSk9PkUoUGMse2l0ZW06cixpbmRleDppLGNvbG9yOmUuY29sb3Isb2Zmc2V0OnUudmFsdWUscm93SGVpZ2h0OmwudmFsdWUsb25DbGljazplPT50KGBjbGlja2AsZSksb25DbGlja0Rpc2FibGVkRGF0ZTplPT50KGBjbGlja0Rpc2FibGVkRGF0ZWAsZSl9LFIobixbYHRvcC1pbmZvYCxgYm90dG9tLWluZm9gLGB0ZXh0YF0pKSxEPSgpPT5FKGBkaXZgLHtyZWY6YSxyb2xlOmBncmlkYCxjbGFzczpjYyhgZGF5c2ApfSxbeSgpLChmLnZhbHVlP1M6eCkudmFsdWUubWFwKFQpXSk7cmV0dXJuIFgoe2dldFRpdGxlOnAsZ2V0SGVpZ2h0OigpPT5zLnZhbHVlLHNldFZpc2libGU6aSxzY3JvbGxUb0RhdGU6dyxkaXNhYmxlZERheXM6Q30pLCgpPT5FKGBkaXZgLHtjbGFzczpjYyhgbW9udGhgKSxyZWY6b30sW3YoKSxEKCldKX19KSxbTGNdPUooYGNhbGVuZGFyLWhlYWRlcmApLFJjPVAoe25hbWU6TGMscHJvcHM6e2RhdGU6RGF0ZSxtaW5EYXRlOkRhdGUsbWF4RGF0ZTpEYXRlLHRpdGxlOlN0cmluZyxzdWJ0aXRsZTpTdHJpbmcsc2hvd1RpdGxlOkJvb2xlYW4sc2hvd1N1YnRpdGxlOkJvb2xlYW4sZmlyc3REYXlPZldlZWs6TnVtYmVyLHN3aXRjaE1vZGU6VShgbm9uZWApfSxlbWl0czpbYGNsaWNrU3VidGl0bGVgLGBwYW5lbENoYW5nZWBdLHNldHVwKGUse3Nsb3RzOnQsZW1pdDpufSl7bGV0IHI9TigoKT0+ZS5kYXRlJiZlLm1pbkRhdGUmJmRjKGJjKGUuZGF0ZSksZS5taW5EYXRlKTwwKSxpPU4oKCk9PmUuZGF0ZSYmZS5taW5EYXRlJiZkYyhTYyhlLmRhdGUpLGUubWluRGF0ZSk8MCksYT1OKCgpPT5lLmRhdGUmJmUubWF4RGF0ZSYmZGMoeGMoZS5kYXRlKSxlLm1heERhdGUpPjApLG89TigoKT0+ZS5kYXRlJiZlLm1heERhdGUmJmRjKENjKGUuZGF0ZSksZS5tYXhEYXRlKT4wKSxzPSgpPT57aWYoZS5zaG93VGl0bGUpe2xldCBuPWUudGl0bGV8fGxjKGB0aXRsZWApLHI9dC50aXRsZT90LnRpdGxlKCk6bjtyZXR1cm4gRShgZGl2YCx7Y2xhc3M6Y2MoYGhlYWRlci10aXRsZWApfSxbcl0pfX0sYz1lPT5uKGBjbGlja1N1YnRpdGxlYCxlKSxsPWU9Pm4oYHBhbmVsQ2hhbmdlYCxlKSx1PW49PntsZXQgcz1lLnN3aXRjaE1vZGU9PT1geWVhci1tb250aGAsYz10W24/YG5leHQtbW9udGhgOmBwcmV2LW1vbnRoYF0sdT10W24/YG5leHQteWVhcmA6YHByZXYteWVhcmBdLGQ9bj9hLnZhbHVlOnIudmFsdWUsZj1uP28udmFsdWU6aS52YWx1ZSxwPW4/YGFycm93YDpgYXJyb3ctbGVmdGAsbT1uP2BhcnJvdy1kb3VibGUtcmlnaHRgOmBhcnJvdy1kb3VibGUtbGVmdGAsaD0oKT0+bCgobj94YzpiYykoZS5kYXRlKSksZz0oKT0+bCgobj9DYzpTYykoZS5kYXRlKSksXz1FKGB2aWV3YCx7Y2xhc3M6Y2MoYGhlYWRlci1hY3Rpb25gLHtkaXNhYmxlZDpkfSksb25DbGljazpkP3ZvaWQgMDpofSxbYz9jKHtkaXNhYmxlZDpkfSk6RShaLHtjbGFzczp7W3pyXTohZH0sbmFtZTpwfSxudWxsKV0pLHY9cyYmRShgdmlld2Ase2NsYXNzOmNjKGBoZWFkZXItYWN0aW9uYCx7ZGlzYWJsZWQ6Zn0pLG9uQ2xpY2s6Zj92b2lkIDA6Z30sW3U/dSh7ZGlzYWJsZWQ6Zn0pOkUoWix7Y2xhc3M6eyJ2YW4taGFwdGljcy1mZWVkYmFjayI6IWZ9LG5hbWU6bX0sbnVsbCldKTtyZXR1cm4gbj9bXyx2XTpbdixfXX0sZD0oKT0+e2lmKGUuc2hvd1N1YnRpdGxlKXtsZXQgbj10LnN1YnRpdGxlP3Quc3VidGl0bGUoe2RhdGU6ZS5kYXRlLHRleHQ6ZS5zdWJ0aXRsZX0pOmUuc3VidGl0bGUscj1lLnN3aXRjaE1vZGUhPT1gbm9uZWA7cmV0dXJuIEUoYGRpdmAse2NsYXNzOmNjKGBoZWFkZXItc3VidGl0bGVgLHsid2l0aC1zd2l0Y2giOnJ9KSxvbkNsaWNrOmN9LFtyP1t1KCksRShgZGl2YCx7Y2xhc3M6Y2MoYGhlYWRlci1zdWJ0aXRsZS10ZXh0YCl9LFtuXSksdSghMCldOm5dKX19LGY9KCk9PntsZXR7Zmlyc3REYXlPZldlZWs6dH09ZSxuPWxjKGB3ZWVrZGF5c2ApLHI9Wy4uLm4uc2xpY2UodCw3KSwuLi5uLnNsaWNlKDAsdCldO3JldHVybiBFKGBkaXZgLHtjbGFzczpjYyhgd2Vla2RheXNgKX0sW3IubWFwKGU9PkUoYHNwYW5gLHtjbGFzczpjYyhgd2Vla2RheWApfSxbZV0pKV0pfTtyZXR1cm4oKT0+RShgZGl2YCx7Y2xhc3M6Y2MoYGhlYWRlcmApfSxbcygpLGQoKSxmKCldKX19KSx6Yz1ZKFAoe25hbWU6c2MscHJvcHM6e3Nob3c6Qm9vbGVhbix0eXBlOlUoYHNpbmdsZWApLHN3aXRjaE1vZGU6VShgbm9uZWApLHRpdGxlOlN0cmluZyxjb2xvcjpTdHJpbmcscm91bmQ6QixyZWFkb25seTpCb29sZWFuLHBvcHBhYmxlOkIsbWF4UmFuZ2U6SChudWxsKSxwb3NpdGlvbjpVKGBib3R0b21gKSx0ZWxlcG9ydDpbU3RyaW5nLE9iamVjdF0sc2hvd01hcms6QixzaG93VGl0bGU6Qixmb3JtYXR0ZXI6RnVuY3Rpb24scm93SGVpZ2h0OnosY29uZmlybVRleHQ6U3RyaW5nLHJhbmdlUHJvbXB0OlN0cmluZyxsYXp5UmVuZGVyOkIsc2hvd0NvbmZpcm06QixkZWZhdWx0RGF0ZTpbRGF0ZSxBcnJheV0sYWxsb3dTYW1lRGF5OkJvb2xlYW4sc2hvd1N1YnRpdGxlOkIsY2xvc2VPblBvcHN0YXRlOkIsc2hvd1JhbmdlUHJvbXB0OkIsY29uZmlybURpc2FibGVkVGV4dDpTdHJpbmcsY2xvc2VPbkNsaWNrT3ZlcmxheTpCLHNhZmVBcmVhSW5zZXRUb3A6Qm9vbGVhbixzYWZlQXJlYUluc2V0Qm90dG9tOkIsbWluRGF0ZTp7dHlwZTpEYXRlLHZhbGlkYXRvcjp0bn0sbWF4RGF0ZTp7dHlwZTpEYXRlLHZhbGlkYXRvcjp0bn0sZmlyc3REYXlPZldlZWs6e3R5cGU6eixkZWZhdWx0OjAsdmFsaWRhdG9yOmU9PmU+PTAmJmU8PTZ9fSxlbWl0czpbYHNlbGVjdGAsYGNvbmZpcm1gLGB1bnNlbGVjdGAsYG1vbnRoU2hvd2AsYG92ZXJSYW5nZWAsYHVwZGF0ZTpzaG93YCxgY2xpY2tTdWJ0aXRsZWAsYGNsaWNrRGlzYWJsZWREYXRlYCxgY2xpY2tPdmVybGF5YCxgcGFuZWxDaGFuZ2VgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCBpPU4oKCk9PmUuc3dpdGNoTW9kZSE9PWBub25lYCksYT1OKCgpPT4hZS5taW5EYXRlJiYhaS52YWx1ZT93YygpOmUubWluRGF0ZSksbz1OKCgpPT4hZS5tYXhEYXRlJiYhaS52YWx1ZT9nYyh3YygpLDYpOmUubWF4RGF0ZSkscz0oZSx0PWEudmFsdWUsbj1vLnZhbHVlKT0+dCYmZmMoZSx0KT09PS0xP3Q6biYmZmMoZSxuKT09PTE/bjplLGM9KHQ9ZS5kZWZhdWx0RGF0ZSk9PntsZXR7dHlwZTpuLGFsbG93U2FtZURheTpyfT1lO2lmKHQ9PT1udWxsKXJldHVybiB0O2xldCBpPXdjKCk7aWYobj09PWByYW5nZWApe0FycmF5LmlzQXJyYXkodCl8fCh0PVtdKSx0Lmxlbmd0aD09PTEmJmZjKHRbMF0saSk9PT0xJiYodD1bXSk7bGV0IGU9YS52YWx1ZSxuPW8udmFsdWU7cmV0dXJuW3ModFswXXx8aSxlLG4/cj9uOnZjKG4pOnZvaWQgMCkscyh0WzFdfHwocj9pOnljKGkpKSxlP3I/ZTp5YyhlKTp2b2lkIDApXX1yZXR1cm4gbj09PWBtdWx0aXBsZWA/QXJyYXkuaXNBcnJheSh0KT90Lm1hcChlPT5zKGUpKTpbcyhpKV06KCghdHx8QXJyYXkuaXNBcnJheSh0KSkmJih0PWkpLHModCkpfSxsPSgpPT4oQXJyYXkuaXNBcnJheShwLnZhbHVlKT9wLnZhbHVlWzBdOnAudmFsdWUpfHxzKHdjKCkpLHUsZD1iKCkscD1iKGMoKSksbT1iKGwoKSksaD1iKCksW2csX109RGEoKSx2PU4oKCk9PmUuZmlyc3REYXlPZldlZWs/ZS5maXJzdERheU9mV2VlayU3OjApLHk9TigoKT0+e2xldCBlPVtdO2lmKCFhLnZhbHVlfHwhby52YWx1ZSlyZXR1cm4gZTtsZXQgdD1uZXcgRGF0ZShhLnZhbHVlKTt0LnNldERhdGUoMSk7ZG8gZS5wdXNoKG5ldyBEYXRlKHQpKSx0LnNldE1vbnRoKHQuZ2V0TW9udGgoKSsxKTt3aGlsZShkYyh0LG8udmFsdWUpIT09MSk7cmV0dXJuIGV9KSx4PU4oKCk9PntpZihwLnZhbHVlKXtpZihlLnR5cGU9PT1gcmFuZ2VgKXJldHVybiFwLnZhbHVlWzBdfHwhcC52YWx1ZVsxXTtpZihlLnR5cGU9PT1gbXVsdGlwbGVgKXJldHVybiFwLnZhbHVlLmxlbmd0aH1yZXR1cm4hcC52YWx1ZX0pLFM9KCk9PnAudmFsdWUsQz0oKT0+e2xldCBlPUduKGQudmFsdWUpLG49ZSt1LHI9eS52YWx1ZS5tYXAoKGUsdCk9PmcudmFsdWVbdF0uZ2V0SGVpZ2h0KCkpO2lmKG4+ci5yZWR1Y2UoKGUsdCk9PmUrdCwwKSYmZT4wKXJldHVybjtsZXQgaT0wLGEsbz1bLTEsLTFdO2ZvcihsZXQgcz0wO3M8eS52YWx1ZS5sZW5ndGg7cysrKXtsZXQgYz1nLnZhbHVlW3NdO2k8PW4mJmkrcltzXT49ZSYmKG9bMV09cyxhfHwoYT1jLG9bMF09cyksZy52YWx1ZVtzXS5zaG93ZWR8fChnLnZhbHVlW3NdLnNob3dlZD0hMCx0KGBtb250aFNob3dgLHtkYXRlOmMuZGF0ZSx0aXRsZTpjLmdldFRpdGxlKCl9KSkpLGkrPXJbc119eS52YWx1ZS5mb3JFYWNoKChlLHQpPT57bGV0IG49dD49b1swXS0xJiZ0PD1vWzFdKzE7Zy52YWx1ZVt0XS5zZXRWaXNpYmxlKG4pfSksYSYmKGgudmFsdWU9YSl9LHc9ZT0+e2kudmFsdWU/bS52YWx1ZT1lOnBuKCgpPT57eS52YWx1ZS5zb21lKCh0LG4pPT5kYyh0LGUpPT09MD8oZC52YWx1ZSYmZy52YWx1ZVtuXS5zY3JvbGxUb0RhdGUoZC52YWx1ZSxlKSwhMCk6ITEpLEMoKX0pfSxUPSgpPT57aWYoIShlLnBvcHBhYmxlJiYhZS5zaG93KSlpZihwLnZhbHVlKXtsZXQgdD1lLnR5cGU9PT1gc2luZ2xlYD9wLnZhbHVlOnAudmFsdWVbMF07dG4odCkmJncodCl9ZWxzZSBpLnZhbHVlfHxwbihDKX0sRD0oKT0+e2UucG9wcGFibGUmJiFlLnNob3d8fChpLnZhbHVlfHxwbigoKT0+e3U9TWF0aC5mbG9vcihXKGQpLmhlaWdodCl9KSxUKCkpfSxPPShlPWMoKSk9PntwLnZhbHVlPWUsVCgpfSxrPW49PntsZXR7bWF4UmFuZ2U6cixyYW5nZVByb21wdDppLHNob3dSYW5nZVByb21wdDphfT1lO3JldHVybiByJiZUYyhuKT4rcj8oYSYmaXMoaXx8bGMoYHJhbmdlUHJvbXB0YCxyKSksdChgb3ZlclJhbmdlYCksITEpOiEwfSxBPWU9PnttLnZhbHVlPWUsdChgcGFuZWxDaGFuZ2VgLHtkYXRlOmV9KX0saj0oKT0+dChgY29uZmlybWAscC52YWx1ZT8/bWMocC52YWx1ZSkpLGVlPShuLHIpPT57bGV0IGk9ZT0+e3AudmFsdWU9ZSx0KGBzZWxlY3RgLG1jKGUpKX07aWYociYmZS50eXBlPT09YHJhbmdlYCYmIWsobikpe2koW25bMF0saGMoblswXSxlLm1heFJhbmdlLTEpXSk7cmV0dXJufWkobiksciYmIWUuc2hvd0NvbmZpcm0mJmooKX0sdGU9KGUsdCxuKT0+ZS5maW5kKGU9PmZjKHQsZS5kYXRlKT09PS0xJiZmYyhlLmRhdGUsbik9PT0tMSk/LmRhdGUsbmU9TigoKT0+Zy52YWx1ZS5yZWR1Y2UoKGUsdCk9PihlLnB1c2goLi4udC5kaXNhYmxlZERheXM/LnZhbHVlPz9bXSksZSksW10pKSxyZT1uPT57aWYoZS5yZWFkb25seXx8IW4uZGF0ZSlyZXR1cm47bGV0e2RhdGU6cn09bix7dHlwZTppfT1lO2lmKGk9PT1gcmFuZ2VgKXtpZighcC52YWx1ZSl7ZWUoW3JdKTtyZXR1cm59bGV0W3Qsbl09cC52YWx1ZTtpZih0JiYhbil7bGV0IG49ZmMocix0KTtpZihuPT09MSl7bGV0IGU9dGUobmUudmFsdWUsdCxyKTtpZihlKXtsZXQgbj12YyhlKTtmYyh0LG4pPT09LTE/ZWUoW3Qsbl0pOmVlKFtyXSl9ZWxzZSBlZShbdCxyXSwhMCl9ZWxzZSBuPT09LTE/ZWUoW3JdKTplLmFsbG93U2FtZURheSYmZWUoW3Iscl0sITApfWVsc2UgZWUoW3JdKX1lbHNlIGlmKGk9PT1gbXVsdGlwbGVgKXtpZighcC52YWx1ZSl7ZWUoW3JdKTtyZXR1cm59bGV0IG49cC52YWx1ZSxpPW4uZmluZEluZGV4KGU9PmZjKGUscik9PT0wKTtpZihpIT09LTEpe2xldFtlXT1uLnNwbGljZShpLDEpO3QoYHVuc2VsZWN0YCxwYyhlKSl9ZWxzZSBlLm1heFJhbmdlJiZuLmxlbmd0aD49K2UubWF4UmFuZ2U/aXMoZS5yYW5nZVByb21wdHx8bGMoYHJhbmdlUHJvbXB0YCxlLm1heFJhbmdlKSk6ZWUoWy4uLm4scl0pfWVsc2UgZWUociwhMCl9LGllPWU9PnQoYGNsaWNrT3ZlcmxheWAsZSksYWU9ZT0+dChgdXBkYXRlOnNob3dgLGUpLG9lPShzLGMpPT57bGV0IGw9YyE9PTB8fCFlLnNob3dTdWJ0aXRsZTtyZXR1cm4gRShJYyxyKHtyZWY6aS52YWx1ZT9oOl8oYyksZGF0ZTpzLGN1cnJlbnREYXRlOnAudmFsdWUsc2hvd01vbnRoVGl0bGU6bCxmaXJzdERheU9mV2Vlazp2LnZhbHVlLGxhenlSZW5kZXI6aS52YWx1ZT8hMTplLmxhenlSZW5kZXIsbWF4RGF0ZTpvLnZhbHVlLG1pbkRhdGU6YS52YWx1ZX0sUihlLFtgdHlwZWAsYGNvbG9yYCxgc2hvd01hcmtgLGBmb3JtYXR0ZXJgLGByb3dIZWlnaHRgLGBzaG93U3VidGl0bGVgLGBhbGxvd1NhbWVEYXlgXSkse29uQ2xpY2s6cmUsb25DbGlja0Rpc2FibGVkRGF0ZTplPT50KGBjbGlja0Rpc2FibGVkRGF0ZWAsZSl9KSxSKG4sW2B0b3AtaW5mb2AsYGJvdHRvbS1pbmZvYCxgbW9udGgtdGl0bGVgLGB0ZXh0YF0pKX0sc2U9KCk9PntpZihuLmZvb3RlcilyZXR1cm4gbi5mb290ZXIoKTtpZihlLnNob3dDb25maXJtKXtsZXQgdD1uW2Bjb25maXJtLXRleHRgXSxyPXgudmFsdWUsaT1yP2UuY29uZmlybURpc2FibGVkVGV4dDplLmNvbmZpcm1UZXh0O3JldHVybiBFKFRpLHtyb3VuZDohMCxibG9jazohMCx0eXBlOmBwcmltYXJ5YCxjb2xvcjplLmNvbG9yLGNsYXNzOmNjKGBjb25maXJtYCksZGlzYWJsZWQ6cixuYXRpdmVUeXBlOmBidXR0b25gLG9uQ2xpY2s6an0se2RlZmF1bHQ6KCk9Plt0P3Qoe2Rpc2FibGVkOnJ9KTppfHxsYyhgY29uZmlybWApXX0pfX0sTT0oKT0+RShgZGl2YCx7Y2xhc3M6W2NjKGBmb290ZXJgKSx7InZhbi1zYWZlLWFyZWEtYm90dG9tIjplLnNhZmVBcmVhSW5zZXRCb3R0b219XX0sW3NlKCldKSxjZT0oKT0+RShgZGl2YCx7Y2xhc3M6Y2MoKX0sW0UoUmMse2RhdGU6aC52YWx1ZT8uZGF0ZSxtYXhEYXRlOm8udmFsdWUsbWluRGF0ZTphLnZhbHVlLHRpdGxlOmUudGl0bGUsc3VidGl0bGU6aC52YWx1ZT8uZ2V0VGl0bGUoKSxzaG93VGl0bGU6ZS5zaG93VGl0bGUsc2hvd1N1YnRpdGxlOmUuc2hvd1N1YnRpdGxlLHN3aXRjaE1vZGU6ZS5zd2l0Y2hNb2RlLGZpcnN0RGF5T2ZXZWVrOnYudmFsdWUsb25DbGlja1N1YnRpdGxlOmU9PnQoYGNsaWNrU3VidGl0bGVgLGUpLG9uUGFuZWxDaGFuZ2U6QX0sUihuLFtgdGl0bGVgLGBzdWJ0aXRsZWAsYHByZXYtbW9udGhgLGBwcmV2LXllYXJgLGBuZXh0LW1vbnRoYCxgbmV4dC15ZWFyYF0pKSxFKGBkaXZgLHtyZWY6ZCxjbGFzczpjYyhgYm9keWApLG9uU2Nyb2xsOmkudmFsdWU/dm9pZCAwOkN9LFtpLnZhbHVlP29lKG0udmFsdWUsMCk6eS52YWx1ZS5tYXAob2UpXSksTSgpXSk7cmV0dXJuIGYoKCk9PmUuc2hvdyxEKSxmKCgpPT5bZS50eXBlLGUubWluRGF0ZSxlLm1heERhdGUsZS5zd2l0Y2hNb2RlXSwoKT0+TyhjKHAudmFsdWUpKSksZigoKT0+ZS5kZWZhdWx0RGF0ZSxlPT57TyhlKX0pLFgoe3Jlc2V0Ok8sc2Nyb2xsVG9EYXRlOncsZ2V0U2VsZWN0ZWREYXRlOlN9KSxqbihEKSwoKT0+ZS5wb3BwYWJsZT9FKHFpLHtzaG93OmUuc2hvdyxjbGFzczpjYyhgcG9wdXBgKSxyb3VuZDplLnJvdW5kLHBvc2l0aW9uOmUucG9zaXRpb24sY2xvc2VhYmxlOmUuc2hvd1RpdGxlfHxlLnNob3dTdWJ0aXRsZSx0ZWxlcG9ydDplLnRlbGVwb3J0LGNsb3NlT25Qb3BzdGF0ZTplLmNsb3NlT25Qb3BzdGF0ZSxzYWZlQXJlYUluc2V0VG9wOmUuc2FmZUFyZWFJbnNldFRvcCxjbG9zZU9uQ2xpY2tPdmVybGF5OmUuY2xvc2VPbkNsaWNrT3ZlcmxheSxvbkNsaWNrT3ZlcmxheTppZSwib25VcGRhdGU6c2hvdyI6YWV9LHtkZWZhdWx0OmNlfSk6Y2UoKX19KSksW0JjLFZjXT1KKGBpbWFnZWApLEhjPVkoUCh7bmFtZTpCYyxwcm9wczp7c3JjOlN0cmluZyxhbHQ6U3RyaW5nLGZpdDpTdHJpbmcscG9zaXRpb246U3RyaW5nLHJvdW5kOkJvb2xlYW4sYmxvY2s6Qm9vbGVhbix3aWR0aDp6LGhlaWdodDp6LHJhZGl1czp6LGxhenlMb2FkOkJvb2xlYW4saWNvblNpemU6eixzaG93RXJyb3I6QixlcnJvckljb246VShgcGhvdG8tZmFpbGApLGljb25QcmVmaXg6U3RyaW5nLHNob3dMb2FkaW5nOkIsbG9hZGluZ0ljb246VShgcGhvdG9gKSxjcm9zc29yaWdpbjpTdHJpbmcscmVmZXJyZXJwb2xpY3k6U3RyaW5nLGRlY29kaW5nOlN0cmluZ30sZW1pdHM6W2Bsb2FkYCxgZXJyb3JgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6aX0pe2xldCBvPWIoITEpLHM9YighMCksYz1iKCkseyRMYXp5bG9hZDp1fT1UZSgpLnByb3h5LGQ9TigoKT0+e2xldCB0PXt3aWR0aDpxKGUud2lkdGgpLGhlaWdodDpxKGUuaGVpZ2h0KX07cmV0dXJuIEwoZS5yYWRpdXMpJiYodC5vdmVyZmxvdz1gaGlkZGVuYCx0LmJvcmRlclJhZGl1cz1xKGUucmFkaXVzKSksdH0pO2YoKCk9PmUuc3JjLCgpPT57by52YWx1ZT0hMSxzLnZhbHVlPSEwfSk7bGV0IHA9ZT0+e3MudmFsdWUmJihzLnZhbHVlPSExLHQoYGxvYWRgLGUpKX0sbT0oKT0+e2xldCBlPW5ldyBFdmVudChgbG9hZGApO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ0YXJnZXQiLHt2YWx1ZTpjLnZhbHVlLGVudW1lcmFibGU6ITB9KSxwKGUpfSxoPWU9PntvLnZhbHVlPSEwLHMudmFsdWU9ITEsdChgZXJyb3JgLGUpfSxnPSh0LG4scik9PnI/cigpOkUoWix7bmFtZTp0LHNpemU6ZS5pY29uU2l6ZSxjbGFzczpuLGNsYXNzUHJlZml4OmUuaWNvblByZWZpeH0sbnVsbCksXz0oKT0+e2lmKHMudmFsdWUmJmUuc2hvd0xvYWRpbmcpcmV0dXJuIEUoYGRpdmAse2NsYXNzOlZjKGBsb2FkaW5nYCl9LFtnKGUubG9hZGluZ0ljb24sVmMoYGxvYWRpbmctaWNvbmApLGkubG9hZGluZyldKTtpZihvLnZhbHVlJiZlLnNob3dFcnJvcilyZXR1cm4gRShgZGl2YCx7Y2xhc3M6VmMoYGVycm9yYCl9LFtnKGUuZXJyb3JJY29uLFZjKGBlcnJvci1pY29uYCksaS5lcnJvcildKX0sdj0oKT0+e2lmKG8udmFsdWV8fCFlLnNyYylyZXR1cm47bGV0IHQ9e2FsdDplLmFsdCxjbGFzczpWYyhgaW1nYCksZGVjb2Rpbmc6ZS5kZWNvZGluZyxzdHlsZTp7b2JqZWN0Rml0OmUuZml0LG9iamVjdFBvc2l0aW9uOmUucG9zaXRpb259LGNyb3Nzb3JpZ2luOmUuY3Jvc3NvcmlnaW4scmVmZXJyZXJwb2xpY3k6ZS5yZWZlcnJlcnBvbGljeX07cmV0dXJuIGUubGF6eUxvYWQ/bihFKGBpbWdgLHIoe3JlZjpjfSx0KSxudWxsKSxbW2woYGxhenlgKSxlLnNyY11dKTpFKGBpbWdgLHIoe3JlZjpjLHNyYzplLnNyYyxvbkxvYWQ6cCxvbkVycm9yOmh9LHQpLG51bGwpfSx5PSh7ZWw6ZX0pPT57bGV0IHQ9KCk9PntlPT09Yy52YWx1ZSYmcy52YWx1ZSYmbSgpfTtjLnZhbHVlP3QoKTpGKHQpfSx4PSh7ZWw6ZX0pPT57ZT09PWMudmFsdWUmJiFvLnZhbHVlJiZoKCl9O3JldHVybiB1JiZadCYmKHUuJG9uKGBsb2FkZWRgLHkpLHUuJG9uKGBlcnJvcmAseCksYSgoKT0+e3UuJG9mZihgbG9hZGVkYCx5KSx1LiRvZmYoYGVycm9yYCx4KX0pKSxNKCgpPT57RigoKT0+e2MudmFsdWU/LmNvbXBsZXRlJiYhZS5sYXp5TG9hZCYmbSgpfSl9KSwoKT0+RShgZGl2YCx7Y2xhc3M6VmMoe3JvdW5kOmUucm91bmQsYmxvY2s6ZS5ibG9ja30pLHN0eWxlOmQudmFsdWV9LFt2KCksXygpLGkuZGVmYXVsdD8uY2FsbChpKV0pfX0pKSxbVWMsV2NdPUooYGNhcmRgKSxHYz1ZKFAoe25hbWU6VWMscHJvcHM6e3RhZzpTdHJpbmcsbnVtOnosZGVzYzpTdHJpbmcsdGh1bWI6U3RyaW5nLHRpdGxlOlN0cmluZyxwcmljZTp6LGNlbnRlcmVkOkJvb2xlYW4sbGF6eUxvYWQ6Qm9vbGVhbixjdXJyZW5jeTpVKGDCpWApLHRodW1iTGluazpTdHJpbmcsb3JpZ2luUHJpY2U6en0sZW1pdHM6W2BjbGlja1RodW1iYF0sc2V0dXAoZSx7c2xvdHM6dCxlbWl0Om59KXtsZXQgcj0oKT0+e2lmKHQudGl0bGUpcmV0dXJuIHQudGl0bGUoKTtpZihlLnRpdGxlKXJldHVybiBFKGBkaXZgLHtjbGFzczpbV2MoYHRpdGxlYCksYHZhbi1tdWx0aS1lbGxpcHNpcy0tbDJgXX0sW2UudGl0bGVdKX0saT0oKT0+e2lmKHQudGFnfHxlLnRhZylyZXR1cm4gRShgZGl2YCx7Y2xhc3M6V2MoYHRhZ2ApfSxbdC50YWc/dC50YWcoKTpFKEZzLHttYXJrOiEwLHR5cGU6YHByaW1hcnlgfSx7ZGVmYXVsdDooKT0+W2UudGFnXX0pXSl9LGE9KCk9PnQudGh1bWI/dC50aHVtYigpOkUoSGMse3NyYzplLnRodW1iLGZpdDpgY292ZXJgLHdpZHRoOmAxMDAlYCxoZWlnaHQ6YDEwMCVgLGxhenlMb2FkOmUubGF6eUxvYWR9LG51bGwpLG89KCk9PntpZih0LnRodW1ifHxlLnRodW1iKXJldHVybiBFKGBhYCx7aHJlZjplLnRodW1iTGluayxjbGFzczpXYyhgdGh1bWJgKSxvbkNsaWNrOmU9Pm4oYGNsaWNrVGh1bWJgLGUpfSxbYSgpLGkoKV0pfSxzPSgpPT57aWYodC5kZXNjKXJldHVybiB0LmRlc2MoKTtpZihlLmRlc2MpcmV0dXJuIEUoYGRpdmAse2NsYXNzOltXYyhgZGVzY2ApLGB2YW4tZWxsaXBzaXNgXX0sW2UuZGVzY10pfSxjPSgpPT57bGV0IHQ9ZS5wcmljZS50b1N0cmluZygpLnNwbGl0KGAuYCk7cmV0dXJuIEUoYGRpdmAsbnVsbCxbRShgc3BhbmAse2NsYXNzOldjKGBwcmljZS1jdXJyZW5jeWApfSxbZS5jdXJyZW5jeV0pLEUoYHNwYW5gLHtjbGFzczpXYyhgcHJpY2UtaW50ZWdlcmApfSxbdFswXV0pLHQubGVuZ3RoPjEmJkUoRCxudWxsLFtpZShgLmApLEUoYHNwYW5gLHtjbGFzczpXYyhgcHJpY2UtZGVjaW1hbGApfSxbdFsxXV0pXSldKX07cmV0dXJuKCk9PntsZXQgbj10Lm51bXx8TChlLm51bSksaT10LnByaWNlfHxMKGUucHJpY2UpLGE9dFtgb3JpZ2luLXByaWNlYF18fEwoZS5vcmlnaW5QcmljZSksbD1ufHxpfHxhfHx0LmJvdHRvbSx1PWkmJkUoYGRpdmAse2NsYXNzOldjKGBwcmljZWApfSxbdC5wcmljZT90LnByaWNlKCk6YygpXSksZD1hJiZFKGBkaXZgLHtjbGFzczpXYyhgb3JpZ2luLXByaWNlYCl9LFt0W2BvcmlnaW4tcHJpY2VgXT90W2BvcmlnaW4tcHJpY2VgXSgpOmAke2UuY3VycmVuY3l9ICR7ZS5vcmlnaW5QcmljZX1gXSksZj1uJiZFKGBkaXZgLHtjbGFzczpXYyhgbnVtYCl9LFt0Lm51bT90Lm51bSgpOmB4JHtlLm51bX1gXSkscD10LmZvb3RlciYmRShgZGl2YCx7Y2xhc3M6V2MoYGZvb3RlcmApfSxbdC5mb290ZXIoKV0pLG09bCYmRShgZGl2YCx7Y2xhc3M6V2MoYGJvdHRvbWApfSxbdFtgcHJpY2UtdG9wYF0/LmNhbGwodCksdSxkLGYsdC5ib3R0b20/LmNhbGwodCldKTtyZXR1cm4gRShgZGl2YCx7Y2xhc3M6V2MoKX0sW0UoYGRpdmAse2NsYXNzOldjKGBoZWFkZXJgKX0sW28oKSxFKGBkaXZgLHtjbGFzczpXYyhgY29udGVudGAse2NlbnRlcmVkOmUuY2VudGVyZWR9KX0sW0UoYGRpdmAsbnVsbCxbcigpLHMoKSx0LnRhZ3M/LmNhbGwodCldKSxtXSldKSxwXSl9fX0pKSxbS2MscWMsSmNdPUooYGNhc2NhZGVyYCksWWM9WShQKHtuYW1lOktjLHByb3BzOnt0aXRsZTpTdHJpbmcsb3B0aW9uczpWKCksY2xvc2VhYmxlOkIsc3dpcGVhYmxlOkIsY2xvc2VJY29uOlUoYGNyb3NzYCksc2hvd0hlYWRlcjpCLG1vZGVsVmFsdWU6eixmaWVsZE5hbWVzOk9iamVjdCxwbGFjZWhvbGRlcjpTdHJpbmcsYWN0aXZlQ29sb3I6U3RyaW5nfSxlbWl0czpbYGNsb3NlYCxgY2hhbmdlYCxgZmluaXNoYCxgY2xpY2tUYWJgLGB1cGRhdGU6bW9kZWxWYWx1ZWBdLHNldHVwKGUse3Nsb3RzOnQsZW1pdDpufSl7bGV0IHI9YihbXSksaT1iKDApLFthLG9dPURhKCkse3RleHQ6cyx2YWx1ZTpjLGNoaWxkcmVuOmx9PUkoe3RleHQ6YHRleHRgLHZhbHVlOmB2YWx1ZWAsY2hpbGRyZW46YGNoaWxkcmVuYH0sZS5maWVsZE5hbWVzKSx1PShlLHQpPT57Zm9yKGxldCBuIG9mIGUpe2lmKG5bY109PT10KXJldHVybltuXTtpZihuW2xdKXtsZXQgZT11KG5bbF0sdCk7aWYoZSlyZXR1cm5bbiwuLi5lXX19fSxkPSgpPT57bGV0e29wdGlvbnM6dCxtb2RlbFZhbHVlOm59PWU7aWYobiE9PXZvaWQgMCl7bGV0IGU9dSh0LG4pO2lmKGUpe2xldCBuPXQ7ci52YWx1ZT1lLm1hcChlPT57bGV0IHQ9e29wdGlvbnM6bixzZWxlY3RlZDplfSxyPW4uZmluZCh0PT50W2NdPT09ZVtjXSk7cmV0dXJuIHImJihuPXJbbF0pLHR9KSxuJiZyLnZhbHVlLnB1c2goe29wdGlvbnM6bixzZWxlY3RlZDpudWxsfSksRigoKT0+e2kudmFsdWU9ci52YWx1ZS5sZW5ndGgtMX0pO3JldHVybn19ci52YWx1ZT1be29wdGlvbnM6dCxzZWxlY3RlZDpudWxsfV19LHA9KGUsdCk9PntpZihlLmRpc2FibGVkKXJldHVybjtpZihyLnZhbHVlW3RdLnNlbGVjdGVkPWUsci52YWx1ZS5sZW5ndGg+dCsxJiYoci52YWx1ZT1yLnZhbHVlLnNsaWNlKDAsdCsxKSksZVtsXSl7bGV0IG49e29wdGlvbnM6ZVtsXSxzZWxlY3RlZDpudWxsfTtyLnZhbHVlW3QrMV0/ci52YWx1ZVt0KzFdPW46ci52YWx1ZS5wdXNoKG4pLEYoKCk9PntpLnZhbHVlKyt9KX1sZXQgYT1yLnZhbHVlLm1hcChlPT5lLnNlbGVjdGVkKS5maWx0ZXIoQm9vbGVhbik7bihgdXBkYXRlOm1vZGVsVmFsdWVgLGVbY10pO2xldCBvPXt2YWx1ZTplW2NdLHRhYkluZGV4OnQsc2VsZWN0ZWRPcHRpb25zOmF9O24oYGNoYW5nZWAsbyksZVtsXXx8bihgZmluaXNoYCxvKX0sbT0oKT0+bihgY2xvc2VgKSxoPSh7bmFtZTplLHRpdGxlOnR9KT0+bihgY2xpY2tUYWJgLGUsdCksZz0oKT0+ZS5zaG93SGVhZGVyP0UoYGRpdmAse2NsYXNzOnFjKGBoZWFkZXJgKX0sW0UoYGgyYCx7Y2xhc3M6cWMoYHRpdGxlYCl9LFt0LnRpdGxlP3QudGl0bGUoKTplLnRpdGxlXSksZS5jbG9zZWFibGU/RShaLHtuYW1lOmUuY2xvc2VJY29uLGNsYXNzOltxYyhgY2xvc2UtaWNvbmApLHpyXSxvbkNsaWNrOm19LG51bGwpOm51bGxdKTpudWxsLF89KG4scixpKT0+e2xldHtkaXNhYmxlZDphfT1uLGw9ISEociYmbltjXT09PXJbY10pLHU9bi5jb2xvcnx8KGw/ZS5hY3RpdmVDb2xvcjp2b2lkIDApLGQ9dC5vcHRpb24/dC5vcHRpb24oe29wdGlvbjpuLHNlbGVjdGVkOmx9KTpFKGBzcGFuYCxudWxsLFtuW3NdXSk7cmV0dXJuIEUoYGxpYCx7cmVmOmw/byhpKTp2b2lkIDAscm9sZTpgbWVudWl0ZW1yYWRpb2AsY2xhc3M6W3FjKGBvcHRpb25gLHtzZWxlY3RlZDpsLGRpc2FibGVkOmF9KSxuLmNsYXNzTmFtZV0sc3R5bGU6e2NvbG9yOnV9LHRhYmluZGV4OmE/dm9pZCAwOmw/MDotMSwiYXJpYS1jaGVja2VkIjpsLCJhcmlhLWRpc2FibGVkIjphfHx2b2lkIDAsb25DbGljazooKT0+cChuLGkpfSxbZCxsP0UoWix7bmFtZTpgc3VjY2Vzc2AsY2xhc3M6cWMoYHNlbGVjdGVkLWljb25gKX0sbnVsbCk6bnVsbF0pfSx2PShlLHQsbik9PkUoYHVsYCx7cm9sZTpgbWVudWAsY2xhc3M6cWMoYG9wdGlvbnNgKX0sW2UubWFwKGU9Pl8oZSx0LG4pKV0pLHk9KG4scik9PntsZXR7b3B0aW9uczppLHNlbGVjdGVkOmF9PW4sbz1lLnBsYWNlaG9sZGVyfHxKYyhgc2VsZWN0YCk7cmV0dXJuIEUocm8se3RpdGxlOmE/YVtzXTpvLHRpdGxlQ2xhc3M6cWMoYHRhYmAse3Vuc2VsZWN0ZWQ6IWF9KX0se2RlZmF1bHQ6KCk9Plt0W2BvcHRpb25zLXRvcGBdPy5jYWxsKHQse3RhYkluZGV4OnJ9KSx2KGksYSxyKSx0W2BvcHRpb25zLWJvdHRvbWBdPy5jYWxsKHQse3RhYkluZGV4OnJ9KV19KX0seD0oKT0+RShpbyx7YWN0aXZlOmkudmFsdWUsIm9uVXBkYXRlOmFjdGl2ZSI6ZT0+aS52YWx1ZT1lLHNocmluazohMCxhbmltYXRlZDohMCxjbGFzczpxYyhgdGFic2ApLGNvbG9yOmUuYWN0aXZlQ29sb3Isc3dpcGVhYmxlOmUuc3dpcGVhYmxlLG9uQ2xpY2tUYWI6aH0se2RlZmF1bHQ6KCk9PltyLnZhbHVlLm1hcCh5KV19KSxTPWU9PntsZXQgdD1lLnBhcmVudEVsZW1lbnQ7dCYmKHQuc2Nyb2xsVG9wPWUub2Zmc2V0VG9wLSh0Lm9mZnNldEhlaWdodC1lLm9mZnNldEhlaWdodCkvMil9O3JldHVybiBkKCksZihpLGU9PntsZXQgdD1hLnZhbHVlW2VdO3QmJlModCl9KSxmKCgpPT5lLm9wdGlvbnMsZCx7ZGVlcDohMH0pLGYoKCk9PmUubW9kZWxWYWx1ZSxlPT57ZSE9PXZvaWQgMCYmci52YWx1ZS5tYXAoZT0+ZS5zZWxlY3RlZD8uW2NdKS5pbmNsdWRlcyhlKXx8ZCgpfSksKCk9PkUoYGRpdmAse2NsYXNzOnFjKCl9LFtnKCkseCgpXSl9fSkpLFtYYyxaY109SihgY2VsbC1ncm91cGApLFFjPVkoUCh7bmFtZTpYYyxpbmhlcml0QXR0cnM6ITEscHJvcHM6e3RpdGxlOlN0cmluZyxpbnNldDpCb29sZWFuLGJvcmRlcjpCfSxzZXR1cChlLHtzbG90czp0LGF0dHJzOm59KXtsZXQgaT0oKT0+RShgZGl2YCxyKHtjbGFzczpbWmMoe2luc2V0OmUuaW5zZXR9KSx7W0xyXTplLmJvcmRlciYmIWUuaW5zZXR9XX0sbixCaSgpKSxbdC5kZWZhdWx0Py5jYWxsKHQpXSksYT0oKT0+RShgZGl2YCx7Y2xhc3M6WmMoYHRpdGxlYCx7aW5zZXQ6ZS5pbnNldH0pfSxbdC50aXRsZT90LnRpdGxlKCk6ZS50aXRsZV0pO3JldHVybigpPT5lLnRpdGxlfHx0LnRpdGxlP0UoRCxudWxsLFthKCksaSgpXSk6aSgpfX0pKSxbJGMsZWxdPUooYGNpcmNsZWApLHRsPTAsbmw9ZT0+TWF0aC5taW4oTWF0aC5tYXgoK2UsMCksMTAwKTtmdW5jdGlvbiBybChlLHQpe2xldCBuPSshIWU7cmV0dXJuYE0gJHt0LzJ9ICR7dC8yfSBtIDAsIC01MDAgYSA1MDAsIDUwMCAwIDEsICR7bn0gMCwgMTAwMCBhIDUwMCwgNTAwIDAgMSwgJHtufSAwLCAtMTAwMGB9dmFyIGlsPVkoUCh7bmFtZTokYyxwcm9wczp7dGV4dDpTdHJpbmcsc2l6ZTp6LGZpbGw6VShgbm9uZWApLHJhdGU6SCgxMDApLHNwZWVkOkgoMCksY29sb3I6W1N0cmluZyxPYmplY3RdLGNsb2Nrd2lzZTpCLGxheWVyQ29sb3I6U3RyaW5nLGN1cnJlbnRSYXRlOmRuKDApLHN0cm9rZVdpZHRoOkgoNDApLHN0cm9rZUxpbmVjYXA6U3RyaW5nLHN0YXJ0UG9zaXRpb246VShgdG9wYCl9LGVtaXRzOltgdXBkYXRlOmN1cnJlbnRSYXRlYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXQgcj1gdmFuLWNpcmNsZS0ke3RsKyt9YCxpPU4oKCk9PitlLnN0cm9rZVdpZHRoKzFlMyksYT1OKCgpPT5ybChlLmNsb2Nrd2lzZSxpLnZhbHVlKSksbz1OKCgpPT57bGV0IHQ9e3RvcDowLHJpZ2h0OjkwLGJvdHRvbToxODAsbGVmdDoyNzB9W2Uuc3RhcnRQb3NpdGlvbl07aWYodClyZXR1cm57dHJhbnNmb3JtOmByb3RhdGUoJHt0fWRlZylgfX0pO2YoKCk9PmUucmF0ZSxuPT57bGV0IHIsaT1EYXRlLm5vdygpLGE9ZS5jdXJyZW50UmF0ZSxvPW5sKG4pLHM9TWF0aC5hYnMoKGEtbykqMWUzL2Uuc3BlZWQpLGM9KCk9PntsZXQgZT1NYXRoLm1pbigoRGF0ZS5ub3coKS1pKS9zLDEpKihvLWEpK2E7dChgdXBkYXRlOmN1cnJlbnRSYXRlYCxubChwYXJzZUZsb2F0KGUudG9GaXhlZCgxKSkpKSwobz5hP2U8bzplPm8pJiYocj1wbihjKSl9O2Uuc3BlZWQ/KHImJm1uKHIpLHI9cG4oYykpOnQoYHVwZGF0ZTpjdXJyZW50UmF0ZWAsbyl9LHtpbW1lZGlhdGU6ITB9KTtsZXQgcz0oKT0+e2xldCB0PTMxNDAse3N0cm9rZVdpZHRoOm4sY3VycmVudFJhdGU6aSxzdHJva2VMaW5lY2FwOm99PWUscz10KmkvMTAwLGM9UXQoZS5jb2xvcik/YHVybCgjJHtyfSlgOmUuY29sb3IsbD17c3Ryb2tlOmMsc3Ryb2tlV2lkdGg6YCR7K24rMX1weGAsc3Ryb2tlTGluZWNhcDpvLHN0cm9rZURhc2hhcnJheTpgJHtzfXB4ICR7dH1weGB9O3JldHVybiBFKGBwYXRoYCx7ZDphLnZhbHVlLHN0eWxlOmwsY2xhc3M6ZWwoYGhvdmVyYCksc3Ryb2tlOmN9LG51bGwpfSxjPSgpPT57bGV0IHQ9e2ZpbGw6ZS5maWxsLHN0cm9rZTplLmxheWVyQ29sb3Isc3Ryb2tlV2lkdGg6YCR7ZS5zdHJva2VXaWR0aH1weGB9O3JldHVybiBFKGBwYXRoYCx7Y2xhc3M6ZWwoYGxheWVyYCksc3R5bGU6dCxkOmEudmFsdWV9LG51bGwpfSxsPSgpPT57bGV0e2NvbG9yOnR9PWU7aWYoIVF0KHQpKXJldHVybjtsZXQgbj1PYmplY3Qua2V5cyh0KS5zb3J0KChlLHQpPT5wYXJzZUZsb2F0KGUpLXBhcnNlRmxvYXQodCkpLm1hcCgoZSxuKT0+RShgc3RvcGAse2tleTpuLG9mZnNldDplLCJzdG9wLWNvbG9yIjp0W2VdfSxudWxsKSk7cmV0dXJuIEUoYGRlZnNgLG51bGwsW0UoYGxpbmVhckdyYWRpZW50YCx7aWQ6cix4MTpgMTAwJWAseTE6YDAlYCx4MjpgMCVgLHkyOmAwJWB9LFtuXSldKX0sdT0oKT0+e2lmKG4uZGVmYXVsdClyZXR1cm4gbi5kZWZhdWx0KCk7aWYoZS50ZXh0KXJldHVybiBFKGBkaXZgLHtjbGFzczplbChgdGV4dGApfSxbZS50ZXh0XSl9O3JldHVybigpPT5FKGBkaXZgLHtjbGFzczplbCgpLHN0eWxlOmlyKGUuc2l6ZSl9LFtFKGBzdmdgLHt2aWV3Qm94OmAwIDAgJHtpLnZhbHVlfSAke2kudmFsdWV9YCxzdHlsZTpvLnZhbHVlfSxbbCgpLGMoKSxzKCldKSx1KCldKX19KSksW2FsLG9sXT1KKGByb3dgKSxzbD1TeW1ib2woYWwpLGNsPVAoe25hbWU6YWwscHJvcHM6e3RhZzpVKGBkaXZgKSx3cmFwOkIsYWxpZ246U3RyaW5nLGd1dHRlcjp7dHlwZTpbU3RyaW5nLE51bWJlcixBcnJheV0sZGVmYXVsdDowfSxqdXN0aWZ5OlN0cmluZ30sc2V0dXAoZSx7c2xvdHM6dH0pe2xldHtjaGlsZHJlbjpuLGxpbmtDaGlsZHJlbjpyfT1DbihzbCksaT1OKCgpPT57bGV0IGU9W1tdXSx0PTA7cmV0dXJuIG4uZm9yRWFjaCgobixyKT0+e3QrPU51bWJlcihuLnNwYW4pLHQ+MjQ/KGUucHVzaChbcl0pLHQtPTI0KTplW2UubGVuZ3RoLTFdLnB1c2gocil9KSxlfSk7cmV0dXJuIHIoe3NwYWNlczpOKCgpPT57bGV0IHQ9MDt0PUFycmF5LmlzQXJyYXkoZS5ndXR0ZXIpP051bWJlcihlLmd1dHRlclswXSl8fDA6TnVtYmVyKGUuZ3V0dGVyKTtsZXQgbj1bXTtyZXR1cm4gdCYmaS52YWx1ZS5mb3JFYWNoKGU9PntsZXQgcj10KihlLmxlbmd0aC0xKS9lLmxlbmd0aDtlLmZvckVhY2goKGUsaSk9PntpZihpPT09MCluLnB1c2goe3JpZ2h0OnJ9KTtlbHNle2xldCBpPXQtbltlLTFdLnJpZ2h0LGE9ci1pO24ucHVzaCh7bGVmdDppLHJpZ2h0OmF9KX19KX0pLG59KSx2ZXJ0aWNhbFNwYWNlczpOKCgpPT57bGV0e2d1dHRlcjp0fT1lLG49W107aWYoQXJyYXkuaXNBcnJheSh0KSYmdC5sZW5ndGg+MSl7bGV0IGU9TnVtYmVyKHRbMV0pfHwwO2lmKGU8PTApcmV0dXJuIG47aS52YWx1ZS5mb3JFYWNoKCh0LHIpPT57ciE9PWkudmFsdWUubGVuZ3RoLTEmJnQuZm9yRWFjaCgoKT0+e24ucHVzaCh7Ym90dG9tOmV9KX0pfSl9cmV0dXJuIG59KX0pLCgpPT57bGV0e3RhZzpuLHdyYXA6cixhbGlnbjppLGp1c3RpZnk6YX09ZTtyZXR1cm4gRShuLHtjbGFzczpvbCh7W2BhbGlnbi0ke2l9YF06aSxbYGp1c3RpZnktJHthfWBdOmEsbm93cmFwOiFyfSl9LHtkZWZhdWx0OigpPT5bdC5kZWZhdWx0Py5jYWxsKHQpXX0pfX19KSxbbGwsdWxdPUooYGNvbGApLGRsPVkoUCh7bmFtZTpsbCxwcm9wczp7dGFnOlUoYGRpdmApLHNwYW46SCgwKSxvZmZzZXQ6en0sc2V0dXAoZSx7c2xvdHM6dH0pe2xldHtwYXJlbnQ6bixpbmRleDpyfT15bihzbCksaT1OKCgpPT57aWYoIW4pcmV0dXJuO2xldHtzcGFjZXM6ZSx2ZXJ0aWNhbFNwYWNlczp0fT1uLGk9e307aWYoZSYmZS52YWx1ZSYmZS52YWx1ZVtyLnZhbHVlXSl7bGV0e2xlZnQ6dCxyaWdodDpufT1lLnZhbHVlW3IudmFsdWVdO2k9e3BhZGRpbmdMZWZ0OnQ/YCR7dH1weGA6bnVsbCxwYWRkaW5nUmlnaHQ6bj9gJHtufXB4YDpudWxsfX1sZXR7Ym90dG9tOmF9PXQudmFsdWVbci52YWx1ZV18fHt9O3JldHVybiBJKGkse21hcmdpbkJvdHRvbTphP2Ake2F9cHhgOm51bGx9KX0pO3JldHVybigpPT57bGV0e3RhZzpuLHNwYW46cixvZmZzZXQ6YX09ZTtyZXR1cm4gRShuLHtzdHlsZTppLnZhbHVlLGNsYXNzOnVsKHtbcl06cixbYG9mZnNldC0ke2F9YF06YX0pfSx7ZGVmYXVsdDooKT0+W3QuZGVmYXVsdD8uY2FsbCh0KV19KX19fSkpLFtmbCxwbF09SihgY29sbGFwc2VgKSxtbD1TeW1ib2woZmwpLGhsPVkoUCh7bmFtZTpmbCxwcm9wczp7Ym9yZGVyOkIsYWNjb3JkaW9uOkJvb2xlYW4sbW9kZWxWYWx1ZTp7dHlwZTpbU3RyaW5nLE51bWJlcixBcnJheV0sZGVmYXVsdDpgYH19LGVtaXRzOltgY2hhbmdlYCxgdXBkYXRlOm1vZGVsVmFsdWVgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldHtsaW5rQ2hpbGRyZW46cixjaGlsZHJlbjppfT1DbihtbCksYT1lPT57dChgY2hhbmdlYCxlKSx0KGB1cGRhdGU6bW9kZWxWYWx1ZWAsZSl9O3JldHVybiBYKHt0b2dnbGVBbGw6KHQ9e30pPT57aWYoZS5hY2NvcmRpb24pcmV0dXJuO3R5cGVvZiB0PT1gYm9vbGVhbmAmJih0PXtleHBhbmRlZDp0fSk7bGV0e2V4cGFuZGVkOm4sc2tpcERpc2FibGVkOnJ9PXQ7YShpLmZpbHRlcihlPT5lLmRpc2FibGVkJiZyP2UuZXhwYW5kZWQudmFsdWU6bj8/IWUuZXhwYW5kZWQudmFsdWUpLm1hcChlPT5lLml0ZW1OYW1lLnZhbHVlKSl9fSkscih7dG9nZ2xlOih0LG4pPT57bGV0e2FjY29yZGlvbjpyLG1vZGVsVmFsdWU6aX09ZTthKHI/dD09PWk/YGA6dDpuP2kuY29uY2F0KHQpOmkuZmlsdGVyKGU9PmUhPT10KSl9LGlzRXhwYW5kZWQ6dD0+e2xldHthY2NvcmRpb246bixtb2RlbFZhbHVlOnJ9PWU7cmV0dXJuIG4/cj09PXQ6ci5pbmNsdWRlcyh0KX19KSwoKT0+RShgZGl2YCx7Y2xhc3M6W3BsKCkse1tMcl06ZS5ib3JkZXJ9XX0sW24uZGVmYXVsdD8uY2FsbChuKV0pfX0pKSxbZ2wsX2xdPUooYGNvbGxhcHNlLWl0ZW1gKSx2bD1bYGljb25gLGB0aXRsZWAsYHZhbHVlYCxgbGFiZWxgLGByaWdodC1pY29uYF0seWw9WShQKHtuYW1lOmdsLHByb3BzOkkoe30sQ28se25hbWU6eixpc0xpbms6QixkaXNhYmxlZDpCb29sZWFuLHJlYWRvbmx5OkJvb2xlYW4sbGF6eVJlbmRlcjpCfSksc2V0dXAoZSx7c2xvdHM6dH0pe2xldCBpPWIoKSxhPWIoKSx7cGFyZW50Om8saW5kZXg6c309eW4obWwpO2lmKCFvKXJldHVybjtsZXQgYz1OKCgpPT5lLm5hbWU/P3MudmFsdWUpLGw9TigoKT0+by5pc0V4cGFuZGVkKGMudmFsdWUpKSx1PWIobC52YWx1ZSksZD16aSgoKT0+dS52YWx1ZXx8IWUubGF6eVJlbmRlcikscD0oKT0+e2wudmFsdWU/aS52YWx1ZSYmKGkudmFsdWUuc3R5bGUuaGVpZ2h0PWBgKTp1LnZhbHVlPSExfTtmKGwsKGUsdCk9Pnt0IT09bnVsbCYmKGUmJih1LnZhbHVlPSEwKSwoZT9GOnBuKSgoKT0+e2lmKCFhLnZhbHVlfHwhaS52YWx1ZSlyZXR1cm47bGV0e29mZnNldEhlaWdodDp0fT1hLnZhbHVlO2lmKHQpe2xldCBuPWAke3R9cHhgO2kudmFsdWUuc3R5bGUuaGVpZ2h0PWU/YDBgOm4saG4oKCk9PntpLnZhbHVlJiYoaS52YWx1ZS5zdHlsZS5oZWlnaHQ9ZT9uOmAwYCl9KX1lbHNlIHAoKX0pKX0pO2xldCBtPShlPSFsLnZhbHVlKT0+e28udG9nZ2xlKGMudmFsdWUsZSl9LGg9KCk9PnshZS5kaXNhYmxlZCYmIWUucmVhZG9ubHkmJm0oKX0sZz0oKT0+e2xldHtib3JkZXI6bixkaXNhYmxlZDppLHJlYWRvbmx5OmF9PWUsbz1SKGUsT2JqZWN0LmtleXMoQ28pKTtyZXR1cm4gYSYmKG8uaXNMaW5rPSExKSwoaXx8YSkmJihvLmNsaWNrYWJsZT0hMSksRSh3byxyKHtyb2xlOmBidXR0b25gLGNsYXNzOl9sKGB0aXRsZWAse2Rpc2FibGVkOmksZXhwYW5kZWQ6bC52YWx1ZSxib3JkZXJsZXNzOiFufSksImFyaWEtZXhwYW5kZWQiOlN0cmluZyhsLnZhbHVlKSxvbkNsaWNrOmh9LG8pLFIodCx2bCkpfSxfPWQoKCk9Pm4oRShgZGl2YCx7cmVmOmksY2xhc3M6X2woYHdyYXBwZXJgKSxvblRyYW5zaXRpb25lbmQ6cH0sW0UoYGRpdmAse3JlZjphLGNsYXNzOl9sKGBjb250ZW50YCl9LFt0LmRlZmF1bHQ/LmNhbGwodCldKV0pLFtbaXQsdS52YWx1ZV1dKSk7cmV0dXJuIFgoe3RvZ2dsZTptLGV4cGFuZGVkOmwsaXRlbU5hbWU6Y30pLCgpPT5FKGBkaXZgLHtjbGFzczpbX2woe2JvcmRlcjpzLnZhbHVlJiZlLmJvcmRlcn0pXX0sW2coKSxfKCldKX19KSksYmw9WShwaSksW3hsLFNsLENsXT1KKGBjb250YWN0LWNhcmRgKSx3bD1ZKFAoe25hbWU6eGwscHJvcHM6e3RlbDpTdHJpbmcsbmFtZTpTdHJpbmcsdHlwZTpVKGBhZGRgKSxhZGRUZXh0OlN0cmluZyxlZGl0YWJsZTpCfSxlbWl0czpbYGNsaWNrYF0sc2V0dXAoZSx7ZW1pdDp0fSl7bGV0IG49bj0+e2UuZWRpdGFibGUmJnQoYGNsaWNrYCxuKX0scj0oKT0+ZS50eXBlPT09YGFkZGA/ZS5hZGRUZXh0fHxDbChgYWRkQ29udGFjdGApOltFKGBkaXZgLG51bGwsW2Ake0NsKGBuYW1lYCl9XHVGRjFBJHtlLm5hbWV9YF0pLEUoYGRpdmAsbnVsbCxbYCR7Q2woYHRlbGApfVx1RkYxQSR7ZS50ZWx9YF0pXTtyZXR1cm4oKT0+RSh3byx7Y2VudGVyOiEwLGljb246ZS50eXBlPT09YGVkaXRgP2Bjb250YWN0YDpgYWRkLXNxdWFyZWAsY2xhc3M6U2woW2UudHlwZV0pLGJvcmRlcjohMSxpc0xpbms6ZS5lZGl0YWJsZSx0aXRsZUNsYXNzOlNsKGB0aXRsZWApLG9uQ2xpY2s6bn0se3RpdGxlOnJ9KX19KSksW1RsLEVsLERsXT1KKGBjb250YWN0LWVkaXRgKSxPbD17dGVsOmBgLG5hbWU6YGB9LGtsPVkoUCh7bmFtZTpUbCxwcm9wczp7aXNFZGl0OkJvb2xlYW4saXNTYXZpbmc6Qm9vbGVhbixpc0RlbGV0aW5nOkJvb2xlYW4sc2hvd1NldERlZmF1bHQ6Qm9vbGVhbixzZXREZWZhdWx0TGFiZWw6U3RyaW5nLGNvbnRhY3RJbmZvOnt0eXBlOk9iamVjdCxkZWZhdWx0OigpPT5JKHt9LE9sKX0sdGVsVmFsaWRhdG9yOnt0eXBlOkZ1bmN0aW9uLGRlZmF1bHQ6bm59fSxlbWl0czpbYHNhdmVgLGBkZWxldGVgLGBjaGFuZ2VEZWZhdWx0YF0sc2V0dXAoZSx7ZW1pdDp0fSl7bGV0IG49YyhJKHt9LE9sLGUuY29udGFjdEluZm8pKSxyPSgpPT57ZS5pc1NhdmluZ3x8dChgc2F2ZWAsbil9LGk9KCk9PnQoYGRlbGV0ZWAsbiksYT0oKT0+RShgZGl2YCx7Y2xhc3M6RWwoYGJ1dHRvbnNgKX0sW0UoVGkse2Jsb2NrOiEwLHJvdW5kOiEwLHR5cGU6YHByaW1hcnlgLHRleHQ6RGwoYHNhdmVgKSxjbGFzczpFbChgYnV0dG9uYCksbG9hZGluZzplLmlzU2F2aW5nLG5hdGl2ZVR5cGU6YHN1Ym1pdGB9LG51bGwpLGUuaXNFZGl0JiZFKFRpLHtibG9jazohMCxyb3VuZDohMCx0ZXh0OkRsKGBkZWxldGVgKSxjbGFzczpFbChgYnV0dG9uYCksbG9hZGluZzplLmlzRGVsZXRpbmcsb25DbGljazppfSxudWxsKV0pLG89KCk9PkUocHMse21vZGVsVmFsdWU6bi5pc0RlZmF1bHQsIm9uVXBkYXRlOm1vZGVsVmFsdWUiOmU9Pm4uaXNEZWZhdWx0PWUsb25DaGFuZ2U6ZT0+dChgY2hhbmdlRGVmYXVsdGAsZSl9LG51bGwpLHM9KCk9PntpZihlLnNob3dTZXREZWZhdWx0KXJldHVybiBFKHdvLHt0aXRsZTplLnNldERlZmF1bHRMYWJlbCxjbGFzczpFbChgc3dpdGNoLWNlbGxgKSxib3JkZXI6ITF9LHsicmlnaHQtaWNvbiI6b30pfTtyZXR1cm4gZigoKT0+ZS5jb250YWN0SW5mbyxlPT5JKG4sT2wsZSkpLCgpPT5FKERvLHtjbGFzczpFbCgpLG9uU3VibWl0OnJ9LHtkZWZhdWx0OigpPT5bRShgZGl2YCx7Y2xhc3M6RWwoYGZpZWxkc2ApfSxbRShWbyx7bW9kZWxWYWx1ZTpuLm5hbWUsIm9uVXBkYXRlOm1vZGVsVmFsdWUiOmU9Pm4ubmFtZT1lLGNsZWFyYWJsZTohMCxsYWJlbDpEbChgbmFtZWApLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTpEbChgbmFtZUVtcHR5YCl9XSxtYXhsZW5ndGg6YDMwYCxwbGFjZWhvbGRlcjpEbChgbmFtZWApfSxudWxsKSxFKFZvLHttb2RlbFZhbHVlOm4udGVsLCJvblVwZGF0ZTptb2RlbFZhbHVlIjplPT5uLnRlbD1lLGNsZWFyYWJsZTohMCx0eXBlOmB0ZWxgLGxhYmVsOkRsKGB0ZWxgKSxydWxlczpbe3ZhbGlkYXRvcjplLnRlbFZhbGlkYXRvcixtZXNzYWdlOkRsKGB0ZWxJbnZhbGlkYCl9XSxwbGFjZWhvbGRlcjpEbChgdGVsYCl9LG51bGwpXSkscygpLGEoKV19KX19KSksW0FsLGpsLE1sXT1KKGBjb250YWN0LWxpc3RgKSxObD1ZKFAoe25hbWU6QWwscHJvcHM6e2xpc3Q6QXJyYXksYWRkVGV4dDpTdHJpbmcsbW9kZWxWYWx1ZTpudWxsLGRlZmF1bHRUYWdUZXh0OlN0cmluZ30sZW1pdHM6W2BhZGRgLGBlZGl0YCxgc2VsZWN0YCxgdXBkYXRlOm1vZGVsVmFsdWVgXSxzZXR1cChlLHtlbWl0OnR9KXtsZXQgbj0obixyKT0+RSh3byx7a2V5Om4uaWQsaXNMaW5rOiEwLGNlbnRlcjohMCxjbGFzczpqbChgaXRlbWApLHRpdGxlQ2xhc3M6amwoYGl0ZW0tdGl0bGVgKSxvbkNsaWNrOigpPT57dChgdXBkYXRlOm1vZGVsVmFsdWVgLG4uaWQpLHQoYHNlbGVjdGAsbixyKX19LHtpY29uOigpPT5FKFose25hbWU6YGVkaXRgLGNsYXNzOmpsKGBlZGl0YCksb25DbGljazplPT57ZS5zdG9wUHJvcGFnYXRpb24oKSx0KGBlZGl0YCxuLHIpfX0sbnVsbCksdGl0bGU6KCk9PntsZXQgdD1bYCR7bi5uYW1lfVx1RkYwQyR7bi50ZWx9YF07cmV0dXJuIG4uaXNEZWZhdWx0JiZlLmRlZmF1bHRUYWdUZXh0JiZ0LnB1c2goRShGcyx7dHlwZTpgcHJpbWFyeWAscm91bmQ6ITAsY2xhc3M6amwoYGl0ZW0tdGFnYCl9LHtkZWZhdWx0OigpPT5bZS5kZWZhdWx0VGFnVGV4dF19KSksdH0sInJpZ2h0LWljb24iOigpPT5FKFZzLHtjbGFzczpqbChgcmFkaW9gKSxuYW1lOm4uaWQsaWNvblNpemU6MTh9LG51bGwpfSk7cmV0dXJuKCk9PkUoYGRpdmAse2NsYXNzOmpsKCl9LFtFKERzLHttb2RlbFZhbHVlOmUubW9kZWxWYWx1ZSxjbGFzczpqbChgZ3JvdXBgKX0se2RlZmF1bHQ6KCk9PltlLmxpc3QmJmUubGlzdC5tYXAobildfSksRShgZGl2YCx7Y2xhc3M6W2psKGBib3R0b21gKSxgdmFuLXNhZmUtYXJlYS1ib3R0b21gXX0sW0UoVGkse3JvdW5kOiEwLGJsb2NrOiEwLHR5cGU6YHByaW1hcnlgLGNsYXNzOmpsKGBhZGRgKSx0ZXh0OmUuYWRkVGV4dHx8TWwoYGFkZENvbnRhY3RgKSxvbkNsaWNrOigpPT50KGBhZGRgKX0sbnVsbCldKV0pfX0pKTtmdW5jdGlvbiBQbChlLHQpe2xldHtkYXlzOm59PXQse2hvdXJzOnIsbWludXRlczppLHNlY29uZHM6YSxtaWxsaXNlY29uZHM6b309dDtpZihlLmluY2x1ZGVzKGBERGApP2U9ZS5yZXBsYWNlKGBERGAsaHIobikpOnIrPW4qMjQsZS5pbmNsdWRlcyhgSEhgKT9lPWUucmVwbGFjZShgSEhgLGhyKHIpKTppKz1yKjYwLGUuaW5jbHVkZXMoYG1tYCk/ZT1lLnJlcGxhY2UoYG1tYCxocihpKSk6YSs9aSo2MCxlLmluY2x1ZGVzKGBzc2ApP2U9ZS5yZXBsYWNlKGBzc2AsaHIoYSkpOm8rPWEqMWUzLGUuaW5jbHVkZXMoYFNgKSl7bGV0IHQ9aHIobywzKTtlPWUuaW5jbHVkZXMoYFNTU2ApP2UucmVwbGFjZShgU1NTYCx0KTplLmluY2x1ZGVzKGBTU2ApP2UucmVwbGFjZShgU1NgLHQuc2xpY2UoMCwyKSk6ZS5yZXBsYWNlKGBTYCx0LmNoYXJBdCgwKSl9cmV0dXJuIGV9dmFyW0ZsLElsXT1KKGBjb3VudC1kb3duYCksTGw9WShQKHtuYW1lOkZsLHByb3BzOnt0aW1lOkgoMCksZm9ybWF0OlUoYEhIOm1tOnNzYCksYXV0b1N0YXJ0OkIsbWlsbGlzZWNvbmQ6Qm9vbGVhbn0sZW1pdHM6W2BjaGFuZ2VgLGBmaW5pc2hgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldHtzdGFydDpyLHBhdXNlOmkscmVzZXQ6YSxjdXJyZW50Om99PUFuKHt0aW1lOitlLnRpbWUsbWlsbGlzZWNvbmQ6ZS5taWxsaXNlY29uZCxvbkNoYW5nZTplPT50KGBjaGFuZ2VgLGUpLG9uRmluaXNoOigpPT50KGBmaW5pc2hgKX0pLHM9TigoKT0+UGwoZS5mb3JtYXQsby52YWx1ZSkpLGM9KCk9PnthKCtlLnRpbWUpLGUuYXV0b1N0YXJ0JiZyKCl9O3JldHVybiBmKCgpPT5lLnRpbWUsYyx7aW1tZWRpYXRlOiEwfSksWCh7c3RhcnQ6cixwYXVzZTppLHJlc2V0OmN9KSwoKT0+RShgZGl2YCx7cm9sZTpgdGltZXJgLGNsYXNzOklsKCl9LFtuLmRlZmF1bHQ/bi5kZWZhdWx0KG8udmFsdWUpOnMudmFsdWVdKX19KSk7ZnVuY3Rpb24gUmwoZSl7bGV0IHQ9bmV3IERhdGUoZSoxZTMpO3JldHVybmAke3QuZ2V0RnVsbFllYXIoKX0uJHtocih0LmdldE1vbnRoKCkrMSl9LiR7aHIodC5nZXREYXRlKCkpfWB9dmFyIHpsPWU9PihlLzEwKS50b0ZpeGVkKGUlMTA9PTA/MDoxKSxCbD1lPT4oZS8xMDApLnRvRml4ZWQoZSUxMDA9PTA/MDplJTEwPT0wPzE6MiksW1ZsLEhsLFVsXT1KKGBjb3Vwb25gKSxXbD1ZKFAoe25hbWU6VmwscHJvcHM6e2Nob3NlbjpCb29sZWFuLGNvdXBvbjp1bihPYmplY3QpLGRpc2FibGVkOkJvb2xlYW4sY3VycmVuY3k6VShgwqVgKX0sc2V0dXAoZSl7bGV0IHQ9TigoKT0+e2xldHtzdGFydEF0OnQsZW5kQXQ6bn09ZS5jb3Vwb247cmV0dXJuYCR7UmwodCl9IC0gJHtSbChuKX1gfSksbj1OKCgpPT57bGV0e2NvdXBvbjp0LGN1cnJlbmN5Om59PWU7aWYodC52YWx1ZURlc2MpcmV0dXJuW3QudmFsdWVEZXNjLEUoYHNwYW5gLG51bGwsW3QudW5pdERlc2N8fGBgXSldO2lmKHQuZGVub21pbmF0aW9ucyl7bGV0IGU9QmwodC5kZW5vbWluYXRpb25zKTtyZXR1cm5bRShgc3BhbmAsbnVsbCxbbl0pLGAgJHtlfWBdfXJldHVybiB0LmRpc2NvdW50P1VsKGBkaXNjb3VudGAsemwodC5kaXNjb3VudCkpOmBgfSkscj1OKCgpPT57bGV0IHQ9QmwoZS5jb3Vwb24ub3JpZ2luQ29uZGl0aW9ufHwwKTtyZXR1cm4gdD09PWAwYD9VbChgdW5saW1pdGVkYCk6VWwoYGNvbmRpdGlvbmAsdCl9KTtyZXR1cm4oKT0+e2xldHtjaG9zZW46aSxjb3Vwb246YSxkaXNhYmxlZDpvfT1lLHM9byYmYS5yZWFzb258fGEuZGVzY3JpcHRpb247cmV0dXJuIEUoYGRpdmAse2NsYXNzOkhsKHtkaXNhYmxlZDpvfSl9LFtFKGBkaXZgLHtjbGFzczpIbChgY29udGVudGApfSxbRShgZGl2YCx7Y2xhc3M6SGwoYGhlYWRgKX0sW0UoYGgyYCx7Y2xhc3M6SGwoYGFtb3VudGApfSxbbi52YWx1ZV0pLEUoYHBgLHtjbGFzczpIbChgY29uZGl0aW9uYCl9LFthLmNvbmRpdGlvbnx8ci52YWx1ZV0pXSksRShgZGl2YCx7Y2xhc3M6SGwoYGJvZHlgKX0sW0UoYHBgLHtjbGFzczpIbChgbmFtZWApfSxbYS5uYW1lXSksRShgcGAse2NsYXNzOkhsKGB2YWxpZGApfSxbdC52YWx1ZV0pLCFvJiZFKFdzLHtjbGFzczpIbChgY29ybmVyYCksbW9kZWxWYWx1ZTppfSxudWxsKV0pXSkscyYmRShgcGAse2NsYXNzOkhsKGBkZXNjcmlwdGlvbmApfSxbc10pXSl9fX0pKSxbR2wsS2wscWxdPUooYGNvdXBvbi1jZWxsYCksSmw9e3RpdGxlOlN0cmluZyxib3JkZXI6QixlZGl0YWJsZTpCLGNvdXBvbnM6VigpLGN1cnJlbmN5OlUoYMKlYCksY2hvc2VuQ291cG9uOnt0eXBlOltOdW1iZXIsQXJyYXldLGRlZmF1bHQ6LTF9fSxZbD1lPT57bGV0e3ZhbHVlOnQsZGVub21pbmF0aW9uczpufT1lO3JldHVybiBMKHQpP3Q6TChuKT9uOjB9O2Z1bmN0aW9uIFhsKHtjb3Vwb25zOmUsY2hvc2VuQ291cG9uOnQsY3VycmVuY3k6bn0pe2xldCByPTAsaT0hMTtyZXR1cm4oQXJyYXkuaXNBcnJheSh0KT90Olt0XSkuZm9yRWFjaCh0PT57bGV0IG49ZVsrdF07biYmKGk9ITAscis9WWwobikpfSksaT9gLSR7bn0gJHsoci8xMDApLnRvRml4ZWQoMil9YDplLmxlbmd0aD09PTA/cWwoYG5vQ291cG9uYCk6cWwoYGNvdW50YCxlLmxlbmd0aCl9dmFyIFpsPVkoUCh7bmFtZTpHbCxwcm9wczpKbCxzZXR1cChlKXtyZXR1cm4oKT0+e2xldCB0PUFycmF5LmlzQXJyYXkoZS5jaG9zZW5Db3Vwb24pP2UuY2hvc2VuQ291cG9uLmxlbmd0aDplLmNvdXBvbnNbK2UuY2hvc2VuQ291cG9uXTtyZXR1cm4gRSh3byx7Y2xhc3M6S2woKSx2YWx1ZTpYbChlKSx0aXRsZTplLnRpdGxlfHxxbChgdGl0bGVgKSxib3JkZXI6ZS5ib3JkZXIsaXNMaW5rOmUuZWRpdGFibGUsdmFsdWVDbGFzczpLbChgdmFsdWVgLHtzZWxlY3RlZDp0fSl9LG51bGwpfX19KSksW1FsLCRsXT1KKGBlbXB0eWApLGV1PVkoUCh7bmFtZTpRbCxwcm9wczp7aW1hZ2U6VShgZGVmYXVsdGApLGltYWdlU2l6ZTpbTnVtYmVyLFN0cmluZyxBcnJheV0sZGVzY3JpcHRpb246U3RyaW5nfSxzZXR1cChlLHtzbG90czp0fSl7bGV0IG49KCk9PntsZXQgbj10LmRlc2NyaXB0aW9uP3QuZGVzY3JpcHRpb24oKTplLmRlc2NyaXB0aW9uO2lmKG4pcmV0dXJuIEUoYHBgLHtjbGFzczokbChgZGVzY3JpcHRpb25gKX0sW25dKX0scj0oKT0+e2lmKHQuZGVmYXVsdClyZXR1cm4gRShgZGl2YCx7Y2xhc3M6JGwoYGJvdHRvbWApfSxbdC5kZWZhdWx0KCldKX0saT1FYSgpLGE9ZT0+YCR7aX0tJHtlfWAsbz1lPT5gdXJsKCMke2EoZSl9KWAscz0oZSx0LG4pPT5FKGBzdG9wYCx7InN0b3AtY29sb3IiOmUsb2Zmc2V0OmAke3R9JWAsInN0b3Atb3BhY2l0eSI6bn0sbnVsbCksYz0oZSx0KT0+W3MoZSwwKSxzKHQsMTAwKV0sbD1lPT5bRShgZGVmc2AsbnVsbCxbRShgcmFkaWFsR3JhZGllbnRgLHtpZDphKGUpLGN4OmA1MCVgLGN5OmA1NCVgLGZ4OmA1MCVgLGZ5OmA1NCVgLHI6YDI5NyVgLGdyYWRpZW50VHJhbnNmb3JtOmBtYXRyaXgoLS4xNiAwIDAgLS4zMyAuNTggLjcyKWAsImRhdGEtYWxsb3ctbWlzbWF0Y2giOmBhdHRyaWJ1dGVgfSxbcyhgI0VCRURGMGAsMCkscyhgI0YyRjNGNWAsMTAwLC4zKV0pXSksRShgZWxsaXBzZWAse2ZpbGw6byhlKSxvcGFjaXR5OmAuOGAsY3g6YDgwYCxjeTpgMTQwYCxyeDpgNDZgLHJ5OmA4YCwiZGF0YS1hbGxvdy1taXNtYXRjaCI6YGF0dHJpYnV0ZWB9LG51bGwpXSx1PSgpPT5bRShgZGVmc2AsbnVsbCxbRShgbGluZWFyR3JhZGllbnRgLHtpZDphKGBhYCkseDE6YDY0JWAseTE6YDEwMCVgLHgyOmA2NCVgLCJkYXRhLWFsbG93LW1pc21hdGNoIjpgYXR0cmlidXRlYH0sW3MoYCNGRkZgLDAsLjUpLHMoYCNGMkYzRjVgLDEwMCldKV0pLEUoYGdgLHtvcGFjaXR5OmAuOGAsImRhdGEtYWxsb3ctbWlzbWF0Y2giOmBjaGlsZHJlbmB9LFtFKGBwYXRoYCx7ZDpgTTM2IDEzMVY1M0gxNnYyMEgydjU4aDM0emAsZmlsbDpvKGBhYCl9LG51bGwpLEUoYHBhdGhgLHtkOmBNMTIzIDE1aDIydjE0aDl2NzdoLTMxVjE1emAsZmlsbDpvKGBhYCl9LG51bGwpXSldLGQ9KCk9PltFKGBkZWZzYCxudWxsLFtFKGBsaW5lYXJHcmFkaWVudGAse2lkOmEoYGJgKSx4MTpgNjQlYCx5MTpgOTclYCx4MjpgNjQlYCx5MjpgMCVgLCJkYXRhLWFsbG93LW1pc21hdGNoIjpgYXR0cmlidXRlYH0sW3MoYCNGMkYzRjVgLDAsLjMpLHMoYCNGMkYzRjVgLDEwMCldKV0pLEUoYGdgLHtvcGFjaXR5OmAuOGAsImRhdGEtYWxsb3ctbWlzbWF0Y2giOmBjaGlsZHJlbmB9LFtFKGBwYXRoYCx7ZDpgTTg3IDZjMyAwIDcgMyA4IDZhOCA4IDAgMSAxLTEgMTZIODBhNyA3IDAgMCAxLTgtNmMwLTQgMy03IDYtNyAwLTUgNC05IDktOVpgLGZpbGw6byhgYmApfSxudWxsKSxFKGBwYXRoYCx7ZDpgTTE5IDIzYzIgMCAzIDEgNCAzIDIgMCA0IDIgNCA0YTQgNCAwIDAgMS00IDN2MWgtN3YtMWwtMSAxYy0yIDAtMy0yLTMtNCAwLTEgMS0zIDMtMyAwLTIgMi00IDQtNFpgLGZpbGw6byhgYmApfSxudWxsKV0pXSxmPSgpPT5FKGBzdmdgLHt2aWV3Qm94OmAwIDAgMTYwIDE2MGB9LFtFKGBkZWZzYCx7ImRhdGEtYWxsb3ctbWlzbWF0Y2giOmBjaGlsZHJlbmB9LFtFKGBsaW5lYXJHcmFkaWVudGAse2lkOmEoMSkseDE6YDY0JWAseTE6YDEwMCVgLHgyOmA2NCVgfSxbcyhgI0ZGRmAsMCwuNSkscyhgI0YyRjNGNWAsMTAwKV0pLEUoYGxpbmVhckdyYWRpZW50YCx7aWQ6YSgyKSx4MTpgNTAlYCx4MjpgNTAlYCx5MjpgODQlYH0sW3MoYCNFQkVERjBgLDApLHMoYCNEQ0RFRTBgLDEwMCwwKV0pLEUoYGxpbmVhckdyYWRpZW50YCx7aWQ6YSgzKSx4MTpgMTAwJWAseDI6YDEwMCVgLHkyOmAxMDAlYH0sW2MoYCNFQUVERjBgLGAjRENERUUwYCldKSxFKGByYWRpYWxHcmFkaWVudGAse2lkOmEoNCksY3g6YDUwJWAsY3k6YDAlYCxmeDpgNTAlYCxmeTpgMCVgLHI6YDEwMCVgLGdyYWRpZW50VHJhbnNmb3JtOmBtYXRyaXgoMCAxIC0uNTQgMCAuNSAtLjUpYH0sW3MoYCNFQkVERjBgLDApLHMoYCNGRkZgLDEwMCwwKV0pXSksRShgZ2Ase2ZpbGw6YG5vbmVgfSxbdSgpLEUoYHBhdGhgLHtmaWxsOm8oNCksZDpgTTAgMTM5aDE2MHYyMUgwemAsImRhdGEtYWxsb3ctbWlzbWF0Y2giOmBhdHRyaWJ1dGVgfSxudWxsKSxFKGBwYXRoYCx7ZDpgTTgwIDU0YTcgNyAwIDAgMSAzIDEzdjI3bC0yIDJoLTJhMiAyIDAgMCAxLTItMlY2N2E3IDcgMCAwIDEgMy0xM3pgLGZpbGw6bygyKSwiZGF0YS1hbGxvdy1taXNtYXRjaCI6YGF0dHJpYnV0ZWB9LG51bGwpLEUoYGdgLHtvcGFjaXR5OmAuNmAsInN0cm9rZS1saW5lY2FwIjpgcm91bmRgLCJzdHJva2Utd2lkdGgiOmA3YCwiZGF0YS1hbGxvdy1taXNtYXRjaCI6YGNoaWxkcmVuYH0sW0UoYHBhdGhgLHtkOmBNNjQgNDdhMTkgMTkgMCAwIDAtNSAxM2MwIDUgMiAxMCA1IDEzYCxzdHJva2U6bygzKX0sbnVsbCksRShgcGF0aGAse2Q6YE01MyAzNmEzNCAzNCAwIDAgMCAwIDQ4YCxzdHJva2U6bygzKX0sbnVsbCksRShgcGF0aGAse2Q6YE05NSA3M2ExOSAxOSAwIDAgMCA2LTEzYzAtNS0yLTktNi0xM2Asc3Ryb2tlOm8oMyl9LG51bGwpLEUoYHBhdGhgLHtkOmBNMTA2IDg0YTM0IDM0IDAgMCAwIDAtNDhgLHN0cm9rZTpvKDMpfSxudWxsKV0pLEUoYGdgLHt0cmFuc2Zvcm06YHRyYW5zbGF0ZSgzMSAxMDUpYH0sW0UoYHJlY3RgLHtmaWxsOmAjRUJFREYwYCx3aWR0aDpgOThgLGhlaWdodDpgMzRgLHJ4OmAyYH0sbnVsbCksRShgcmVjdGAse2ZpbGw6YCNGRkZgLHg6YDlgLHk6YDhgLHdpZHRoOmA4MGAsaGVpZ2h0OmAxOGAscng6YDEuMWB9LG51bGwpLEUoYHJlY3RgLHtmaWxsOmAjRUJFREYwYCx4OmAxNWAseTpgMTJgLHdpZHRoOmAxOGAsaGVpZ2h0OmA2YCxyeDpgMS4xYH0sbnVsbCldKV0pXSkscD0oKT0+RShgc3ZnYCx7dmlld0JveDpgMCAwIDE2MCAxNjBgfSxbRShgZGVmc2AseyJkYXRhLWFsbG93LW1pc21hdGNoIjpgY2hpbGRyZW5gfSxbRShgbGluZWFyR3JhZGllbnRgLHt4MTpgNTAlYCx4MjpgNTAlYCx5MjpgMTAwJWAsaWQ6YSg1KX0sW2MoYCNGMkYzRjVgLGAjRENERUUwYCldKSxFKGBsaW5lYXJHcmFkaWVudGAse3gxOmA5NSVgLHkxOmA0OCVgLHgyOmA1LjUlYCx5MjpgNTElYCxpZDphKDYpfSxbYyhgI0VBRURGMWAsYCNEQ0RFRTBgKV0pLEUoYGxpbmVhckdyYWRpZW50YCx7eTE6YDQ1JWAseDI6YDEwMCVgLHkyOmA1NCVgLGlkOmEoNyl9LFtjKGAjRUFFREYxYCxgI0RDREVFMGApXSldKSx1KCksZCgpLEUoYGdgLHt0cmFuc2Zvcm06YHRyYW5zbGF0ZSgzNiA1MClgLGZpbGw6YG5vbmVgfSxbRShgZ2Ase3RyYW5zZm9ybTpgdHJhbnNsYXRlKDgpYH0sW0UoYHJlY3RgLHtmaWxsOmAjRUJFREYwYCxvcGFjaXR5OmAuNmAseDpgMzhgLHk6YDEzYCx3aWR0aDpgMzZgLGhlaWdodDpgNTNgLHJ4OmAyYH0sbnVsbCksRShgcmVjdGAse2ZpbGw6byg1KSx3aWR0aDpgNjRgLGhlaWdodDpgNjZgLHJ4OmAyYCwiZGF0YS1hbGxvdy1taXNtYXRjaCI6YGF0dHJpYnV0ZWB9LG51bGwpLEUoYHJlY3RgLHtmaWxsOmAjRkZGYCx4OmA2YCx5OmA2YCx3aWR0aDpgNTJgLGhlaWdodDpgNTVgLHJ4OmAxYH0sbnVsbCksRShgZ2Ase3RyYW5zZm9ybTpgdHJhbnNsYXRlKDE1IDE3KWAsZmlsbDpvKDYpLCJkYXRhLWFsbG93LW1pc21hdGNoIjpgYXR0cmlidXRlYH0sW0UoYHJlY3RgLHt3aWR0aDpgMzRgLGhlaWdodDpgNmAscng6YDFgfSxudWxsKSxFKGBwYXRoYCx7ZDpgTTAgMTRoMzR2NkgwemB9LG51bGwpLEUoYHJlY3RgLHt5OmAyOGAsd2lkdGg6YDM0YCxoZWlnaHQ6YDZgLHJ4OmAxYH0sbnVsbCldKV0pLEUoYHJlY3RgLHtmaWxsOm8oNykseTpgNjFgLHdpZHRoOmA4OGAsaGVpZ2h0OmAyOGAscng6YDFgLCJkYXRhLWFsbG93LW1pc21hdGNoIjpgYXR0cmlidXRlYH0sbnVsbCksRShgcmVjdGAse2ZpbGw6YCNGN0Y4RkFgLHg6YDI5YCx5OmA3MmAsd2lkdGg6YDMwYCxoZWlnaHQ6YDZgLHJ4OmAxYH0sbnVsbCldKV0pLG09KCk9PkUoYHN2Z2Ase3ZpZXdCb3g6YDAgMCAxNjAgMTYwYH0sW0UoYGRlZnNgLG51bGwsW0UoYGxpbmVhckdyYWRpZW50YCx7eDE6YDUwJWAseDI6YDUwJWAseTI6YDEwMCVgLGlkOmEoOCksImRhdGEtYWxsb3ctbWlzbWF0Y2giOmBhdHRyaWJ1dGVgfSxbYyhgI0VBRURGMWAsYCNEQ0RFRTBgKV0pXSksdSgpLGQoKSxsKGBjYCksRShgcGF0aGAse2Q6YG01OSA2MCAyMSAyMSAyMS0yMWgzbDkgOXYzTDkyIDkzbDIxIDIxdjNsLTkgOWgtM2wtMjEtMjEtMjEgMjFoLTNsLTktOXYtM2wyMS0yMS0yMS0yMXYtM2w5LTloM1pgLGZpbGw6byg4KSwiZGF0YS1hbGxvdy1taXNtYXRjaCI6YGF0dHJpYnV0ZWB9LG51bGwpXSksaD0oKT0+RShgc3ZnYCx7dmlld0JveDpgMCAwIDE2MCAxNjBgfSxbRShgZGVmc2AseyJkYXRhLWFsbG93LW1pc21hdGNoIjpgY2hpbGRyZW5gfSxbRShgbGluZWFyR3JhZGllbnRgLHt4MTpgNTAlYCx5MTpgMTAwJWAseDI6YDUwJWAsaWQ6YSg5KX0sW2MoYCNFRUVgLGAjRDhEOEQ4YCldKSxFKGBsaW5lYXJHcmFkaWVudGAse3gxOmAxMDAlYCx5MTpgNTAlYCx5MjpgNTAlYCxpZDphKDEwKX0sW2MoYCNGMkYzRjVgLGAjRENERUUwYCldKSxFKGBsaW5lYXJHcmFkaWVudGAse3gxOmA1MCVgLHgyOmA1MCVgLHkyOmAxMDAlYCxpZDphKDExKX0sW2MoYCNGMkYzRjVgLGAjRENERUUwYCldKSxFKGBsaW5lYXJHcmFkaWVudGAse3gxOmA1MCVgLHgyOmA1MCVgLHkyOmAxMDAlYCxpZDphKDEyKX0sW2MoYCNGRkZgLGAjRjdGOEZBYCldKV0pLHUoKSxkKCksbChgZGApLEUoYGdgLHt0cmFuc2Zvcm06YHJvdGF0ZSgtNDUgMTEzIC00KWAsZmlsbDpgbm9uZWAsImRhdGEtYWxsb3ctbWlzbWF0Y2giOmBjaGlsZHJlbmB9LFtFKGByZWN0YCx7ZmlsbDpvKDkpLHg6YDI0YCx5OmA1Mi44YCx3aWR0aDpgNS44YCxoZWlnaHQ6YDE5YCxyeDpgMWB9LG51bGwpLEUoYHJlY3RgLHtmaWxsOm8oMTApLHg6YDIyLjFgLHk6YDY3LjNgLHdpZHRoOmA5LjlgLGhlaWdodDpgMjhgLHJ4OmAxYH0sbnVsbCksRShgY2lyY2xlYCx7c3Ryb2tlOm8oMTEpLCJzdHJva2Utd2lkdGgiOmA4YCxjeDpgMjdgLGN5OmAyN2AscjpgMjdgfSxudWxsKSxFKGBjaXJjbGVgLHtmaWxsOm8oMTIpLGN4OmAyN2AsY3k6YDI3YCxyOmAxNmB9LG51bGwpLEUoYHBhdGhgLHtkOmBNMzcgN2MtOCAwLTE1IDUtMTYgMTJgLHN0cm9rZTpvKDExKSwic3Ryb2tlLXdpZHRoIjpgM2Asb3BhY2l0eTpgLjVgLCJzdHJva2UtbGluZWNhcCI6YHJvdW5kYCx0cmFuc2Zvcm06YHJvdGF0ZSg0NSAyOSAxMylgfSxudWxsKV0pXSksZz0oKT0+e2lmKHQuaW1hZ2UpcmV0dXJuIHQuaW1hZ2UoKTtsZXQgbj17ZXJyb3I6bSxzZWFyY2g6aCxuZXR3b3JrOmYsZGVmYXVsdDpwfTtyZXR1cm4gbltlLmltYWdlXT8uY2FsbChuKXx8RShgaW1nYCx7c3JjOmUuaW1hZ2V9LG51bGwpfTtyZXR1cm4oKT0+RShgZGl2YCx7Y2xhc3M6JGwoKX0sW0UoYGRpdmAse2NsYXNzOiRsKGBpbWFnZWApLHN0eWxlOmlyKGUuaW1hZ2VTaXplKX0sW2coKV0pLG4oKSxyKCldKX19KSksW3R1LG51LHJ1XT1KKGBjb3Vwb24tbGlzdGApLGl1PVkoUCh7bmFtZTp0dSxwcm9wczp7Y29kZTpVKGBgKSxjb3Vwb25zOlYoKSxjdXJyZW5jeTpVKGDCpWApLHNob3dDb3VudDpCLGVtcHR5SW1hZ2U6U3RyaW5nLGVuYWJsZWRUaXRsZTpTdHJpbmcsZGlzYWJsZWRUaXRsZTpTdHJpbmcsZGlzYWJsZWRDb3Vwb25zOlYoKSxzaG93RXhjaGFuZ2VCYXI6QixzaG93Q2xvc2VCdXR0b246QixjbG9zZUJ1dHRvblRleHQ6U3RyaW5nLGlucHV0UGxhY2Vob2xkZXI6U3RyaW5nLGV4Y2hhbmdlTWluTGVuZ3RoOmRuKDEpLGV4Y2hhbmdlQnV0dG9uVGV4dDpTdHJpbmcsZGlzcGxheWVkQ291cG9uSW5kZXg6ZG4oLTEpLGV4Y2hhbmdlQnV0dG9uTG9hZGluZzpCb29sZWFuLGV4Y2hhbmdlQnV0dG9uRGlzYWJsZWQ6Qm9vbGVhbixjaG9zZW5Db3Vwb246e3R5cGU6W051bWJlcixBcnJheV0sZGVmYXVsdDotMX19LGVtaXRzOltgY2hhbmdlYCxgZXhjaGFuZ2VgLGB1cGRhdGU6Y29kZWBdLHNldHVwKGUse2VtaXQ6dCxzbG90czpyfSl7bGV0W2ksYV09RGEoKSxvPWIoKSxzPWIoKSxjPWIoMCksbD1iKDApLHU9YihlLmNvZGUpLGQ9TigoKT0+IWUuZXhjaGFuZ2VCdXR0b25Mb2FkaW5nJiYoZS5leGNoYW5nZUJ1dHRvbkRpc2FibGVkfHwhdS52YWx1ZXx8dS52YWx1ZS5sZW5ndGg8ZS5leGNoYW5nZU1pbkxlbmd0aCkpLHA9KCk9PntsZXQgZT1XKG8pLmhlaWdodCx0PVcocykuaGVpZ2h0KzQ0O2wudmFsdWU9KGU+dD9lOnRyLnZhbHVlKS10fSxtPSgpPT57dChgZXhjaGFuZ2VgLHUudmFsdWUpLGUuY29kZXx8KHUudmFsdWU9YGApfSxoPWU9PntGKCgpPT5pLnZhbHVlW2VdPy5zY3JvbGxJbnRvVmlldygpKX0sZz0oKT0+RShldSx7aW1hZ2U6ZS5lbXB0eUltYWdlfSx7ZGVmYXVsdDooKT0+W0UoYHBgLHtjbGFzczpudShgZW1wdHktdGlwYCl9LFtydShgbm9Db3Vwb25gKV0pXX0pLF89KCk9PntpZihlLnNob3dFeGNoYW5nZUJhcilyZXR1cm4gRShgZGl2YCx7cmVmOnMsY2xhc3M6bnUoYGV4Y2hhbmdlLWJhcmApfSxbRShWbyx7bW9kZWxWYWx1ZTp1LnZhbHVlLCJvblVwZGF0ZTptb2RlbFZhbHVlIjplPT51LnZhbHVlPWUsY2xlYXJhYmxlOiEwLGJvcmRlcjohMSxjbGFzczpudShgZmllbGRgKSxwbGFjZWhvbGRlcjplLmlucHV0UGxhY2Vob2xkZXJ8fHJ1KGBwbGFjZWhvbGRlcmApLG1heGxlbmd0aDpgMjBgfSxudWxsKSxFKFRpLHtwbGFpbjohMCx0eXBlOmBwcmltYXJ5YCxjbGFzczpudShgZXhjaGFuZ2VgKSx0ZXh0OmUuZXhjaGFuZ2VCdXR0b25UZXh0fHxydShgZXhjaGFuZ2VgKSxsb2FkaW5nOmUuZXhjaGFuZ2VCdXR0b25Mb2FkaW5nLGRpc2FibGVkOmQudmFsdWUsb25DbGljazptfSxudWxsKV0pfSx2PSgpPT57bGV0e2NvdXBvbnM6bixjaG9zZW5Db3Vwb246aX09ZSxvPWUuc2hvd0NvdW50P2AgKCR7bi5sZW5ndGh9KWA6YGAscz0oZS5lbmFibGVkVGl0bGV8fHJ1KGBlbmFibGVgKSkrbyxjPShlPVtdLHQ9MCk9PmUuaW5jbHVkZXModCk/ZS5maWx0ZXIoZT0+ZSE9PXQpOlsuLi5lLHRdO3JldHVybiBFKHJvLHt0aXRsZTpzfSx7ZGVmYXVsdDooKT0+W0UoYGRpdmAse2NsYXNzOm51KGBsaXN0YCx7IndpdGgtYm90dG9tIjplLnNob3dDbG9zZUJ1dHRvbn0pLHN0eWxlOntoZWlnaHQ6YCR7bC52YWx1ZX1weGB9fSxbbi5tYXAoKG4scik9PkUoV2wse2tleTpuLmlkLHJlZjphKHIpLGNvdXBvbjpuLGNob3NlbjpBcnJheS5pc0FycmF5KGkpP2kuaW5jbHVkZXMocik6cj09PWksY3VycmVuY3k6ZS5jdXJyZW5jeSxvbkNsaWNrOigpPT50KGBjaGFuZ2VgLEFycmF5LmlzQXJyYXkoaSk/YyhpLHIpOnIpfSxudWxsKSksIW4ubGVuZ3RoJiZnKCkscltgbGlzdC1mb290ZXJgXT8uY2FsbChyKV0pXX0pfSx5PSgpPT57bGV0e2Rpc2FibGVkQ291cG9uczp0fT1lLG49ZS5zaG93Q291bnQ/YCAoJHt0Lmxlbmd0aH0pYDpgYDtyZXR1cm4gRShybyx7dGl0bGU6KGUuZGlzYWJsZWRUaXRsZXx8cnUoYGRpc2FibGVkYCkpK259LHtkZWZhdWx0OigpPT5bRShgZGl2YCx7Y2xhc3M6bnUoYGxpc3RgLHsid2l0aC1ib3R0b20iOmUuc2hvd0Nsb3NlQnV0dG9ufSksc3R5bGU6e2hlaWdodDpgJHtsLnZhbHVlfXB4YH19LFt0Lm1hcCh0PT5FKFdsLHtkaXNhYmxlZDohMCxrZXk6dC5pZCxjb3Vwb246dCxjdXJyZW5jeTplLmN1cnJlbmN5fSxudWxsKSksIXQubGVuZ3RoJiZnKCkscltgZGlzYWJsZWQtbGlzdC1mb290ZXJgXT8uY2FsbChyKV0pXX0pfTtyZXR1cm4gZigoKT0+ZS5jb2RlLGU9Pnt1LnZhbHVlPWV9KSxmKHRyLHApLGYodSxlPT50KGB1cGRhdGU6Y29kZWAsZSkpLGYoKCk9PmUuZGlzcGxheWVkQ291cG9uSW5kZXgsaCksTSgoKT0+e3AoKSxoKGUuZGlzcGxheWVkQ291cG9uSW5kZXgpfSksKCk9PkUoYGRpdmAse3JlZjpvLGNsYXNzOm51KCl9LFtfKCksRShpbyx7YWN0aXZlOmMudmFsdWUsIm9uVXBkYXRlOmFjdGl2ZSI6ZT0+Yy52YWx1ZT1lLGNsYXNzOm51KGB0YWJgKX0se2RlZmF1bHQ6KCk9Plt2KCkseSgpXX0pLEUoYGRpdmAse2NsYXNzOm51KGBib3R0b21gKX0sW3JbYGxpc3QtYnV0dG9uYF0/cltgbGlzdC1idXR0b25gXSgpOm4oRShUaSx7cm91bmQ6ITAsYmxvY2s6ITAsdHlwZTpgcHJpbWFyeWAsY2xhc3M6bnUoYGNsb3NlYCksdGV4dDplLmNsb3NlQnV0dG9uVGV4dHx8cnUoYGNsb3NlYCksb25DbGljazooKT0+dChgY2hhbmdlYCxBcnJheS5pc0FycmF5KGUuY2hvc2VuQ291cG9uKT9bXTotMSl9LG51bGwpLFtbaXQsZS5zaG93Q2xvc2VCdXR0b25dXSldKV0pfX0pKSxhdT1uZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksW291XT1KKGBkYXRlLXBpY2tlcmApLHN1PVkoUCh7bmFtZTpvdSxwcm9wczpJKHt9LERjLHtjb2x1bW5zVHlwZTp7dHlwZTpBcnJheSxkZWZhdWx0OigpPT5bYHllYXJgLGBtb250aGAsYGRheWBdfSxtaW5EYXRlOnt0eXBlOkRhdGUsZGVmYXVsdDooKT0+bmV3IERhdGUoYXUtMTAsMCwxKSx2YWxpZGF0b3I6dG59LG1heERhdGU6e3R5cGU6RGF0ZSxkZWZhdWx0OigpPT5uZXcgRGF0ZShhdSsxMCwxMSwzMSksdmFsaWRhdG9yOnRufX0pLGVtaXRzOltgY29uZmlybWAsYGNhbmNlbGAsYGNoYW5nZWAsYHVwZGF0ZTptb2RlbFZhbHVlYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXQgaT1iKGUubW9kZWxWYWx1ZSksYT1iKCExKSxvPWIoKSxzPU4oKCk9PmEudmFsdWU/ZS5tb2RlbFZhbHVlOmkudmFsdWUpLGM9dD0+dD09PWUubWluRGF0ZS5nZXRGdWxsWWVhcigpLGw9dD0+dD09PWUubWF4RGF0ZS5nZXRGdWxsWWVhcigpLHU9dD0+dD09PWUubWluRGF0ZS5nZXRNb250aCgpKzEsZD10PT50PT09ZS5tYXhEYXRlLmdldE1vbnRoKCkrMSxwPXQ9PntsZXR7bWluRGF0ZTpuLGNvbHVtbnNUeXBlOnJ9PWUsaT1yLmluZGV4T2YodCksYT1zLnZhbHVlW2ldO2lmKGEpcmV0dXJuK2E7c3dpdGNoKHQpe2Nhc2VgeWVhcmA6cmV0dXJuIG4uZ2V0RnVsbFllYXIoKTtjYXNlYG1vbnRoYDpyZXR1cm4gbi5nZXRNb250aCgpKzE7Y2FzZWBkYXlgOnJldHVybiBuLmdldERhdGUoKX19LG09KCk9PmpjKGUubWluRGF0ZS5nZXRGdWxsWWVhcigpLGUubWF4RGF0ZS5nZXRGdWxsWWVhcigpLGB5ZWFyYCxlLmZvcm1hdHRlcixlLmZpbHRlcixzLnZhbHVlKSxoPSgpPT57bGV0IHQ9cChgeWVhcmApO3JldHVybiBqYyhjKHQpP2UubWluRGF0ZS5nZXRNb250aCgpKzE6MSxsKHQpP2UubWF4RGF0ZS5nZXRNb250aCgpKzE6MTIsYG1vbnRoYCxlLmZvcm1hdHRlcixlLmZpbHRlcixzLnZhbHVlKX0sZz0oKT0+e2xldCB0PXAoYHllYXJgKSxuPXAoYG1vbnRoYCk7cmV0dXJuIGpjKGModCkmJnUobik/ZS5taW5EYXRlLmdldERhdGUoKToxLGwodCkmJmQobik/ZS5tYXhEYXRlLmdldERhdGUoKTpBYyh0LG4pLGBkYXlgLGUuZm9ybWF0dGVyLGUuZmlsdGVyLHMudmFsdWUpfSxfPSgpPT5vLnZhbHVlPy5jb25maXJtKCksdj0oKT0+aS52YWx1ZSx5PU4oKCk9PmUuY29sdW1uc1R5cGUubWFwKGU9Pntzd2l0Y2goZSl7Y2FzZWB5ZWFyYDpyZXR1cm4gbSgpO2Nhc2VgbW9udGhgOnJldHVybiBoKCk7Y2FzZWBkYXlgOnJldHVybiBnKCk7ZGVmYXVsdDpyZXR1cm5bXX19KSk7ZihpLG49PntzbihuLGUubW9kZWxWYWx1ZSl8fHQoYHVwZGF0ZTptb2RlbFZhbHVlYCxuKX0pLGYoKCk9PmUubW9kZWxWYWx1ZSwoZSx0KT0+e2EudmFsdWU9c24odCxpLnZhbHVlKSxlPU1jKGUseS52YWx1ZSksc24oZSxpLnZhbHVlKXx8KGkudmFsdWU9ZSksYS52YWx1ZT0hMX0se2ltbWVkaWF0ZTohMH0pO2xldCB4PSguLi5lKT0+dChgY2hhbmdlYCwuLi5lKSxTPSguLi5lKT0+dChgY2FuY2VsYCwuLi5lKSxDPSguLi5lKT0+dChgY29uZmlybWAsLi4uZSk7cmV0dXJuIFgoe2NvbmZpcm06XyxnZXRTZWxlY3RlZERhdGU6dn0pLCgpPT5FKF9vLHIoe3JlZjpvLG1vZGVsVmFsdWU6aS52YWx1ZSwib25VcGRhdGU6bW9kZWxWYWx1ZSI6ZT0+aS52YWx1ZT1lLGNvbHVtbnM6eS52YWx1ZSxvbkNoYW5nZTp4LG9uQ2FuY2VsOlMsb25Db25maXJtOkN9LFIoZSxPYykpLG4pfX0pKSxbY3UsbHUsdXVdPUooYGRpYWxvZ2ApLGR1PUkoe30sTWkse3RpdGxlOlN0cmluZyx0aGVtZTpTdHJpbmcsd2lkdGg6eixtZXNzYWdlOltTdHJpbmcsRnVuY3Rpb25dLGNhbGxiYWNrOkZ1bmN0aW9uLGFsbG93SHRtbDpCb29sZWFuLGNsYXNzTmFtZTpudWxsLHRyYW5zaXRpb246VShgdmFuLWRpYWxvZy1ib3VuY2VgKSxtZXNzYWdlQWxpZ246U3RyaW5nLGNsb3NlT25Qb3BzdGF0ZTpCLHNob3dDYW5jZWxCdXR0b246Qm9vbGVhbixjYW5jZWxCdXR0b25UZXh0OlN0cmluZyxjYW5jZWxCdXR0b25Db2xvcjpTdHJpbmcsY2FuY2VsQnV0dG9uRGlzYWJsZWQ6Qm9vbGVhbixjb25maXJtQnV0dG9uVGV4dDpTdHJpbmcsY29uZmlybUJ1dHRvbkNvbG9yOlN0cmluZyxjb25maXJtQnV0dG9uRGlzYWJsZWQ6Qm9vbGVhbixzaG93Q29uZmlybUJ1dHRvbjpCLGNsb3NlT25DbGlja092ZXJsYXk6Qm9vbGVhbixrZXlib2FyZEVuYWJsZWQ6QixkZXN0cm95T25DbG9zZTpCb29sZWFufSksZnU9Wy4uLk5pLGB0cmFuc2l0aW9uYCxgY2xvc2VPblBvcHN0YXRlYCxgZGVzdHJveU9uQ2xvc2VgXSxwdT1QKHtuYW1lOmN1LHByb3BzOmR1LGVtaXRzOltgY29uZmlybWAsYGNhbmNlbGAsYGtleWRvd25gLGB1cGRhdGU6c2hvd2BdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7bGV0IGk9YigpLGE9Yyh7Y29uZmlybTohMSxjYW5jZWw6ITF9KSxvPWU9PnQoYHVwZGF0ZTpzaG93YCxlKSxzPXQ9Pnt2YXIgbjtvKCExKSwobj1lLmNhbGxiYWNrKT09bnVsbHx8bi5jYWxsKGUsdCl9LGw9bj0+KCk9PntlLnNob3cmJih0KG4pLGUuYmVmb3JlQ2xvc2U/KGFbbl09ITAsVnIoZS5iZWZvcmVDbG9zZSx7YXJnczpbbl0sZG9uZSgpe3MobiksYVtuXT0hMX0sY2FuY2VsZWQoKXthW25dPSExfX0pKTpzKG4pKX0sdT1sKGBjYW5jZWxgKSxkPWwoYGNvbmZpcm1gKSxmPVV0KG49PntlLmtleWJvYXJkRW5hYmxlZCYmbi50YXJnZXQ9PT1pLnZhbHVlPy5wb3B1cFJlZj8udmFsdWUmJih7RW50ZXI6ZS5zaG93Q29uZmlybUJ1dHRvbj9kOlh0LEVzY2FwZTplLnNob3dDYW5jZWxCdXR0b24/dTpYdH1bbi5rZXldKCksdChga2V5ZG93bmAsbikpfSxbYGVudGVyYCxgZXNjYF0pLHA9KCk9PntsZXQgdD1uLnRpdGxlP24udGl0bGUoKTplLnRpdGxlO2lmKHQpcmV0dXJuIEUoYGRpdmAse2NsYXNzOmx1KGBoZWFkZXJgLHtpc29sYXRlZDohZS5tZXNzYWdlJiYhbi5kZWZhdWx0fSl9LFt0XSl9LG09dD0+e2xldHttZXNzYWdlOm4sYWxsb3dIdG1sOnIsbWVzc2FnZUFsaWduOml9PWUsYT1sdShgbWVzc2FnZWAseyJoYXMtdGl0bGUiOnQsW2ldOml9KSxvPSR0KG4pP24oKTpuO3JldHVybiByJiZ0eXBlb2Ygbz09YHN0cmluZ2A/RShgZGl2YCx7Y2xhc3M6YSxpbm5lckhUTUw6b30sbnVsbCk6RShgZGl2YCx7Y2xhc3M6YX0sW29dKX0saD0oKT0+e2lmKG4uZGVmYXVsdClyZXR1cm4gRShgZGl2YCx7Y2xhc3M6bHUoYGNvbnRlbnRgKX0sW24uZGVmYXVsdCgpXSk7bGV0e3RpdGxlOnQsbWVzc2FnZTpyLGFsbG93SHRtbDppfT1lO2lmKHIpe2xldCBlPSEhKHR8fG4udGl0bGUpO3JldHVybiBFKGBkaXZgLHtrZXk6KyEhaSxjbGFzczpsdShgY29udGVudGAse2lzb2xhdGVkOiFlfSl9LFttKGUpXSl9fSxnPSgpPT5FKGBkaXZgLHtjbGFzczpbTXIsbHUoYGZvb3RlcmApXX0sW2Uuc2hvd0NhbmNlbEJ1dHRvbiYmRShUaSx7c2l6ZTpgbGFyZ2VgLHRleHQ6ZS5jYW5jZWxCdXR0b25UZXh0fHx1dShgY2FuY2VsYCksY2xhc3M6bHUoYGNhbmNlbGApLHN0eWxlOntjb2xvcjplLmNhbmNlbEJ1dHRvbkNvbG9yfSxsb2FkaW5nOmEuY2FuY2VsLGRpc2FibGVkOmUuY2FuY2VsQnV0dG9uRGlzYWJsZWQsb25DbGljazp1fSxudWxsKSxlLnNob3dDb25maXJtQnV0dG9uJiZFKFRpLHtzaXplOmBsYXJnZWAsdGV4dDplLmNvbmZpcm1CdXR0b25UZXh0fHx1dShgY29uZmlybWApLGNsYXNzOltsdShgY29uZmlybWApLHtbTnJdOmUuc2hvd0NhbmNlbEJ1dHRvbn1dLHN0eWxlOntjb2xvcjplLmNvbmZpcm1CdXR0b25Db2xvcn0sbG9hZGluZzphLmNvbmZpcm0sZGlzYWJsZWQ6ZS5jb25maXJtQnV0dG9uRGlzYWJsZWQsb25DbGljazpkfSxudWxsKV0pLF89KCk9PkUoWHIse2NsYXNzOmx1KGBmb290ZXJgKX0se2RlZmF1bHQ6KCk9PltlLnNob3dDYW5jZWxCdXR0b24mJkUoT2kse3R5cGU6YHdhcm5pbmdgLHRleHQ6ZS5jYW5jZWxCdXR0b25UZXh0fHx1dShgY2FuY2VsYCksY2xhc3M6bHUoYGNhbmNlbGApLGNvbG9yOmUuY2FuY2VsQnV0dG9uQ29sb3IsbG9hZGluZzphLmNhbmNlbCxkaXNhYmxlZDplLmNhbmNlbEJ1dHRvbkRpc2FibGVkLG9uQ2xpY2s6dX0sbnVsbCksZS5zaG93Q29uZmlybUJ1dHRvbiYmRShPaSx7dHlwZTpgZGFuZ2VyYCx0ZXh0OmUuY29uZmlybUJ1dHRvblRleHR8fHV1KGBjb25maXJtYCksY2xhc3M6bHUoYGNvbmZpcm1gKSxjb2xvcjplLmNvbmZpcm1CdXR0b25Db2xvcixsb2FkaW5nOmEuY29uZmlybSxkaXNhYmxlZDplLmNvbmZpcm1CdXR0b25EaXNhYmxlZCxvbkNsaWNrOmR9LG51bGwpXX0pLHY9KCk9Pm4uZm9vdGVyP24uZm9vdGVyKCk6ZS50aGVtZT09PWByb3VuZC1idXR0b25gP18oKTpnKCk7cmV0dXJuKCk9PntsZXR7d2lkdGg6dCx0aXRsZTpuLHRoZW1lOmEsbWVzc2FnZTpzLGNsYXNzTmFtZTpjfT1lO3JldHVybiBFKHFpLHIoe3JlZjppLHJvbGU6YGRpYWxvZ2AsY2xhc3M6W2x1KFthXSksY10sc3R5bGU6e3dpZHRoOnEodCl9LHRhYmluZGV4OjAsImFyaWEtbGFiZWxsZWRieSI6bnx8cyxvbktleWRvd246Ziwib25VcGRhdGU6c2hvdyI6b30sUihlLGZ1KSkse2RlZmF1bHQ6KCk9PltwKCksaCgpLHYoKV19KX19fSksbXUsaHU9SSh7fSx7dGl0bGU6YGAsd2lkdGg6YGAsdGhlbWU6bnVsbCxtZXNzYWdlOmBgLG92ZXJsYXk6ITAsY2FsbGJhY2s6bnVsbCx0ZWxlcG9ydDpgYm9keWAsY2xhc3NOYW1lOmBgLGFsbG93SHRtbDohMSxsb2NrU2Nyb2xsOiEwLHRyYW5zaXRpb246dm9pZCAwLGJlZm9yZUNsb3NlOm51bGwsb3ZlcmxheUNsYXNzOmBgLG92ZXJsYXlTdHlsZTp2b2lkIDAsbWVzc2FnZUFsaWduOmBgLGNhbmNlbEJ1dHRvblRleHQ6YGAsY2FuY2VsQnV0dG9uQ29sb3I6bnVsbCxjYW5jZWxCdXR0b25EaXNhYmxlZDohMSxjb25maXJtQnV0dG9uVGV4dDpgYCxjb25maXJtQnV0dG9uQ29sb3I6bnVsbCxjb25maXJtQnV0dG9uRGlzYWJsZWQ6ITEsc2hvd0NvbmZpcm1CdXR0b246ITAsc2hvd0NhbmNlbEJ1dHRvbjohMSxjbG9zZU9uUG9wc3RhdGU6ITAsY2xvc2VPbkNsaWNrT3ZlcmxheTohMSxkZXN0cm95T25DbG9zZTohMX0pO2Z1bmN0aW9uIGd1KCl7bGV0IGU9e3NldHVwKCl7bGV0e3N0YXRlOmUsdG9nZ2xlOnR9PUpvKCk7cmV0dXJuKCk9PkUocHUscihlLHsib25VcGRhdGU6c2hvdyI6dH0pLG51bGwpfX07KHtpbnN0YW5jZTptdX09WW8oZSkpfWZ1bmN0aW9uIF91KGUpe3JldHVybiBadD9uZXcgUHJvbWlzZSgodCxuKT0+e211fHxndSgpLG11Lm9wZW4oSSh7fSxodSxlLHtjYWxsYmFjazplPT57KGU9PT1gY29uZmlybWA/dDpuKShlKX19KSl9KTpQcm9taXNlLnJlc29sdmUodm9pZCAwKX12YXIgdnU9WShwdSksW3l1LGJ1XT1KKGBkaXZpZGVyYCkseHU9WShQKHtuYW1lOnl1LHByb3BzOntkYXNoZWQ6Qm9vbGVhbixoYWlybGluZTpCLHZlcnRpY2FsOkJvb2xlYW4sY29udGVudFBvc2l0aW9uOlUoYGNlbnRlcmApfSxzZXR1cChlLHtzbG90czp0fSl7cmV0dXJuKCk9PkUoYGRpdmAse3JvbGU6YHNlcGFyYXRvcmAsY2xhc3M6YnUoe2Rhc2hlZDplLmRhc2hlZCxoYWlybGluZTplLmhhaXJsaW5lLHZlcnRpY2FsOmUudmVydGljYWwsW2Bjb250ZW50LSR7ZS5jb250ZW50UG9zaXRpb259YF06ISF0LmRlZmF1bHQmJiFlLnZlcnRpY2FsfSl9LFshZS52ZXJ0aWNhbCYmdC5kZWZhdWx0Py5jYWxsKHQpXSl9fSkpLFtTdSxDdV09SihgZHJvcGRvd24tbWVudWApLHd1PXtvdmVybGF5OkIsekluZGV4OnosZHVyYXRpb246SCguMiksZGlyZWN0aW9uOlUoYGRvd25gKSxhY3RpdmVDb2xvcjpTdHJpbmcsYXV0b0xvY2F0ZTpCb29sZWFuLGNsb3NlT25DbGlja091dHNpZGU6QixjbG9zZU9uQ2xpY2tPdmVybGF5OkIsc3dpcGVUaHJlc2hvbGQ6en0sVHU9U3ltYm9sKFN1KSxFdT1QKHtuYW1lOlN1LHByb3BzOnd1LHNldHVwKGUse3Nsb3RzOnR9KXtsZXQgbj1FYSgpLHI9YigpLGk9YigpLGE9YigwKSx7Y2hpbGRyZW46byxsaW5rQ2hpbGRyZW46c309Q24oVHUpLGM9Qm4ociksbD1OKCgpPT5vLnNvbWUoZT0+ZS5zdGF0ZS5zaG93V3JhcHBlcikpLHU9TigoKT0+ZS5zd2lwZVRocmVzaG9sZCYmby5sZW5ndGg+K2Uuc3dpcGVUaHJlc2hvbGQpLGQ9TigoKT0+e2lmKGwudmFsdWUmJkwoZS56SW5kZXgpKXJldHVybnt6SW5kZXg6K2UuekluZGV4KzF9fSksZj0oKT0+e28uZm9yRWFjaChlPT57ZS50b2dnbGUoITEpfSl9LHA9KCk9PntlLmNsb3NlT25DbGlja091dHNpZGUmJmYoKX0sbT0oKT0+e2lmKGkudmFsdWUpe2xldCB0PVcoaSk7ZS5kaXJlY3Rpb249PT1gZG93bmA/YS52YWx1ZT10LmJvdHRvbTphLnZhbHVlPXRyLnZhbHVlLXQudG9wfX0saD0oKT0+e2wudmFsdWUmJm0oKX0sZz1lPT57by5mb3JFYWNoKCh0LG4pPT57bj09PWU/dC50b2dnbGUoKTp0LnN0YXRlLnNob3dQb3B1cCYmdC50b2dnbGUoITEse2ltbWVkaWF0ZTohMH0pfSl9LF89KHQscik9PntsZXR7c2hvd1BvcHVwOml9PXQuc3RhdGUse2Rpc2FibGVkOmEsdGl0bGVDbGFzczpvfT10O3JldHVybiBFKGBkaXZgLHtpZDpgJHtufS0ke3J9YCxyb2xlOmBidXR0b25gLHRhYmluZGV4OmE/dm9pZCAwOjAsImRhdGEtYWxsb3ctbWlzbWF0Y2giOmBhdHRyaWJ1dGVgLGNsYXNzOltDdShgaXRlbWAse2Rpc2FibGVkOmEsZ3Jvdzp1LnZhbHVlfSkse1t6cl06IWF9XSxvbkNsaWNrOigpPT57YXx8ZyhyKX19LFtFKGBzcGFuYCx7Y2xhc3M6W0N1KGB0aXRsZWAse2Rvd246aT09PShlLmRpcmVjdGlvbj09PWBkb3duYCksYWN0aXZlOml9KSxvXSxzdHlsZTp7Y29sb3I6aT9lLmFjdGl2ZUNvbG9yOmBgfX0sW0UoYGRpdmAse2NsYXNzOmB2YW4tZWxsaXBzaXNgfSxbdC5yZW5kZXJUaXRsZSgpXSldKV0pfTtyZXR1cm4gWCh7Y2xvc2U6ZixvcGVuZWQ6bH0pLHMoe2lkOm4scHJvcHM6ZSxvZmZzZXQ6YSxvcGVuZWQ6bCx1cGRhdGVPZmZzZXQ6bX0pLE1uKHIscCksRyhgc2Nyb2xsYCxoLHt0YXJnZXQ6YyxwYXNzaXZlOiEwfSksKCk9PkUoYGRpdmAse3JlZjpyLGNsYXNzOkN1KCl9LFtFKGBkaXZgLHtyZWY6aSxzdHlsZTpkLnZhbHVlLGNsYXNzOkN1KGBiYXJgLHtvcGVuZWQ6bC52YWx1ZSxzY3JvbGxhYmxlOnUudmFsdWV9KX0sW28ubWFwKF8pXSksdC5kZWZhdWx0Py5jYWxsKHQpXSl9fSksW0R1LE91XT1KKGBkcm9wZG93bi1pdGVtYCksa3U9WShQKHtuYW1lOkR1LGluaGVyaXRBdHRyczohMSxwcm9wczp7dGl0bGU6U3RyaW5nLG9wdGlvbnM6VigpLGRpc2FibGVkOkJvb2xlYW4sdGVsZXBvcnQ6W1N0cmluZyxPYmplY3RdLGxhenlSZW5kZXI6Qixtb2RlbFZhbHVlOm51bGwsdGl0bGVDbGFzczpudWxsfSxlbWl0czpbYG9wZW5gLGBvcGVuZWRgLGBjbG9zZWAsYGNsb3NlZGAsYGNoYW5nZWAsYHVwZGF0ZTptb2RlbFZhbHVlYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOmksYXR0cnM6YX0pe2xldCBvPWMoe3Nob3dQb3B1cDohMSx0cmFuc2l0aW9uOiEwLHNob3dXcmFwcGVyOiExfSkscz1iKCkse3BhcmVudDpsLGluZGV4OnV9PXluKFR1KTtpZighbClyZXR1cm47bGV0IGQ9ZT0+KCk9PnQoZSksZj1kKGBvcGVuYCkscD1kKGBjbG9zZWApLG09ZChgb3BlbmVkYCksaD0oKT0+e28uc2hvd1dyYXBwZXI9ITEsdChgY2xvc2VkYCl9LGc9dD0+e2UudGVsZXBvcnQmJnQuc3RvcFByb3BhZ2F0aW9uKCl9LF89KGU9IW8uc2hvd1BvcHVwLHQ9e30pPT57ZSE9PW8uc2hvd1BvcHVwJiYoby5zaG93UG9wdXA9ZSxvLnRyYW5zaXRpb249IXQuaW1tZWRpYXRlLGUmJihsLnVwZGF0ZU9mZnNldCgpLG8uc2hvd1dyYXBwZXI9ITApKX0sdj0oKT0+e2lmKGkudGl0bGUpcmV0dXJuIGkudGl0bGUoKTtpZihlLnRpdGxlKXJldHVybiBlLnRpdGxlO2xldCB0PWUub3B0aW9ucy5maW5kKHQ9PnQudmFsdWU9PT1lLm1vZGVsVmFsdWUpO3JldHVybiB0P3QudGV4dDpgYH0seT1uPT57bGV0e2FjdGl2ZUNvbG9yOnJ9PWwucHJvcHMse2Rpc2FibGVkOml9PW4sYT1uLnZhbHVlPT09ZS5tb2RlbFZhbHVlO3JldHVybiBFKHdvLHtyb2xlOmBtZW51aXRlbWAsa2V5OlN0cmluZyhuLnZhbHVlKSxpY29uOm4uaWNvbix0aXRsZTpuLnRleHQsY2xhc3M6T3UoYG9wdGlvbmAse2FjdGl2ZTphLGRpc2FibGVkOml9KSxzdHlsZTp7Y29sb3I6YT9yOmBgfSx0YWJpbmRleDphPzA6LTEsY2xpY2thYmxlOiFpLG9uQ2xpY2s6KCk9PntpfHwoby5zaG93UG9wdXA9ITEsbi52YWx1ZSE9PWUubW9kZWxWYWx1ZSYmKHQoYHVwZGF0ZTptb2RlbFZhbHVlYCxuLnZhbHVlKSx0KGBjaGFuZ2VgLG4udmFsdWUpKSl9fSx7dmFsdWU6KCk9PntpZihhKXJldHVybiBFKFose2NsYXNzOk91KGBpY29uYCksY29sb3I6aT92b2lkIDA6cixuYW1lOmBzdWNjZXNzYH0sbnVsbCl9fSl9LHg9KCk9PntsZXR7b2Zmc2V0OnR9PWwse2F1dG9Mb2NhdGU6Yyx6SW5kZXg6ZCxvdmVybGF5Ol8sZHVyYXRpb246dixkaXJlY3Rpb246YixjbG9zZU9uQ2xpY2tPdmVybGF5Onh9PWwucHJvcHMsUz1hcihkKSxDPXQudmFsdWU7aWYoYyYmcy52YWx1ZSl7bGV0IGU9cnIocy52YWx1ZSk7ZSYmKEMtPVcoZSkudG9wKX1yZXR1cm4gYj09PWBkb3duYD9TLnRvcD1gJHtDfXB4YDpTLmJvdHRvbT1gJHtDfXB4YCxuKEUoYGRpdmAscih7cmVmOnMsc3R5bGU6UyxjbGFzczpPdShbYl0pLG9uQ2xpY2s6Z30sYSksW0UocWkse3Nob3c6by5zaG93UG9wdXAsIm9uVXBkYXRlOnNob3ciOmU9Pm8uc2hvd1BvcHVwPWUscm9sZTpgbWVudWAsY2xhc3M6T3UoYGNvbnRlbnRgKSxvdmVybGF5Ol8sb3ZlcmxheVByb3BzOntkdXJhdGlvbjpvLnRyYW5zaXRpb24mJiFsLm9wZW5lZC52YWx1ZT92OjB9LHBvc2l0aW9uOmI9PT1gZG93bmA/YHRvcGA6YGJvdHRvbWAsZHVyYXRpb246by50cmFuc2l0aW9uP3Y6MCxsYXp5UmVuZGVyOmUubGF6eVJlbmRlcixvdmVybGF5U3R5bGU6e3Bvc2l0aW9uOmBhYnNvbHV0ZWB9LCJhcmlhLWxhYmVsbGVkYnkiOmAke2wuaWR9LSR7dS52YWx1ZX1gLCJkYXRhLWFsbG93LW1pc21hdGNoIjpgYXR0cmlidXRlYCxjbG9zZU9uQ2xpY2tPdmVybGF5Ongsb25PcGVuOmYsb25DbG9zZTpwLG9uT3BlbmVkOm0sb25DbG9zZWQ6aH0se2RlZmF1bHQ6KCk9PltlLm9wdGlvbnMubWFwKHkpLGkuZGVmYXVsdD8uY2FsbChpKV19KV0pLFtbaXQsby5zaG93V3JhcHBlcl1dKX07cmV0dXJuIFgoe3N0YXRlOm8sdG9nZ2xlOl8scmVuZGVyVGl0bGU6dn0pLCgpPT5lLnRlbGVwb3J0P0UoZmUse3RvOmUudGVsZXBvcnR9LHtkZWZhdWx0OigpPT5beCgpXX0pOngoKX19KSksQXU9WShFdSksanU9e2dhcDp7dHlwZTpbTnVtYmVyLE9iamVjdF0sZGVmYXVsdDoyNH0saWNvbjpTdHJpbmcsYXhpczpVKGB5YCksbWFnbmV0aWM6U3RyaW5nLG9mZnNldDpPYmplY3QsdGVsZXBvcnQ6e3R5cGU6W1N0cmluZyxPYmplY3RdLGRlZmF1bHQ6YGJvZHlgfX0sW011LE51XT1KKGBmbG9hdGluZy1idWJibGVgKSxQdT1ZKFAoe25hbWU6TXUsaW5oZXJpdEF0dHJzOiExLHByb3BzOmp1LGVtaXRzOltgY2xpY2tgLGB1cGRhdGU6b2Zmc2V0YCxgb2Zmc2V0Q2hhbmdlYF0sc2V0dXAoZSx7c2xvdHM6dCxlbWl0OmksYXR0cnM6YX0pe2xldCBvPWIoKSxzPWIoe3g6MCx5OjAsd2lkdGg6MCxoZWlnaHQ6MH0pLGM9TigoKT0+UXQoZS5nYXApP2UuZ2FwLng6ZS5nYXApLGw9TigoKT0+UXQoZS5nYXApP2UuZ2FwLnk6ZS5nYXApLHU9TigoKT0+KHt0b3A6bC52YWx1ZSxyaWdodDplci52YWx1ZS1zLnZhbHVlLndpZHRoLWMudmFsdWUsYm90dG9tOnRyLnZhbHVlLXMudmFsdWUuaGVpZ2h0LWwudmFsdWUsbGVmdDpjLnZhbHVlfSkpLGQ9YighMSkscD0hMSxtPU4oKCk9PntsZXQgZT17fTtyZXR1cm4gZS50cmFuc2Zvcm09YHRyYW5zbGF0ZTNkKCR7cShzLnZhbHVlLngpfSwgJHtxKHMudmFsdWUueSl9LCAwKWAsKGQudmFsdWV8fCFwKSYmKGUudHJhbnNpdGlvbj1gbm9uZWApLGV9KSxnPSgpPT57aWYoIVQudmFsdWUpcmV0dXJuO2xldHt3aWR0aDp0LGhlaWdodDpufT1XKG8udmFsdWUpLHtvZmZzZXQ6cn09ZTtzLnZhbHVlPXt4OnI/ci54OmVyLnZhbHVlLXQtYy52YWx1ZSx5OnI/ci55OnRyLnZhbHVlLW4tbC52YWx1ZSx3aWR0aDp0LGhlaWdodDpufX0sXz1GaSgpLHY9MCx4PTAsUz1lPT57Xy5zdGFydChlKSxkLnZhbHVlPSEwLHY9cy52YWx1ZS54LHg9cy52YWx1ZS55fTtHKGB0b3VjaG1vdmVgLHQ9PntpZih0LnByZXZlbnREZWZhdWx0KCksXy5tb3ZlKHQpLGUuYXhpcyE9PWBsb2NrYCYmIV8uaXNUYXAudmFsdWUpe2lmKGUuYXhpcz09PWB4YHx8ZS5heGlzPT09YHh5YCl7bGV0IGU9ditfLmRlbHRhWC52YWx1ZTtlPHUudmFsdWUubGVmdCYmKGU9dS52YWx1ZS5sZWZ0KSxlPnUudmFsdWUucmlnaHQmJihlPXUudmFsdWUucmlnaHQpLHMudmFsdWUueD1lfWlmKGUuYXhpcz09PWB5YHx8ZS5heGlzPT09YHh5YCl7bGV0IGU9eCtfLmRlbHRhWS52YWx1ZTtlPHUudmFsdWUudG9wJiYoZT11LnZhbHVlLnRvcCksZT51LnZhbHVlLmJvdHRvbSYmKGU9dS52YWx1ZS5ib3R0b20pLHMudmFsdWUueT1lfWkoYHVwZGF0ZTpvZmZzZXRgLFIocy52YWx1ZSxbYHhgLGB5YF0pKX19LHt0YXJnZXQ6b30pO2xldCBDPSgpPT57ZC52YWx1ZT0hMSxGKCgpPT57aWYoZS5tYWduZXRpYz09PWB4YCl7bGV0IGU9SHIoW3UudmFsdWUubGVmdCx1LnZhbHVlLnJpZ2h0XSxzLnZhbHVlLngpO3MudmFsdWUueD1lfWlmKGUubWFnbmV0aWM9PT1geWApe2xldCBlPUhyKFt1LnZhbHVlLnRvcCx1LnZhbHVlLmJvdHRvbV0scy52YWx1ZS55KTtzLnZhbHVlLnk9ZX1pZighXy5pc1RhcC52YWx1ZSl7bGV0IGU9UihzLnZhbHVlLFtgeGAsYHlgXSk7aShgdXBkYXRlOm9mZnNldGAsZSksKHYhPT1lLnh8fHghPT1lLnkpJiZpKGBvZmZzZXRDaGFuZ2VgLGUpfX0pfSx3PWU9PntfLmlzVGFwLnZhbHVlP2koYGNsaWNrYCxlKTplLnN0b3BQcm9wYWdhdGlvbigpfTtNKCgpPT57ZygpLEYoKCk9PntwPSEwfSl9KSxmKFtlcix0cixjLGwsKCk9PmUub2Zmc2V0XSxnLHtkZWVwOiEwfSk7bGV0IFQ9YighMCk7cmV0dXJuIHkoKCk9PntULnZhbHVlPSEwfSksaCgoKT0+e2UudGVsZXBvcnQmJihULnZhbHVlPSExKX0pLCgpPT57bGV0IGk9bihFKGBkaXZgLHIoe2NsYXNzOk51KCkscmVmOm8sb25Ub3VjaHN0YXJ0UGFzc2l2ZTpTLG9uVG91Y2hlbmQ6QyxvblRvdWNoY2FuY2VsOkMsb25DbGlja0NhcHR1cmU6dyxzdHlsZTptLnZhbHVlfSxhKSxbdC5kZWZhdWx0P3QuZGVmYXVsdCgpOkUoX2kse25hbWU6ZS5pY29uLGNsYXNzOk51KGBpY29uYCl9LG51bGwpXSksW1tpdCxULnZhbHVlXV0pO3JldHVybiBlLnRlbGVwb3J0P0UoZmUse3RvOmUudGVsZXBvcnR9LHtkZWZhdWx0OigpPT5baV19KTppfX19KSksRnU9e2hlaWdodDpIKDApLGFuY2hvcnM6VigpLGR1cmF0aW9uOkgoLjMpLG1hZ25ldGljOkIsZHJhZ2dhYmxlOkIsY29udGVudERyYWdnYWJsZTpCLGxvY2tTY3JvbGw6Qm9vbGVhbixzYWZlQXJlYUluc2V0Qm90dG9tOkJ9LFtJdSxMdV09SihgZmxvYXRpbmctcGFuZWxgKSxSdT1ZKFAoe25hbWU6SXUscHJvcHM6RnUsZW1pdHM6W2BoZWlnaHRDaGFuZ2VgLGB1cGRhdGU6aGVpZ2h0YF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXQgcj0uMixpPWIoKSxhPWIoKSxvPVNhKCgpPT4rZS5oZWlnaHQsZT0+dChgdXBkYXRlOmhlaWdodGAsZSkpLHM9TigoKT0+KHttaW46ZS5hbmNob3JzWzBdPz8xMDAsbWF4OmUuYW5jaG9yc1tlLmFuY2hvcnMubGVuZ3RoLTFdPz9NYXRoLnJvdW5kKHRyLnZhbHVlKi42KX0pKSxjPU4oKCk9PmUuYW5jaG9ycy5sZW5ndGg+PTI/ZS5hbmNob3JzOltzLnZhbHVlLm1pbixzLnZhbHVlLm1heF0pLGw9YighMSksdT1OKCgpPT4oe2hlaWdodDpxKHMudmFsdWUubWF4KSx0cmFuc2Zvcm06YHRyYW5zbGF0ZVkoY2FsYygxMDAlICsgJHtxKC1vLnZhbHVlKX0pKWAsdHJhbnNpdGlvbjpsLnZhbHVlP2Bub25lYDpgdHJhbnNmb3JtICR7ZS5kdXJhdGlvbn1zIGN1YmljLWJlemllcigwLjE4LCAwLjg5LCAwLjMyLCAxLjI4KWB9KSksZD1lPT57bGV0IHQ9TWF0aC5hYnMoZSkse21pbjpuLG1heDppfT1zLnZhbHVlO3JldHVybiB0Pmk/LShpKyh0LWkpKnIpOnQ8bj8tKG4tKG4tdCkqcik6ZX0scCxtPS0xLGg9RmkoKSxnPXQ9PntlLmRyYWdnYWJsZSYmKGguc3RhcnQodCksbC52YWx1ZT0hMCxwPS1vLnZhbHVlLG09LTEpfSxfPXQ9PntpZighZS5kcmFnZ2FibGUpcmV0dXJuO2gubW92ZSh0KTtsZXQgbj10LnRhcmdldDtpZihhLnZhbHVlPT09bnx8YS52YWx1ZT8uY29udGFpbnMobikpe2xldHtzY3JvbGxUb3A6bn09YS52YWx1ZTtpZihtPU1hdGgubWF4KG0sbiksIWUuY29udGVudERyYWdnYWJsZSlyZXR1cm47aWYoLXA8cy52YWx1ZS5tYXgpSyh0LCEwKTtlbHNlIGlmKCEobjw9MCYmaC5kZWx0YVkudmFsdWU+MCl8fG0+MClyZXR1cm59by52YWx1ZT0tZChoLmRlbHRhWS52YWx1ZStwKX0sdj0oKT0+e2lmKG09LTEsbC52YWx1ZSYmKGwudmFsdWU9ITEsZS5kcmFnZ2FibGUpKXtpZihlLm1hZ25ldGljKW8udmFsdWU9SHIoYy52YWx1ZSxvLnZhbHVlKTtlbHNle2xldHttaW46ZSxtYXg6dH09cy52YWx1ZTtvLnZhbHVlPU1hdGgubWF4KGUsTWF0aC5taW4odCxvLnZhbHVlKSl9by52YWx1ZSE9PS1wJiZ0KGBoZWlnaHRDaGFuZ2VgLHtoZWlnaHQ6by52YWx1ZX0pfX07ZihzLCgpPT57by52YWx1ZT1IcihjLnZhbHVlLG8udmFsdWUpfSx7aW1tZWRpYXRlOiEwfSksUmkoaSwoKT0+ZS5sb2NrU2Nyb2xsfHxsLnZhbHVlKSxHKGB0b3VjaG1vdmVgLF8se3RhcmdldDppfSk7bGV0IHk9KCk9Pm4uaGVhZGVyP24uaGVhZGVyKCk6ZS5kcmFnZ2FibGU/RShgZGl2YCx7Y2xhc3M6THUoYGhlYWRlcmApfSxbRShgZGl2YCx7Y2xhc3M6THUoYGhlYWRlci1iYXJgKX0sbnVsbCldKTpudWxsO3JldHVybigpPT5FKGBkaXZgLHtjbGFzczpbTHUoKSx7InZhbi1zYWZlLWFyZWEtYm90dG9tIjplLnNhZmVBcmVhSW5zZXRCb3R0b219XSxyZWY6aSxzdHlsZTp1LnZhbHVlLG9uVG91Y2hzdGFydFBhc3NpdmU6ZyxvblRvdWNoZW5kOnYsb25Ub3VjaGNhbmNlbDp2fSxbeSgpLEUoYGRpdmAse2NsYXNzOkx1KGBjb250ZW50YCkscmVmOmEsc3R5bGU6e3BhZGRpbmdCb3R0b206cShzLnZhbHVlLm1heC1vLnZhbHVlKX19LFtuLmRlZmF1bHQ/LmNhbGwobildKV0pfX0pKSxbenUsQnVdPUooYGdyaWRgKSxWdT17c3F1YXJlOkJvb2xlYW4sY2VudGVyOkIsYm9yZGVyOkIsZ3V0dGVyOnoscmV2ZXJzZTpCb29sZWFuLGljb25TaXplOnosZGlyZWN0aW9uOlN0cmluZyxjbGlja2FibGU6Qm9vbGVhbixjb2x1bW5OdW06SCg0KX0sSHU9U3ltYm9sKHp1KSxVdT1ZKFAoe25hbWU6enUscHJvcHM6VnUsc2V0dXAoZSx7c2xvdHM6dH0pe2xldHtsaW5rQ2hpbGRyZW46bn09Q24oSHUpO3JldHVybiBuKHtwcm9wczplfSksKCk9PkUoYGRpdmAse3N0eWxlOntwYWRkaW5nTGVmdDpxKGUuZ3V0dGVyKX0sY2xhc3M6W0J1KCkse1tNcl06ZS5ib3JkZXImJiFlLmd1dHRlcn1dfSxbdC5kZWZhdWx0Py5jYWxsKHQpXSl9fSkpLFtXdSxHdV09SihgZ3JpZC1pdGVtYCksS3U9WShQKHtuYW1lOld1LHByb3BzOkkoe30sWnIse2RvdDpCb29sZWFuLHRleHQ6U3RyaW5nLGljb246U3RyaW5nLGJhZGdlOnosaWNvbkNvbG9yOlN0cmluZyxpY29uUHJlZml4OlN0cmluZyxiYWRnZVByb3BzOk9iamVjdH0pLHNldHVwKGUse3Nsb3RzOnR9KXtsZXR7cGFyZW50Om4saW5kZXg6aX09eW4oSHUpLGE9JHIoKTtpZighbilyZXR1cm47bGV0IG89TigoKT0+e2xldHtzcXVhcmU6ZSxndXR0ZXI6dCxjb2x1bW5OdW06cn09bi5wcm9wcyxhPWAkezEwMC9yfSVgLG89e2ZsZXhCYXNpczphfTtpZihlKW8ucGFkZGluZ1RvcD1hO2Vsc2UgaWYodCl7bGV0IGU9cSh0KTtvLnBhZGRpbmdSaWdodD1lLGkudmFsdWU+PStyJiYoby5tYXJnaW5Ub3A9ZSl9cmV0dXJuIG99KSxzPU4oKCk9PntsZXR7c3F1YXJlOmUsZ3V0dGVyOnR9PW4ucHJvcHM7aWYoZSYmdCl7bGV0IGU9cSh0KTtyZXR1cm57cmlnaHQ6ZSxib3R0b206ZSxoZWlnaHQ6YGF1dG9gfX19KSxjPSgpPT57aWYodC5pY29uKXJldHVybiBFKG5pLHIoe2RvdDplLmRvdCxjb250ZW50OmUuYmFkZ2V9LGUuYmFkZ2VQcm9wcykse2RlZmF1bHQ6dC5pY29ufSk7aWYoZS5pY29uKXJldHVybiBFKFose2RvdDplLmRvdCxuYW1lOmUuaWNvbixzaXplOm4ucHJvcHMuaWNvblNpemUsYmFkZ2U6ZS5iYWRnZSxjbGFzczpHdShgaWNvbmApLGNvbG9yOmUuaWNvbkNvbG9yLGJhZGdlUHJvcHM6ZS5iYWRnZVByb3BzLGNsYXNzUHJlZml4OmUuaWNvblByZWZpeH0sbnVsbCl9LGw9KCk9PntpZih0LnRleHQpcmV0dXJuIHQudGV4dCgpO2lmKGUudGV4dClyZXR1cm4gRShgc3BhbmAse2NsYXNzOkd1KGB0ZXh0YCl9LFtlLnRleHRdKX0sdT0oKT0+dC5kZWZhdWx0P3QuZGVmYXVsdCgpOltjKCksbCgpXTtyZXR1cm4oKT0+e2xldHtjZW50ZXI6ZSxib3JkZXI6dCxzcXVhcmU6cixndXR0ZXI6aSxyZXZlcnNlOmMsZGlyZWN0aW9uOmwsY2xpY2thYmxlOmR9PW4ucHJvcHMsZj1bR3UoYGNvbnRlbnRgLFtsLHtjZW50ZXI6ZSxzcXVhcmU6cixyZXZlcnNlOmMsY2xpY2thYmxlOmQsc3Vycm91bmQ6dCYmaX1dKSx7W2pyXTp0fV07cmV0dXJuIEUoYGRpdmAse2NsYXNzOltHdSh7c3F1YXJlOnJ9KV0sc3R5bGU6by52YWx1ZX0sW0UoYGRpdmAse3JvbGU6ZD9gYnV0dG9uYDp2b2lkIDAsY2xhc3M6ZixzdHlsZTpzLnZhbHVlLHRhYmluZGV4OmQ/MDp2b2lkIDAsb25DbGljazphfSxbdSgpXSldKX19fSkpLFtxdSxKdV09SihgaGlnaGxpZ2h0YCksWXU9WShQKHtuYW1lOnF1LHByb3BzOnthdXRvRXNjYXBlOkIsY2FzZVNlbnNpdGl2ZTpCb29sZWFuLGhpZ2hsaWdodENsYXNzOlN0cmluZyxoaWdobGlnaHRUYWc6VShgc3BhbmApLGtleXdvcmRzOnVuKFtTdHJpbmcsQXJyYXldKSxzb3VyY2VTdHJpbmc6VShgYCksdGFnOlUoYGRpdmApLHVuaGlnaGxpZ2h0Q2xhc3M6U3RyaW5nLHVuaGlnaGxpZ2h0VGFnOlUoYHNwYW5gKX0sc2V0dXAoZSl7bGV0IHQ9TigoKT0+e2xldHthdXRvRXNjYXBlOnQsY2FzZVNlbnNpdGl2ZTpuLGtleXdvcmRzOnIsc291cmNlU3RyaW5nOml9PWUsYT1uP2BnYDpgZ2lgLG89KEFycmF5LmlzQXJyYXkocik/cjpbcl0pLmZpbHRlcihlPT5lKS5yZWR1Y2UoKGUsbik9Pnt0JiYobj1uLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLGBcXCQmYCkpO2xldCByPW5ldyBSZWdFeHAobixhKSxvO2Zvcig7bz1yLmV4ZWMoaSk7KXtsZXQgdD1vLmluZGV4LG49ci5sYXN0SW5kZXg7aWYodD49bil7ci5sYXN0SW5kZXgrKztjb250aW51ZX1lLnB1c2goe3N0YXJ0OnQsZW5kOm4saGlnaGxpZ2h0OiEwfSl9cmV0dXJuIGV9LFtdKTtvPW8uc29ydCgoZSx0KT0+ZS5zdGFydC10LnN0YXJ0KS5yZWR1Y2UoKGUsdCk9PntsZXQgbj1lW2UubGVuZ3RoLTFdO2lmKCFufHx0LnN0YXJ0Pm4uZW5kKXtsZXQgcj1uP24uZW5kOjAsaT10LnN0YXJ0O3IhPT1pJiZlLnB1c2goe3N0YXJ0OnIsZW5kOmksaGlnaGxpZ2h0OiExfSksZS5wdXNoKHQpfWVsc2Ugbi5lbmQ9TWF0aC5tYXgobi5lbmQsdC5lbmQpO3JldHVybiBlfSxbXSk7bGV0IHM9b1tvLmxlbmd0aC0xXTtyZXR1cm4gc3x8by5wdXNoKHtzdGFydDowLGVuZDppLmxlbmd0aCxoaWdobGlnaHQ6ITF9KSxzJiZzLmVuZDxpLmxlbmd0aCYmby5wdXNoKHtzdGFydDpzLmVuZCxlbmQ6aS5sZW5ndGgsaGlnaGxpZ2h0OiExfSksb30pLG49KCk9PntsZXR7c291cmNlU3RyaW5nOm4saGlnaGxpZ2h0Q2xhc3M6cix1bmhpZ2hsaWdodENsYXNzOmksaGlnaGxpZ2h0VGFnOmEsdW5oaWdobGlnaHRUYWc6b309ZTtyZXR1cm4gdC52YWx1ZS5tYXAoZT0+e2xldHtzdGFydDp0LGVuZDpzLGhpZ2hsaWdodDpjfT1lLGw9bi5zbGljZSh0LHMpO3JldHVybiBjP0UoYSx7Y2xhc3M6W0p1KGB0YWdgKSxyXX0se2RlZmF1bHQ6KCk9PltsXX0pOkUobyx7Y2xhc3M6aX0se2RlZmF1bHQ6KCk9PltsXX0pfSl9O3JldHVybigpPT57bGV0e3RhZzp0fT1lO3JldHVybiBFKHQse2NsYXNzOkp1KCl9LHtkZWZhdWx0OigpPT5bbigpXX0pfX19KSksWHU9ZT0+TWF0aC5zcXJ0KChlWzBdLmNsaWVudFgtZVsxXS5jbGllbnRYKSoqMisoZVswXS5jbGllbnRZLWVbMV0uY2xpZW50WSkqKjIpLFp1PWU9Pih7eDooZVswXS5jbGllbnRYK2VbMV0uY2xpZW50WCkvMix5OihlWzBdLmNsaWVudFkrZVsxXS5jbGllbnRZKS8yfSksUXU9SihgaW1hZ2UtcHJldmlld2ApWzFdLCR1PTIuNixlZD1QKHtwcm9wczp7c3JjOlN0cmluZyxzaG93OkJvb2xlYW4sYWN0aXZlOk51bWJlcixtaW5ab29tOnVuKHopLG1heFpvb206dW4oeikscm9vdFdpZHRoOnVuKE51bWJlcikscm9vdEhlaWdodDp1bihOdW1iZXIpLGRpc2FibGVab29tOkJvb2xlYW4sZG91YmxlU2NhbGU6Qm9vbGVhbixjbG9zZU9uQ2xpY2tJbWFnZTpCb29sZWFuLGNsb3NlT25DbGlja092ZXJsYXk6Qm9vbGVhbix2ZXJ0aWNhbDpCb29sZWFufSxlbWl0czpbYHNjYWxlYCxgY2xvc2VgLGBsb25nUHJlc3NgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCByPWMoe3NjYWxlOjEsbW92ZVg6MCxtb3ZlWTowLG1vdmluZzohMSx6b29taW5nOiExLGluaXRpYWxpemluZzohMSxpbWFnZVJhdGlvOjB9KSxpPUZpKCksYT1iKCksbz1iKCkscz1iKCExKSxsPWIoITEpLHU9MCxkPU4oKCk9PntsZXR7c2NhbGU6ZSxtb3ZlWDp0LG1vdmVZOm4sbW92aW5nOmksem9vbWluZzphLGluaXRpYWxpemluZzpvfT1yLHM9e3RyYW5zaXRpb25EdXJhdGlvbjphfHxpfHxvP2Awc2A6YC4zc2B9O3JldHVybihlIT09MXx8bC52YWx1ZSkmJihzLnRyYW5zZm9ybT1gbWF0cml4KCR7ZX0sIDAsIDAsICR7ZX0sICR7dH0sICR7bn0pYCksc30pLHA9TigoKT0+e2lmKHIuaW1hZ2VSYXRpbyl7bGV0e3Jvb3RXaWR0aDp0LHJvb3RIZWlnaHQ6bn09ZSxpPXMudmFsdWU/bi9yLmltYWdlUmF0aW86dDtyZXR1cm4gTWF0aC5tYXgoMCwoci5zY2FsZSppLXQpLzIpfXJldHVybiAwfSksbT1OKCgpPT57aWYoci5pbWFnZVJhdGlvKXtsZXR7cm9vdFdpZHRoOnQscm9vdEhlaWdodDpufT1lLGk9cy52YWx1ZT9uOnQqci5pbWFnZVJhdGlvO3JldHVybiBNYXRoLm1heCgwLChyLnNjYWxlKmktbikvMil9cmV0dXJuIDB9KSxoPShuLGkpPT57aWYobj1ncihuLCtlLm1pblpvb20sK2UubWF4Wm9vbSsxKSxuIT09ci5zY2FsZSl7bGV0IG89bi9yLnNjYWxlO2lmKHIuc2NhbGU9bixpKXtsZXQgZT1XKGEudmFsdWU/LiRlbCksdD17eDplLndpZHRoKi41LHk6ZS5oZWlnaHQqLjV9LG49ci5tb3ZlWC0oaS54LWUubGVmdC10LngpKihvLTEpLHM9ci5tb3ZlWS0oaS55LWUudG9wLXQueSkqKG8tMSk7ci5tb3ZlWD1ncihuLC1wLnZhbHVlLHAudmFsdWUpLHIubW92ZVk9Z3IocywtbS52YWx1ZSxtLnZhbHVlKX1lbHNlIHIubW92ZVg9MCxyLm1vdmVZPWwudmFsdWU/dTowO3QoYHNjYWxlYCx7c2NhbGU6bixpbmRleDplLmFjdGl2ZX0pfX0sZz0oKT0+e2goMSl9LF89KCk9PntsZXQgZT1yLnNjYWxlPjE/MToyO2goZSxlPT09Mnx8bC52YWx1ZT97eDppLnN0YXJ0WC52YWx1ZSx5Omkuc3RhcnRZLnZhbHVlfTp2b2lkIDApfSx2LHkseCxTLEMsdyxULEQsTz0hMSxrPXQ9PntsZXR7dG91Y2hlczpufT10O2lmKHY9bi5sZW5ndGgsdj09PTImJmUuZGlzYWJsZVpvb20pcmV0dXJuO2xldHtvZmZzZXRYOmF9PWk7aS5zdGFydCh0KSx5PXIubW92ZVgseD1yLm1vdmVZLEQ9RGF0ZS5ub3coKSxPPSExLHIubW92aW5nPXY9PT0xJiYoci5zY2FsZSE9PTF8fGwudmFsdWUpLHIuem9vbWluZz12PT09MiYmIWEudmFsdWUsci56b29taW5nJiYoUz1yLnNjYWxlLEM9WHUobikpfSxBPXQ9PntsZXR7dG91Y2hlczpufT10O2lmKGkubW92ZSh0KSxyLm1vdmluZyl7bGV0e2RlbHRhWDpuLGRlbHRhWTphfT1pLG89bi52YWx1ZSt5LHM9YS52YWx1ZSt4O2lmKChlLnZlcnRpY2FsP2kuaXNWZXJ0aWNhbCgpJiZNYXRoLmFicyhzKT5tLnZhbHVlOmkuaXNIb3Jpem9udGFsKCkmJk1hdGguYWJzKG8pPnAudmFsdWUpJiYhTyl7ci5tb3Zpbmc9ITE7cmV0dXJufU89ITAsSyh0LCEwKSxyLm1vdmVYPWdyKG8sLXAudmFsdWUscC52YWx1ZSksci5tb3ZlWT1ncihzLC1tLnZhbHVlLG0udmFsdWUpfWlmKHIuem9vbWluZyYmKEsodCwhMCksbi5sZW5ndGg9PT0yKSl7bGV0IGU9WHUobiksdD1TKmUvQzt3PVp1KG4pLGgodCx3KX19LGo9bj0+e2xldCByPW8udmFsdWU/LiRlbDtpZighcilyZXR1cm47bGV0IGk9ci5maXJzdEVsZW1lbnRDaGlsZCxhPW4udGFyZ2V0PT09cixzPWk/LmNvbnRhaW5zKG4udGFyZ2V0KTshZS5jbG9zZU9uQ2xpY2tJbWFnZSYmc3x8IWUuY2xvc2VPbkNsaWNrT3ZlcmxheSYmYXx8dChgY2xvc2VgKX0sZWU9bj0+e2lmKHY+MSlyZXR1cm47bGV0IHI9RGF0ZS5ub3coKS1EO2kuaXNUYXAudmFsdWUmJihyPDI1MD9lLmRvdWJsZVNjYWxlP1Q/KGNsZWFyVGltZW91dChUKSxUPW51bGwsXygpKTpUPXNldFRpbWVvdXQoKCk9PntqKG4pLFQ9bnVsbH0sMjUwKTpqKG4pOnI+NTAwJiZ0KGBsb25nUHJlc3NgKSl9LHRlPXQ9PntsZXQgbj0hMTtpZigoci5tb3Zpbmd8fHIuem9vbWluZykmJihuPSEwLHIubW92aW5nJiZ5PT09ci5tb3ZlWCYmeD09PXIubW92ZVkmJihuPSExKSwhdC50b3VjaGVzLmxlbmd0aCkpe3Iuem9vbWluZyYmPShyLm1vdmVYPWdyKHIubW92ZVgsLXAudmFsdWUscC52YWx1ZSksci5tb3ZlWT1ncihyLm1vdmVZLC1tLnZhbHVlLG0udmFsdWUpLCExKSxyLm1vdmluZz0hMSx5PTAseD0wLFM9MSxyLnNjYWxlPDEmJmcoKTtsZXQgdD0rZS5tYXhab29tO3Iuc2NhbGU+dCYmaCh0LHcpfUsodCxuKSxlZSh0KSxpLnJlc2V0KCl9LG5lPSgpPT57bGV0e3Jvb3RXaWR0aDp0LHJvb3RIZWlnaHQ6bn09ZSxpPW4vdCx7aW1hZ2VSYXRpbzphfT1yO3MudmFsdWU9ci5pbWFnZVJhdGlvPmkmJmE8JHUsbC52YWx1ZT1yLmltYWdlUmF0aW8+aSYmYT49JHUsbC52YWx1ZSYmKHU9KGEqdC1uKS8yLHIubW92ZVk9dSxyLmluaXRpYWxpemluZz0hMCxwbigoKT0+e3IuaW5pdGlhbGl6aW5nPSExfSkpLGcoKX0scmU9ZT0+e2xldHtuYXR1cmFsV2lkdGg6dCxuYXR1cmFsSGVpZ2h0Om59PWUudGFyZ2V0O3IuaW1hZ2VSYXRpbz1uL3QsbmUoKX07cmV0dXJuIGYoKCk9PmUuYWN0aXZlLGcpLGYoKCk9PmUuc2hvdyxlPT57ZXx8ZygpfSksZigoKT0+W2Uucm9vdFdpZHRoLGUucm9vdEhlaWdodF0sbmUpLEcoYHRvdWNobW92ZWAsQSx7dGFyZ2V0Ok4oKCk9Pm8udmFsdWU/LiRlbCl9KSxYKHtyZXNldFNjYWxlOmd9KSwoKT0+e2xldCB0PXtsb2FkaW5nOigpPT5FKFNpLHt0eXBlOmBzcGlubmVyYH0sbnVsbCl9O3JldHVybiBFKGVvLHtyZWY6byxjbGFzczpRdShgc3dpcGUtaXRlbWApLG9uVG91Y2hzdGFydFBhc3NpdmU6ayxvblRvdWNoZW5kOnRlLG9uVG91Y2hjYW5jZWw6dGV9LHtkZWZhdWx0OigpPT5bbi5pbWFnZT9FKGBkaXZgLHtjbGFzczpRdShgaW1hZ2Utd3JhcGApfSxbbi5pbWFnZSh7c3JjOmUuc3JjLG9uTG9hZDpyZSxzdHlsZTpkLnZhbHVlfSldKTpFKEhjLHtyZWY6YSxzcmM6ZS5zcmMsZml0OmBjb250YWluYCxjbGFzczpRdShgaW1hZ2VgLHt2ZXJ0aWNhbDpzLnZhbHVlfSksc3R5bGU6ZC52YWx1ZSxvbkxvYWQ6cmV9LHQpXX0pfX19KSxbdGQsbmRdPUooYGltYWdlLXByZXZpZXdgKSxyZD1bYHNob3dgLGB0ZWxlcG9ydGAsYHRyYW5zaXRpb25gLGBvdmVybGF5U3R5bGVgLGBjbG9zZU9uUG9wc3RhdGVgXSxpZD1QKHtuYW1lOnRkLHByb3BzOntzaG93OkJvb2xlYW4sbG9vcDpCLGltYWdlczpWKCksbWluWm9vbTpIKDEvMyksbWF4Wm9vbTpIKDMpLG92ZXJsYXk6Qix2ZXJ0aWNhbDpCb29sZWFuLGNsb3NlYWJsZTpCb29sZWFuLHNob3dJbmRleDpCLGNsYXNzTmFtZTpudWxsLGNsb3NlSWNvbjpVKGBjbGVhcmApLHRyYW5zaXRpb246U3RyaW5nLGJlZm9yZUNsb3NlOkZ1bmN0aW9uLGRvdWJsZVNjYWxlOkIsb3ZlcmxheUNsYXNzOm51bGwsb3ZlcmxheVN0eWxlOk9iamVjdCxzd2lwZUR1cmF0aW9uOkgoMzAwKSxzdGFydFBvc2l0aW9uOkgoMCksc2hvd0luZGljYXRvcnM6Qm9vbGVhbixjbG9zZU9uUG9wc3RhdGU6QixjbG9zZU9uQ2xpY2tJbWFnZTpCLGNsb3NlT25DbGlja092ZXJsYXk6QixjbG9zZUljb25Qb3NpdGlvbjpVKGB0b3AtcmlnaHRgKSx0ZWxlcG9ydDpbU3RyaW5nLE9iamVjdF19LGVtaXRzOltgc2NhbGVgLGBjbG9zZWAsYGNsb3NlZGAsYGNoYW5nZWAsYGxvbmdQcmVzc2AsYHVwZGF0ZTpzaG93YF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXQgaT1iKCksYT1iKCksbz1jKHthY3RpdmU6MCxyb290V2lkdGg6MCxyb290SGVpZ2h0OjAsZGlzYWJsZVpvb206ITF9KSxzPSgpPT57aWYoaS52YWx1ZSl7bGV0IGU9VyhpLnZhbHVlLiRlbCk7by5yb290V2lkdGg9ZS53aWR0aCxvLnJvb3RIZWlnaHQ9ZS5oZWlnaHQsaS52YWx1ZS5yZXNpemUoKX19LGw9ZT0+dChgc2NhbGVgLGUpLHU9ZT0+dChgdXBkYXRlOnNob3dgLGUpLGQ9KCk9PntWcihlLmJlZm9yZUNsb3NlLHthcmdzOltvLmFjdGl2ZV0sZG9uZTooKT0+dSghMSl9KX0scD1lPT57ZSE9PW8uYWN0aXZlJiYoby5hY3RpdmU9ZSx0KGBjaGFuZ2VgLGUpKX0sbT0oKT0+e2lmKGUuc2hvd0luZGV4KXJldHVybiBFKGBkaXZgLHtjbGFzczpuZChgaW5kZXhgKX0sW24uaW5kZXg/bi5pbmRleCh7aW5kZXg6by5hY3RpdmV9KTpgJHtvLmFjdGl2ZSsxfSAvICR7ZS5pbWFnZXMubGVuZ3RofWBdKX0saD0oKT0+e2lmKG4uY292ZXIpcmV0dXJuIEUoYGRpdmAse2NsYXNzOm5kKGBjb3ZlcmApfSxbbi5jb3ZlcigpXSl9LGc9KCk9PntvLmRpc2FibGVab29tPSEwfSxfPSgpPT57by5kaXNhYmxlWm9vbT0hMX0sdj0oKT0+RShJYSx7cmVmOmksbGF6eVJlbmRlcjohMCxsb29wOmUubG9vcCxjbGFzczpuZChgc3dpcGVgKSx2ZXJ0aWNhbDplLnZlcnRpY2FsLGR1cmF0aW9uOmUuc3dpcGVEdXJhdGlvbixpbml0aWFsU3dpcGU6ZS5zdGFydFBvc2l0aW9uLHNob3dJbmRpY2F0b3JzOmUuc2hvd0luZGljYXRvcnMsaW5kaWNhdG9yQ29sb3I6YHdoaXRlYCxvbkNoYW5nZTpwLG9uRHJhZ0VuZDpfLG9uRHJhZ1N0YXJ0Omd9LHtkZWZhdWx0OigpPT5bZS5pbWFnZXMubWFwKChyLGkpPT5FKGVkLHtyZWY6ZT0+e2k9PT1vLmFjdGl2ZSYmKGEudmFsdWU9ZSl9LHNyYzpyLHNob3c6ZS5zaG93LGFjdGl2ZTpvLmFjdGl2ZSxtYXhab29tOmUubWF4Wm9vbSxtaW5ab29tOmUubWluWm9vbSxyb290V2lkdGg6by5yb290V2lkdGgscm9vdEhlaWdodDpvLnJvb3RIZWlnaHQsZGlzYWJsZVpvb206by5kaXNhYmxlWm9vbSxkb3VibGVTY2FsZTplLmRvdWJsZVNjYWxlLGNsb3NlT25DbGlja0ltYWdlOmUuY2xvc2VPbkNsaWNrSW1hZ2UsY2xvc2VPbkNsaWNrT3ZlcmxheTplLmNsb3NlT25DbGlja092ZXJsYXksdmVydGljYWw6ZS52ZXJ0aWNhbCxvblNjYWxlOmwsb25DbG9zZTpkLG9uTG9uZ1ByZXNzOigpPT50KGBsb25nUHJlc3NgLHtpbmRleDppfSl9LHtpbWFnZTpuLmltYWdlfSkpXX0pLHk9KCk9PntpZihlLmNsb3NlYWJsZSlyZXR1cm4gRShaLHtyb2xlOmBidXR0b25gLG5hbWU6ZS5jbG9zZUljb24sY2xhc3M6W25kKGBjbG9zZS1pY29uYCxlLmNsb3NlSWNvblBvc2l0aW9uKSx6cl0sb25DbGljazpkfSxudWxsKX0seD0oKT0+dChgY2xvc2VkYCksUz0oZSx0KT0+aS52YWx1ZT8uc3dpcGVUbyhlLHQpO3JldHVybiBYKHtyZXNldFNjYWxlOigpPT57dmFyIGU7KGU9YS52YWx1ZSk9PW51bGx8fGUucmVzZXRTY2FsZSgpfSxzd2lwZVRvOlN9KSxNKHMpLGYoW2VyLHRyXSxzKSxmKCgpPT5lLnN0YXJ0UG9zaXRpb24sZT0+cCgrZSkpLGYoKCk9PmUuc2hvdyxuPT57bGV0e2ltYWdlczpyLHN0YXJ0UG9zaXRpb246aX09ZTtuPyhwKCtpKSxGKCgpPT57cygpLFMoK2kse2ltbWVkaWF0ZTohMH0pfSkpOnQoYGNsb3NlYCx7aW5kZXg6by5hY3RpdmUsdXJsOnJbby5hY3RpdmVdfSl9KSwoKT0+RShxaSxyKHtjbGFzczpbbmQoKSxlLmNsYXNzTmFtZV0sb3ZlcmxheUNsYXNzOltuZChgb3ZlcmxheWApLGUub3ZlcmxheUNsYXNzXSxvbkNsb3NlZDp4LCJvblVwZGF0ZTpzaG93Ijp1fSxSKGUscmQpKSx7ZGVmYXVsdDooKT0+W3koKSx2KCksbSgpLGgoKV19KX19KSxhZCxvZD17bG9vcDohMCxpbWFnZXM6W10sbWF4Wm9vbTozLG1pblpvb206MS8zLG9uU2NhbGU6dm9pZCAwLG9uQ2xvc2U6dm9pZCAwLG9uQ2hhbmdlOnZvaWQgMCx2ZXJ0aWNhbDohMSx0ZWxlcG9ydDpgYm9keWAsY2xhc3NOYW1lOmBgLHNob3dJbmRleDohMCxjbG9zZWFibGU6ITEsY2xvc2VJY29uOmBjbGVhcmAsdHJhbnNpdGlvbjp2b2lkIDAsYmVmb3JlQ2xvc2U6dm9pZCAwLGRvdWJsZVNjYWxlOiEwLG92ZXJsYXlTdHlsZTp2b2lkIDAsb3ZlcmxheUNsYXNzOnZvaWQgMCxzdGFydFBvc2l0aW9uOjAsc3dpcGVEdXJhdGlvbjozMDAsc2hvd0luZGljYXRvcnM6ITEsY2xvc2VPblBvcHN0YXRlOiEwLGNsb3NlT25DbGlja092ZXJsYXk6ITAsY2xvc2VJY29uUG9zaXRpb246YHRvcC1yaWdodGB9O2Z1bmN0aW9uIHNkKCl7KHtpbnN0YW5jZTphZH09WW8oe3NldHVwKCl7bGV0e3N0YXRlOmUsdG9nZ2xlOnR9PUpvKCksbj0oKT0+e2UuaW1hZ2VzPVtdfTtyZXR1cm4oKT0+RShpZCxyKGUse29uQ2xvc2VkOm4sIm9uVXBkYXRlOnNob3ciOnR9KSxudWxsKX19KSl9dmFyIGNkPShlLHQ9MCk9PntpZihadClyZXR1cm4gYWR8fHNkKCksZT1BcnJheS5pc0FycmF5KGUpP3tpbWFnZXM6ZSxzdGFydFBvc2l0aW9uOnR9OmUsYWQub3BlbihJKHt9LG9kLGUpKSxhZH0sbGQ9WShpZCk7ZnVuY3Rpb24gdWQoKXtyZXR1cm4gQXJyYXkoMjYpLmZpbGwoYGApLm1hcCgoZSx0KT0+U3RyaW5nLmZyb21DaGFyQ29kZSg2NSt0KSl9dmFyW2RkLGZkXT1KKGBpbmRleC1iYXJgKSxwZD17c3RpY2t5OkIsekluZGV4OnosdGVsZXBvcnQ6W1N0cmluZyxPYmplY3RdLGhpZ2hsaWdodENvbG9yOlN0cmluZyxzdGlja3lPZmZzZXRUb3A6ZG4oMCksaW5kZXhMaXN0Ont0eXBlOkFycmF5LGRlZmF1bHQ6dWR9fSxtZD1TeW1ib2woZGQpLGhkPVAoe25hbWU6ZGQscHJvcHM6cGQsZW1pdHM6W2BzZWxlY3RgLGBjaGFuZ2VgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCByPWIoKSxpPWIoKSxhPWIoYGApLG89RmkoKSxzPUJuKHIpLHtjaGlsZHJlbjpjLGxpbmtDaGlsZHJlbjpsfT1DbihtZCksdTtsKHtwcm9wczplfSk7bGV0IGQ9TigoKT0+e2lmKEwoZS56SW5kZXgpKXJldHVybnt6SW5kZXg6K2UuekluZGV4KzF9fSkscD1OKCgpPT57aWYoZS5oaWdobGlnaHRDb2xvcilyZXR1cm57Y29sb3I6ZS5oaWdobGlnaHRDb2xvcn19KSxtPSh0LG4pPT57Zm9yKGxldCByPWMubGVuZ3RoLTE7cj49MDtyLS0pe2xldCBpPXI+MD9uW3ItMV0uaGVpZ2h0OjA7aWYodCsoZS5zdGlja3k/aStlLnN0aWNreU9mZnNldFRvcDowKT49bltyXS50b3ApcmV0dXJuIHJ9cmV0dXJuLTF9LGg9ZT0+Yy5maW5kKHQ9PlN0cmluZyh0LmluZGV4KT09PWUpLGc9KCk9PntpZigkbihyKSlyZXR1cm47bGV0e3N0aWNreTp0LGluZGV4TGlzdDpufT1lLGk9R24ocy52YWx1ZSksbz1XKHMpLGw9Yy5tYXAoZT0+ZS5nZXRSZWN0KHMudmFsdWUsbykpLGQ9LTE7aWYodSl7bGV0IHQ9aCh1KTtpZih0KXtsZXQgbj10LmdldFJlY3Qocy52YWx1ZSxvKTtkPWUuc3RpY2t5JiZlLnN0aWNreU9mZnNldFRvcD9tKG4udG9wLWUuc3RpY2t5T2Zmc2V0VG9wLGwpOm0obi50b3AsbCl9fWVsc2UgZD1tKGksbCk7YS52YWx1ZT1uW2RdLHQmJmMuZm9yRWFjaCgodCxuKT0+e2xldHtzdGF0ZTpyLCRlbDphfT10O2lmKG49PT1kfHxuPT09ZC0xKXtsZXQgZT1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3IubGVmdD1lLmxlZnQsci53aWR0aD1lLndpZHRofWVsc2Ugci5sZWZ0PW51bGwsci53aWR0aD1udWxsO2lmKG49PT1kKXIuYWN0aXZlPSEwLHIudG9wPU1hdGgubWF4KGUuc3RpY2t5T2Zmc2V0VG9wLGxbbl0udG9wLWkpK28udG9wO2Vsc2UgaWYobj09PWQtMSYmdT09PWBgKXtsZXQgZT1sW2RdLnRvcC1pO3IuYWN0aXZlPWU+MCxyLnRvcD1lK28udG9wLWxbbl0uaGVpZ2h0fWVsc2Ugci5hY3RpdmU9ITF9KSx1PWBgfSxfPSgpPT57RihnKX07Ryhgc2Nyb2xsYCxnLHt0YXJnZXQ6cyxwYXNzaXZlOiEwfSksTShfKSxmKCgpPT5lLmluZGV4TGlzdCxfKSxmKGEsZT0+e2UmJnQoYGNoYW5nZWAsZSl9KTtsZXQgdj0oKT0+ZS5pbmRleExpc3QubWFwKGU9PntsZXQgdD1lPT09YS52YWx1ZTtyZXR1cm4gRShgc3BhbmAse2NsYXNzOmZkKGBpbmRleGAse2FjdGl2ZTp0fSksc3R5bGU6dD9wLnZhbHVlOnZvaWQgMCwiZGF0YS1pbmRleCI6ZX0sW2VdKX0pLHk9bj0+e3U9U3RyaW5nKG4pO2xldCByPWgodSk7aWYocil7bGV0IG49R24ocy52YWx1ZSksaT1XKHMpLHtvZmZzZXRIZWlnaHQ6YX09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2lmKHIuJGVsLnNjcm9sbEludG9WaWV3KCksbj09PWEtaS5oZWlnaHQpe2coKTtyZXR1cm59ZS5zdGlja3kmJmUuc3RpY2t5T2Zmc2V0VG9wJiYocW4oKT09PWEtaS5oZWlnaHQ/Sm4ocW4oKSk6Sm4ocW4oKS1lLnN0aWNreU9mZnNldFRvcCkpLHQoYHNlbGVjdGAsci5pbmRleCl9fSx4PWU9PntsZXR7aW5kZXg6dH09ZS5kYXRhc2V0O3QmJnkodCl9LFM9ZT0+e3goZS50YXJnZXQpfSxDLHc9ZT0+e2lmKG8ubW92ZShlKSxvLmlzVmVydGljYWwoKSl7SyhlKTtsZXR7Y2xpZW50WDp0LGNsaWVudFk6bn09ZS50b3VjaGVzWzBdLHI9ZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh0LG4pO2lmKHIpe2xldHtpbmRleDplfT1yLmRhdGFzZXQ7ZSYmQyE9PWUmJihDPWUseChyKSl9fX0sVD0oKT0+RShgZGl2YCx7cmVmOmksY2xhc3M6ZmQoYHNpZGViYXJgKSxzdHlsZTpkLnZhbHVlLG9uQ2xpY2s6UyxvblRvdWNoc3RhcnRQYXNzaXZlOm8uc3RhcnR9LFt2KCldKTtyZXR1cm4gWCh7c2Nyb2xsVG86eX0pLEcoYHRvdWNobW92ZWAsdyx7dGFyZ2V0Oml9KSwoKT0+RShgZGl2YCx7cmVmOnIsY2xhc3M6ZmQoKX0sW2UudGVsZXBvcnQ/RShmZSx7dG86ZS50ZWxlcG9ydH0se2RlZmF1bHQ6KCk9PltUKCldfSk6VCgpLG4uZGVmYXVsdD8uY2FsbChuKV0pfX0pLFtnZCxfZF09SihgaW5kZXgtYW5jaG9yYCksdmQ9WShQKHtuYW1lOmdkLHByb3BzOntpbmRleDp6fSxzZXR1cChlLHtzbG90czp0fSl7bGV0IG49Yyh7dG9wOjAsbGVmdDpudWxsLHJlY3Q6e3RvcDowLGhlaWdodDowfSx3aWR0aDpudWxsLGFjdGl2ZTohMX0pLHI9YigpLHtwYXJlbnQ6aX09eW4obWQpO2lmKCFpKXJldHVybjtsZXQgYT0oKT0+bi5hY3RpdmUmJmkucHJvcHMuc3RpY2t5LG89TigoKT0+e2xldHt6SW5kZXg6ZSxoaWdobGlnaHRDb2xvcjp0fT1pLnByb3BzO2lmKGEoKSlyZXR1cm4gSShhcihlKSx7bGVmdDpuLmxlZnQ/YCR7bi5sZWZ0fXB4YDp2b2lkIDAsd2lkdGg6bi53aWR0aD9gJHtuLndpZHRofXB4YDp2b2lkIDAsdHJhbnNmb3JtOm4udG9wP2B0cmFuc2xhdGUzZCgwLCAke24udG9wfXB4LCAwKWA6dm9pZCAwLGNvbG9yOnR9KX0pO3JldHVybiBYKHtzdGF0ZTpuLGdldFJlY3Q6KGUsdCk9PntsZXQgaT1XKHIpO3JldHVybiBuLnJlY3QuaGVpZ2h0PWkuaGVpZ2h0LGU9PT13aW5kb3d8fGU9PT1kb2N1bWVudC5ib2R5P24ucmVjdC50b3A9aS50b3ArcW4oKTpuLnJlY3QudG9wPWkudG9wK0duKGUpLXQudG9wLG4ucmVjdH19KSwoKT0+e2xldCBpPWEoKTtyZXR1cm4gRShgZGl2YCx7cmVmOnIsc3R5bGU6e2hlaWdodDppP2Ake24ucmVjdC5oZWlnaHR9cHhgOnZvaWQgMH19LFtFKGBkaXZgLHtzdHlsZTpvLnZhbHVlLGNsYXNzOltfZCh7c3RpY2t5Oml9KSx7W0ZyXTppfV19LFt0LmRlZmF1bHQ/dC5kZWZhdWx0KCk6ZS5pbmRleF0pXSl9fX0pKSx5ZD1ZKGhkKSxbYmQseGQsU2RdPUooYGxpc3RgKSxDZD1ZKFAoe25hbWU6YmQscHJvcHM6e2Vycm9yOkJvb2xlYW4sb2Zmc2V0OkgoMzAwKSxsb2FkaW5nOkJvb2xlYW4sZGlzYWJsZWQ6Qm9vbGVhbixmaW5pc2hlZDpCb29sZWFuLHNjcm9sbGVyOk9iamVjdCxlcnJvclRleHQ6U3RyaW5nLGRpcmVjdGlvbjpVKGBkb3duYCksbG9hZGluZ1RleHQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6YGB9LGZpbmlzaGVkVGV4dDpTdHJpbmcsaW1tZWRpYXRlQ2hlY2s6Qn0sZW1pdHM6W2Bsb2FkYCxgdXBkYXRlOmVycm9yYCxgdXBkYXRlOmxvYWRpbmdgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCByPWIoZS5sb2FkaW5nKSxpPWIoKSxhPWIoKSxvPXFhKCkscz1CbihpKSxjPU4oKCk9PmUuc2Nyb2xsZXJ8fHMudmFsdWUpLGw9KCk9PntGKCgpPT57aWYoci52YWx1ZXx8ZS5maW5pc2hlZHx8ZS5kaXNhYmxlZHx8ZS5lcnJvcnx8bz8udmFsdWU9PT0hMSlyZXR1cm47bGV0e2RpcmVjdGlvbjpufT1lLHM9K2Uub2Zmc2V0LGw9VyhjKTtpZighbC5oZWlnaHR8fCRuKGkpKXJldHVybjtsZXQgdT0hMSxkPVcoYSk7dT1uPT09YHVwYD9sLnRvcC1kLnRvcDw9czpkLmJvdHRvbS1sLmJvdHRvbTw9cyx1JiYoci52YWx1ZT0hMCx0KGB1cGRhdGU6bG9hZGluZ2AsITApLHQoYGxvYWRgKSl9KX0sdT0oKT0+e2lmKGUuZmluaXNoZWQpe2xldCB0PW4uZmluaXNoZWQ/bi5maW5pc2hlZCgpOmUuZmluaXNoZWRUZXh0O2lmKHQpcmV0dXJuIEUoYGRpdmAse2NsYXNzOnhkKGBmaW5pc2hlZC10ZXh0YCl9LFt0XSl9fSxkPSgpPT57dChgdXBkYXRlOmVycm9yYCwhMSksbCgpfSxwPSgpPT57aWYoZS5lcnJvcil7bGV0IHQ9bi5lcnJvcj9uLmVycm9yKCk6ZS5lcnJvclRleHQ7aWYodClyZXR1cm4gRShgZGl2YCx7cm9sZTpgYnV0dG9uYCxjbGFzczp4ZChgZXJyb3ItdGV4dGApLHRhYmluZGV4OjAsb25DbGljazpkfSxbdF0pfX0sbT0oKT0+e2lmKHIudmFsdWUmJiFlLmZpbmlzaGVkJiYhZS5kaXNhYmxlZClyZXR1cm4gRShgZGl2YCx7Y2xhc3M6eGQoYGxvYWRpbmdgKX0sW24ubG9hZGluZz9uLmxvYWRpbmcoKTplLmxvYWRpbmdUZXh0IT1udWxsJiZFKFNpLHtjbGFzczp4ZChgbG9hZGluZy1pY29uYCl9LHtkZWZhdWx0OigpPT5bZS5sb2FkaW5nVGV4dHx8U2QoYGxvYWRpbmdgKV19KV0pfTtyZXR1cm4gZigoKT0+W2UubG9hZGluZyxlLmZpbmlzaGVkLGUuZXJyb3JdLGwpLG8mJmYobyxlPT57ZSYmbCgpfSksc2UoKCk9PntyLnZhbHVlPWUubG9hZGluZ30pLE0oKCk9PntlLmltbWVkaWF0ZUNoZWNrJiZsKCl9KSxYKHtjaGVjazpsfSksRyhgc2Nyb2xsYCxsLHt0YXJnZXQ6YyxwYXNzaXZlOiEwfSksKCk9PntsZXQgdD1uLmRlZmF1bHQ/LmNhbGwobiksbz1FKGBkaXZgLHtyZWY6YSxjbGFzczp4ZChgcGxhY2Vob2xkZXJgKX0sbnVsbCk7cmV0dXJuIEUoYGRpdmAse3JlZjppLHJvbGU6YGZlZWRgLGNsYXNzOnhkKCksImFyaWEtYnVzeSI6ci52YWx1ZX0sW2UuZGlyZWN0aW9uPT09YGRvd25gP3Q6byxtKCksdSgpLHAoKSxlLmRpcmVjdGlvbj09PWB1cGA/dDpvXSl9fX0pKSxbd2QsVGRdPUooYG5hdi1iYXJgKSxFZD1ZKFAoe25hbWU6d2QscHJvcHM6e3RpdGxlOlN0cmluZyxmaXhlZDpCb29sZWFuLHpJbmRleDp6LGJvcmRlcjpCLGxlZnRUZXh0OlN0cmluZyxyaWdodFRleHQ6U3RyaW5nLGxlZnREaXNhYmxlZDpCb29sZWFuLHJpZ2h0RGlzYWJsZWQ6Qm9vbGVhbixsZWZ0QXJyb3c6Qm9vbGVhbixwbGFjZWhvbGRlcjpCb29sZWFuLHNhZmVBcmVhSW5zZXRUb3A6Qm9vbGVhbixjbGlja2FibGU6Qn0sZW1pdHM6W2BjbGlja0xlZnRgLGBjbGlja1JpZ2h0YF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXQgcj1iKCksaT1LcihyLFRkKSxhPW49PntlLmxlZnREaXNhYmxlZHx8dChgY2xpY2tMZWZ0YCxuKX0sbz1uPT57ZS5yaWdodERpc2FibGVkfHx0KGBjbGlja1JpZ2h0YCxuKX0scz0oKT0+bi5sZWZ0P24ubGVmdCgpOltlLmxlZnRBcnJvdyYmRShaLHtjbGFzczpUZChgYXJyb3dgKSxuYW1lOmBhcnJvdy1sZWZ0YH0sbnVsbCksZS5sZWZ0VGV4dCYmRShgc3BhbmAse2NsYXNzOlRkKGB0ZXh0YCl9LFtlLmxlZnRUZXh0XSldLGM9KCk9Pm4ucmlnaHQ/bi5yaWdodCgpOkUoYHNwYW5gLHtjbGFzczpUZChgdGV4dGApfSxbZS5yaWdodFRleHRdKSxsPSgpPT57bGV0e3RpdGxlOnQsZml4ZWQ6aSxib3JkZXI6bCx6SW5kZXg6dX09ZSxkPWFyKHUpLGY9ZS5sZWZ0QXJyb3d8fGUubGVmdFRleHR8fG4ubGVmdCxwPWUucmlnaHRUZXh0fHxuLnJpZ2h0O3JldHVybiBFKGBkaXZgLHtyZWY6cixzdHlsZTpkLGNsYXNzOltUZCh7Zml4ZWQ6aX0pLHtbRnJdOmwsInZhbi1zYWZlLWFyZWEtdG9wIjplLnNhZmVBcmVhSW5zZXRUb3B9XX0sW0UoYGRpdmAse2NsYXNzOlRkKGBjb250ZW50YCl9LFtmJiZFKGBkaXZgLHtjbGFzczpbVGQoYGxlZnRgLHtkaXNhYmxlZDplLmxlZnREaXNhYmxlZH0pLGUuY2xpY2thYmxlJiYhZS5sZWZ0RGlzYWJsZWQ/YHZhbi1oYXB0aWNzLWZlZWRiYWNrYDpgYF0sb25DbGljazphfSxbcygpXSksRShgZGl2YCx7Y2xhc3M6W1RkKGB0aXRsZWApLGB2YW4tZWxsaXBzaXNgXX0sW24udGl0bGU/bi50aXRsZSgpOnRdKSxwJiZFKGBkaXZgLHtjbGFzczpbVGQoYHJpZ2h0YCx7ZGlzYWJsZWQ6ZS5yaWdodERpc2FibGVkfSksZS5jbGlja2FibGUmJiFlLnJpZ2h0RGlzYWJsZWQ/YHZhbi1oYXB0aWNzLWZlZWRiYWNrYDpgYF0sb25DbGljazpvfSxbYygpXSldKV0pfTtyZXR1cm4oKT0+ZS5maXhlZCYmZS5wbGFjZWhvbGRlcj9pKGwpOmwoKX19KSksW0RkLE9kXT1KKGBub3RpY2UtYmFyYCksa2Q9WShQKHtuYW1lOkRkLHByb3BzOnt0ZXh0OlN0cmluZyxtb2RlOlN0cmluZyxjb2xvcjpTdHJpbmcsZGVsYXk6SCgxKSxzcGVlZDpIKDYwKSxsZWZ0SWNvbjpTdHJpbmcsd3JhcGFibGU6Qm9vbGVhbixiYWNrZ3JvdW5kOlN0cmluZyxzY3JvbGxhYmxlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfX0sZW1pdHM6W2BjbG9zZWAsYHJlcGxheWBdLHNldHVwKGUse2VtaXQ6dCxzbG90czpyfSl7bGV0IGk9MCxhPTAsbyxzPWIoKSxsPWIoKSx1PWMoe3Nob3c6ITAsb2Zmc2V0OjAsZHVyYXRpb246MH0pLGQ9KCk9PntpZihyW2BsZWZ0LWljb25gXSlyZXR1cm4gcltgbGVmdC1pY29uYF0oKTtpZihlLmxlZnRJY29uKXJldHVybiBFKFose2NsYXNzOk9kKGBsZWZ0LWljb25gKSxuYW1lOmUubGVmdEljb259LG51bGwpfSxwPSgpPT57aWYoZS5tb2RlPT09YGNsb3NlYWJsZWApcmV0dXJuYGNyb3NzYDtpZihlLm1vZGU9PT1gbGlua2ApcmV0dXJuYGFycm93YH0sbT1uPT57ZS5tb2RlPT09YGNsb3NlYWJsZWAmJih1LnNob3c9ITEsdChgY2xvc2VgLG4pKX0saD0oKT0+e2lmKHJbYHJpZ2h0LWljb25gXSlyZXR1cm4gcltgcmlnaHQtaWNvbmBdKCk7bGV0IGU9cCgpO2lmKGUpcmV0dXJuIEUoWix7bmFtZTplLGNsYXNzOk9kKGByaWdodC1pY29uYCksb25DbGljazptfSxudWxsKX0sZz0oKT0+e3Uub2Zmc2V0PWksdS5kdXJhdGlvbj0wLHBuKCgpPT57aG4oKCk9Pnt1Lm9mZnNldD0tYSx1LmR1cmF0aW9uPShhK2kpLytlLnNwZWVkLHQoYHJlcGxheWApfSl9KX0sXz0oKT0+e2xldCB0PWUuc2Nyb2xsYWJsZT09PSExJiYhZS53cmFwYWJsZSxuPXt0cmFuc2Zvcm06dS5vZmZzZXQ/YHRyYW5zbGF0ZVgoJHt1Lm9mZnNldH1weClgOmBgLHRyYW5zaXRpb25EdXJhdGlvbjpgJHt1LmR1cmF0aW9ufXNgfTtyZXR1cm4gRShgZGl2YCx7cmVmOnMscm9sZTpgbWFycXVlZWAsY2xhc3M6T2QoYHdyYXBgKX0sW0UoYGRpdmAse3JlZjpsLHN0eWxlOm4sY2xhc3M6W09kKGBjb250ZW50YCkseyJ2YW4tZWxsaXBzaXMiOnR9XSxvblRyYW5zaXRpb25lbmQ6Z30sW3IuZGVmYXVsdD9yLmRlZmF1bHQoKTplLnRleHRdKV0pfSx2PSgpPT57bGV0e2RlbGF5OnQsc3BlZWQ6bixzY3JvbGxhYmxlOnJ9PWUsYz1MKHQpP3QqMWUzOjA7aT0wLGE9MCx1Lm9mZnNldD0wLHUuZHVyYXRpb249MCxjbGVhclRpbWVvdXQobyksbz1zZXRUaW1lb3V0KCgpPT57aWYoIXMudmFsdWV8fCFsLnZhbHVlfHxyPT09ITEpcmV0dXJuO2xldCBlPVcocykud2lkdGgsdD1XKGwpLndpZHRoOyhyfHx0PmUpJiZobigoKT0+e2k9ZSxhPXQsdS5vZmZzZXQ9LWEsdS5kdXJhdGlvbj1hLytufSl9LGMpfTtyZXR1cm4gV3Iodiksam4odiksRyhgcGFnZXNob3dgLHYpLFgoe3Jlc2V0OnZ9KSxmKCgpPT5bZS50ZXh0LGUuc2Nyb2xsYWJsZV0sdiksKCk9PntsZXR7Y29sb3I6dCx3cmFwYWJsZTpyLGJhY2tncm91bmQ6aX09ZTtyZXR1cm4gbihFKGBkaXZgLHtyb2xlOmBhbGVydGAsY2xhc3M6T2Qoe3dyYXBhYmxlOnJ9KSxzdHlsZTp7Y29sb3I6dCxiYWNrZ3JvdW5kOml9fSxbZCgpLF8oKSxoKCldKSxbW2l0LHUuc2hvd11dKX19fSkpLFtBZCxqZF09Sihgbm90aWZ5YCksTWQ9W2Bsb2NrU2Nyb2xsYCxgcG9zaXRpb25gLGBzaG93YCxgdGVsZXBvcnRgLGB6SW5kZXhgXSxOZD1ZKFAoe25hbWU6QWQscHJvcHM6SSh7fSxNaSx7dHlwZTpVKGBkYW5nZXJgKSxjb2xvcjpTdHJpbmcsbWVzc2FnZTp6LHBvc2l0aW9uOlUoYHRvcGApLGNsYXNzTmFtZTpudWxsLGJhY2tncm91bmQ6U3RyaW5nLGxvY2tTY3JvbGw6Qm9vbGVhbn0pLGVtaXRzOltgdXBkYXRlOnNob3dgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCBpPWU9PnQoYHVwZGF0ZTpzaG93YCxlKTtyZXR1cm4oKT0+RShxaSxyKHtjbGFzczpbamQoW2UudHlwZV0pLGUuY2xhc3NOYW1lXSxzdHlsZTp7Y29sb3I6ZS5jb2xvcixiYWNrZ3JvdW5kOmUuYmFja2dyb3VuZH0sb3ZlcmxheTohMSxkdXJhdGlvbjouMiwib25VcGRhdGU6c2hvdyI6aX0sUihlLE1kKSkse2RlZmF1bHQ6KCk9PltuLmRlZmF1bHQ/bi5kZWZhdWx0KCk6ZS5tZXNzYWdlXX0pfX0pKSxbUGQsRmRdPUooYGtleWApLElkPUUoYHN2Z2Ase2NsYXNzOkZkKGBjb2xsYXBzZS1pY29uYCksdmlld0JveDpgMCAwIDMwIDI0YH0sW0UoYHBhdGhgLHtkOmBNMjYgMTNoLTJ2Mmgydi0yem0tOC0zaDJWOGgtMnYyem0yLTRoMlY0aC0ydjJ6bTIgNGg0VjRoLTJ2NGgtMnYyem0tNyAxNCAzLTNoLTZsMyAzek02IDEzSDR2Mmgydi0yem0xNiAwSDh2MmgxNHYtMnptLTEyLTNoMlY4aC0ydjJ6TTI4IDBsMSAxIDEgMXYxNWwtMSAySDFsLTEtMlYybDEtMSAxLTF6bTAgMkgydjE1aDI2VjJ6TTYgNHYySDRWNHptMTAgMmgyVjRoLTJ2MnpNOCA5djFINFY4em04IDB2MWgtMlY4em0tNi01djJIOFY0em00IDB2MmgtMlY0emAsZmlsbDpgY3VycmVudENvbG9yYH0sbnVsbCldKSxMZD1FKGBzdmdgLHtjbGFzczpGZChgZGVsZXRlLWljb25gKSx2aWV3Qm94OmAwIDAgMzIgMjJgfSxbRShgcGF0aGAse2Q6YE0yOCAwYTQgNCAwIDAgMSA0IDR2MTRhNCA0IDAgMCAxLTQgNEgxMC40YTIgMiAwIDAgMS0xLjQtLjZMMSAxMy4xYy0uNi0uNS0uOS0xLjMtLjktMiAwLTEgLjMtMS43LjktMi4yTDkgLjZhMiAyIDAgMCAxIDEuNC0uNnptMCAySDEwLjRsLTguMiA4LjNhMSAxIDAgMCAwLS4zLjdjMCAuMy4xLjUuMy43bDguMiA4LjRIMjhhMiAyIDAgMCAwIDItMlY0YzAtMS4xLS45LTItMi0yem0tNSA0YTEgMSAwIDAgMSAuNy4zIDEgMSAwIDAgMSAwIDEuNEwyMC40IDExbDMuMyAzLjNjLjIuMi4zLjUuMy43IDAgLjMtLjEuNS0uMy43YTEgMSAwIDAgMS0uNy4zIDEgMSAwIDAgMS0uNy0uM0wxOSAxMi40bC0zLjQgMy4zYTEgMSAwIDAgMS0uNi4zIDEgMSAwIDAgMS0uNy0uMyAxIDEgMCAwIDEtLjMtLjdjMC0uMi4xLS41LjMtLjdsMy4zLTMuMy0zLjMtMy4zQTEgMSAwIDAgMSAxNCA3YzAtLjMuMS0uNS4zLS43QTEgMSAwIDAgMSAxNSA2YTEgMSAwIDAgMSAuNi4zTDE5IDkuNmwzLjMtMy4zQTEgMSAwIDAgMSAyMyA2emAsZmlsbDpgY3VycmVudENvbG9yYH0sbnVsbCldKSxSZD1QKHtuYW1lOlBkLHByb3BzOnt0eXBlOlN0cmluZyx0ZXh0OnosY29sb3I6U3RyaW5nLHdpZGVyOkJvb2xlYW4sbGFyZ2U6Qm9vbGVhbixsb2FkaW5nOkJvb2xlYW59LGVtaXRzOltgcHJlc3NgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCByPWIoITEpLGk9RmkoKSxhPWU9PntpLnN0YXJ0KGUpLHIudmFsdWU9ITB9LG89ZT0+e2kubW92ZShlKSxpLmRpcmVjdGlvbi52YWx1ZSYmKHIudmFsdWU9ITEpfSxzPWk9PntyLnZhbHVlJiYobi5kZWZhdWx0fHxLKGkpLHIudmFsdWU9ITEsdChgcHJlc3NgLGUudGV4dCxlLnR5cGUpKX0sYz0oKT0+e2lmKGUubG9hZGluZylyZXR1cm4gRShTaSx7Y2xhc3M6RmQoYGxvYWRpbmctaWNvbmApfSxudWxsKTtsZXQgdD1uLmRlZmF1bHQ/bi5kZWZhdWx0KCk6ZS50ZXh0O3N3aXRjaChlLnR5cGUpe2Nhc2VgZGVsZXRlYDpyZXR1cm4gdHx8TGQ7Y2FzZWBleHRyYWA6cmV0dXJuIHR8fElkO2RlZmF1bHQ6cmV0dXJuIHR9fTtyZXR1cm4oKT0+RShgZGl2YCx7Y2xhc3M6RmQoYHdyYXBwZXJgLHt3aWRlcjplLndpZGVyfSksb25Ub3VjaHN0YXJ0UGFzc2l2ZTphLG9uVG91Y2htb3ZlUGFzc2l2ZTpvLG9uVG91Y2hlbmQ6cyxvblRvdWNoY2FuY2VsOnN9LFtFKGBkaXZgLHtyb2xlOmBidXR0b25gLHRhYmluZGV4OjAsY2xhc3M6RmQoW2UuY29sb3Ise2xhcmdlOmUubGFyZ2UsYWN0aXZlOnIudmFsdWUsZGVsZXRlOmUudHlwZT09PWBkZWxldGVgfV0pfSxbYygpXSldKX19KSxbemQsQmRdPUooYG51bWJlci1rZXlib2FyZGApLFZkPXtzaG93OkJvb2xlYW4sdGl0bGU6U3RyaW5nLHRoZW1lOlUoYGRlZmF1bHRgKSx6SW5kZXg6eix0ZWxlcG9ydDpbU3RyaW5nLE9iamVjdF0sbWF4bGVuZ3RoOkgoMS8wKSxtb2RlbFZhbHVlOlUoYGApLHRyYW5zaXRpb246QixibHVyT25DbG9zZTpCLHNob3dEZWxldGVLZXk6QixyYW5kb21LZXlPcmRlcjpCb29sZWFuLGNsb3NlQnV0dG9uVGV4dDpTdHJpbmcsZGVsZXRlQnV0dG9uVGV4dDpTdHJpbmcsY2xvc2VCdXR0b25Mb2FkaW5nOkJvb2xlYW4saGlkZU9uQ2xpY2tPdXRzaWRlOkIsc2FmZUFyZWFJbnNldEJvdHRvbTpCLGV4dHJhS2V5Ont0eXBlOltTdHJpbmcsQXJyYXldLGRlZmF1bHQ6YGB9fTtmdW5jdGlvbiBIZChlKXtmb3IobGV0IHQ9ZS5sZW5ndGgtMTt0PjA7dC0tKXtsZXQgbj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKHQrMSkpLHI9ZVt0XTtlW3RdPWVbbl0sZVtuXT1yfXJldHVybiBlfXZhciBVZD1ZKFAoe25hbWU6emQsaW5oZXJpdEF0dHJzOiExLHByb3BzOlZkLGVtaXRzOltgc2hvd2AsYGhpZGVgLGBibHVyYCxgaW5wdXRgLGBjbG9zZWAsYGRlbGV0ZWAsYHVwZGF0ZTptb2RlbFZhbHVlYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOmksYXR0cnM6YX0pe2xldCBvPWIoKSxzPSgpPT57bGV0IHQ9QXJyYXkoOSkuZmlsbChgYCkubWFwKChlLHQpPT4oe3RleHQ6dCsxfSkpO3JldHVybiBlLnJhbmRvbUtleU9yZGVyJiZIZCh0KSx0fSxjPSgpPT5bLi4ucygpLHt0ZXh0OmUuZXh0cmFLZXksdHlwZTpgZXh0cmFgfSx7dGV4dDowfSx7dGV4dDplLnNob3dEZWxldGVLZXk/ZS5kZWxldGVCdXR0b25UZXh0OmBgLHR5cGU6ZS5zaG93RGVsZXRlS2V5P2BkZWxldGVgOmBgfV0sbD0oKT0+e2xldCB0PXMoKSx7ZXh0cmFLZXk6bn09ZSxyPUFycmF5LmlzQXJyYXkobik/bjpbbl07cmV0dXJuIHIubGVuZ3RoPT09MD90LnB1c2goe3RleHQ6MCx3aWRlcjohMH0pOnIubGVuZ3RoPT09MT90LnB1c2goe3RleHQ6MCx3aWRlcjohMH0se3RleHQ6clswXSx0eXBlOmBleHRyYWB9KTpyLmxlbmd0aD09PTImJnQucHVzaCh7dGV4dDpyWzBdLHR5cGU6YGV4dHJhYH0se3RleHQ6MH0se3RleHQ6clsxXSx0eXBlOmBleHRyYWB9KSx0fSx1PU4oKCk9PmUudGhlbWU9PT1gY3VzdG9tYD9sKCk6YygpKSxkPSgpPT57ZS5zaG93JiZ0KGBibHVyYCl9LHA9KCk9Pnt0KGBjbG9zZWApLGUuYmx1ck9uQ2xvc2UmJmQoKX0sbT0oKT0+dChlLnNob3c/YHNob3dgOmBoaWRlYCksaD0obixyKT0+e2lmKG49PT1gYCl7cj09PWBleHRyYWAmJmQoKTtyZXR1cm59bGV0IGk9ZS5tb2RlbFZhbHVlO3I9PT1gZGVsZXRlYD8odChgZGVsZXRlYCksdChgdXBkYXRlOm1vZGVsVmFsdWVgLGkuc2xpY2UoMCxpLmxlbmd0aC0xKSkpOnI9PT1gY2xvc2VgP3AoKTppLmxlbmd0aDwrZS5tYXhsZW5ndGgmJih0KGBpbnB1dGAsbiksdChgdXBkYXRlOm1vZGVsVmFsdWVgLGkrbikpfSxnPSgpPT57bGV0e3RpdGxlOnQsdGhlbWU6bixjbG9zZUJ1dHRvblRleHQ6cn09ZSxhPWlbYHRpdGxlLWxlZnRgXSxvPXImJm49PT0iZGVmYXVsdCI7aWYodHx8b3x8YSlyZXR1cm4gRShgZGl2YCx7Y2xhc3M6QmQoYGhlYWRlcmApfSxbYSYmRShgc3BhbmAse2NsYXNzOkJkKGB0aXRsZS1sZWZ0YCl9LFthKCldKSx0JiZFKGBoMmAse2NsYXNzOkJkKGB0aXRsZWApfSxbdF0pLG8mJkUoYGJ1dHRvbmAse3R5cGU6YGJ1dHRvbmAsY2xhc3M6W0JkKGBjbG9zZWApLGB2YW4taGFwdGljcy1mZWVkYmFja2BdLG9uQ2xpY2s6cH0sW3JdKV0pfSxfPSgpPT51LnZhbHVlLm1hcChlPT57bGV0IHQ9e307cmV0dXJuIGUudHlwZT09PWBkZWxldGVgJiYodC5kZWZhdWx0PWkuZGVsZXRlKSxlLnR5cGU9PT1gZXh0cmFgJiYodC5kZWZhdWx0PWlbYGV4dHJhLWtleWBdKSxFKFJkLHtrZXk6ZS50ZXh0LHRleHQ6ZS50ZXh0LHR5cGU6ZS50eXBlLHdpZGVyOmUud2lkZXIsY29sb3I6ZS5jb2xvcixvblByZXNzOmh9LHQpfSksdj0oKT0+e2lmKGUudGhlbWU9PT1gY3VzdG9tYClyZXR1cm4gRShgZGl2YCx7Y2xhc3M6QmQoYHNpZGViYXJgKX0sW2Uuc2hvd0RlbGV0ZUtleSYmRShSZCx7bGFyZ2U6ITAsdGV4dDplLmRlbGV0ZUJ1dHRvblRleHQsdHlwZTpgZGVsZXRlYCxvblByZXNzOmh9LHtkZWZhdWx0OmkuZGVsZXRlfSksRShSZCx7bGFyZ2U6ITAsdGV4dDplLmNsb3NlQnV0dG9uVGV4dCx0eXBlOmBjbG9zZWAsY29sb3I6YGJsdWVgLGxvYWRpbmc6ZS5jbG9zZUJ1dHRvbkxvYWRpbmcsb25QcmVzczpofSxudWxsKV0pfTtyZXR1cm4gZigoKT0+ZS5zaG93LG49PntlLnRyYW5zaXRpb258fHQobj9gc2hvd2A6YGhpZGVgKX0pLGUuaGlkZU9uQ2xpY2tPdXRzaWRlJiZNbihvLGQse2V2ZW50TmFtZTpgdG91Y2hzdGFydGB9KSwoKT0+e2xldCB0PWcoKSxpPUUoQmUse25hbWU6ZS50cmFuc2l0aW9uP2B2YW4tc2xpZGUtdXBgOmBgfSx7ZGVmYXVsdDooKT0+W24oRShgZGl2YCxyKHtyZWY6byxzdHlsZTphcihlLnpJbmRleCksY2xhc3M6QmQoe3VuZml0OiFlLnNhZmVBcmVhSW5zZXRCb3R0b20sIndpdGgtdGl0bGUiOiEhdH0pLG9uQW5pbWF0aW9uZW5kOm0sb25Ub3VjaHN0YXJ0UGFzc2l2ZTpRbn0sYSksW3QsRShgZGl2YCx7Y2xhc3M6QmQoYGJvZHlgKX0sW0UoYGRpdmAse2NsYXNzOkJkKGBrZXlzYCl9LFtfKCldKSx2KCldKV0pLFtbaXQsZS5zaG93XV0pXX0pO3JldHVybiBlLnRlbGVwb3J0P0UoZmUse3RvOmUudGVsZXBvcnR9LHtkZWZhdWx0OigpPT5baV19KTppfX19KSksW1dkLEdkLEtkXT1KKGBwYWdpbmF0aW9uYCkscWQ9KGUsdCxuKT0+KHtudW1iZXI6ZSx0ZXh0OnQsYWN0aXZlOm59KSxKZD1ZKFAoe25hbWU6V2QscHJvcHM6e21vZGU6VShgbXVsdGlgKSxwcmV2VGV4dDpTdHJpbmcsbmV4dFRleHQ6U3RyaW5nLHBhZ2VDb3VudDpIKDApLG1vZGVsVmFsdWU6ZG4oMCksdG90YWxJdGVtczpIKDApLHNob3dQYWdlU2l6ZTpIKDUpLGl0ZW1zUGVyUGFnZTpIKDEwKSxmb3JjZUVsbGlwc2VzOkJvb2xlYW4sc2hvd1ByZXZCdXR0b246QixzaG93TmV4dEJ1dHRvbjpCfSxlbWl0czpbYGNoYW5nZWAsYHVwZGF0ZTptb2RlbFZhbHVlYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXQgcj1OKCgpPT57bGV0e3BhZ2VDb3VudDp0LHRvdGFsSXRlbXM6bixpdGVtc1BlclBhZ2U6cn09ZSxpPSt0fHxNYXRoLmNlaWwobi8rcik7cmV0dXJuIE1hdGgubWF4KDEsaSl9KSxpPU4oKCk9PntsZXQgdD1bXSxuPXIudmFsdWUsaT0rZS5zaG93UGFnZVNpemUse21vZGVsVmFsdWU6YSxmb3JjZUVsbGlwc2VzOm99PWUscz0xLGM9bixsPWk8bjtsJiYocz1NYXRoLm1heChhLU1hdGguZmxvb3IoaS8yKSwxKSxjPXMraS0xLGM+biYmKGM9bixzPWMtaSsxKSk7Zm9yKGxldCBlPXM7ZTw9YztlKyspe2xldCBuPXFkKGUsZSxlPT09YSk7dC5wdXNoKG4pfWlmKGwmJmk+MCYmbyl7aWYocz4xKXtsZXQgZT1xZChzLTEsYC4uLmApO3QudW5zaGlmdChlKX1pZihjPG4pe2xldCBlPXFkKGMrMSxgLi4uYCk7dC5wdXNoKGUpfX1yZXR1cm4gdH0pLGE9KG4saSk9PntuPWdyKG4sMSxyLnZhbHVlKSxlLm1vZGVsVmFsdWUhPT1uJiYodChgdXBkYXRlOm1vZGVsVmFsdWVgLG4pLGkmJnQoYGNoYW5nZWAsbikpfTtfKCgpPT5hKGUubW9kZWxWYWx1ZSkpO2xldCBvPSgpPT5FKGBsaWAse2NsYXNzOkdkKGBwYWdlLWRlc2NgKX0sW24ucGFnZURlc2M/bi5wYWdlRGVzYygpOmAke2UubW9kZWxWYWx1ZX0vJHtyLnZhbHVlfWBdKSxzPSgpPT57bGV0e21vZGU6dCxtb2RlbFZhbHVlOnIsc2hvd1ByZXZCdXR0b246aX09ZTtpZighaSlyZXR1cm47bGV0IG89bltgcHJldi10ZXh0YF0scz1yPT09MTtyZXR1cm4gRShgbGlgLHtjbGFzczpbR2QoYGl0ZW1gLHtkaXNhYmxlZDpzLGJvcmRlcjp0PT09YHNpbXBsZWAscHJldjohMH0pLElyXX0sW0UoYGJ1dHRvbmAse3R5cGU6YGJ1dHRvbmAsZGlzYWJsZWQ6cyxvbkNsaWNrOigpPT5hKHItMSwhMCl9LFtvP28oKTplLnByZXZUZXh0fHxLZChgcHJldmApXSldKX0sYz0oKT0+e2xldHttb2RlOnQsbW9kZWxWYWx1ZTppLHNob3dOZXh0QnV0dG9uOm99PWU7aWYoIW8pcmV0dXJuO2xldCBzPW5bYG5leHQtdGV4dGBdLGM9aT09PXIudmFsdWU7cmV0dXJuIEUoYGxpYCx7Y2xhc3M6W0dkKGBpdGVtYCx7ZGlzYWJsZWQ6Yyxib3JkZXI6dD09PWBzaW1wbGVgLG5leHQ6ITB9KSxJcl19LFtFKGBidXR0b25gLHt0eXBlOmBidXR0b25gLGRpc2FibGVkOmMsb25DbGljazooKT0+YShpKzEsITApfSxbcz9zKCk6ZS5uZXh0VGV4dHx8S2QoYG5leHRgKV0pXSl9LGw9KCk9PmkudmFsdWUubWFwKGU9PkUoYGxpYCx7Y2xhc3M6W0dkKGBpdGVtYCx7YWN0aXZlOmUuYWN0aXZlLHBhZ2U6ITB9KSxJcl19LFtFKGBidXR0b25gLHt0eXBlOmBidXR0b25gLCJhcmlhLWN1cnJlbnQiOmUuYWN0aXZlfHx2b2lkIDAsb25DbGljazooKT0+YShlLm51bWJlciwhMCl9LFtuLnBhZ2U/bi5wYWdlKGUpOmUudGV4dF0pXSkpO3JldHVybigpPT5FKGBuYXZgLHtyb2xlOmBuYXZpZ2F0aW9uYCxjbGFzczpHZCgpfSxbRShgdWxgLHtjbGFzczpHZChgaXRlbXNgKX0sW3MoKSxlLm1vZGU9PT1gc2ltcGxlYD9vKCk6bCgpLGMoKV0pXSl9fSkpLFtZZCxYZF09SihgcGFzc3dvcmQtaW5wdXRgKSxaZD1ZKFAoe25hbWU6WWQscHJvcHM6e2luZm86U3RyaW5nLG1hc2s6Qix2YWx1ZTpVKGBgKSxndXR0ZXI6eixsZW5ndGg6SCg2KSxmb2N1c2VkOkJvb2xlYW4sZXJyb3JJbmZvOlN0cmluZ30sZW1pdHM6W2Bmb2N1c2BdLHNldHVwKGUse2VtaXQ6dH0pe2xldCBuPWU9PntlLnN0b3BQcm9wYWdhdGlvbigpLHQoYGZvY3VzYCxlKX0scj0oKT0+e2xldCB0PVtdLHttYXNrOm4sdmFsdWU6cixndXR0ZXI6aSxmb2N1c2VkOmF9PWUsbz0rZS5sZW5ndGg7Zm9yKGxldCBlPTA7ZTxvO2UrKyl7bGV0IG89cltlXSxzPWUhPT0wJiYhaSxjPWEmJmU9PT1yLmxlbmd0aCxsO2UhPT0wJiZpJiYobD17bWFyZ2luTGVmdDpxKGkpfSksdC5wdXNoKEUoYGxpYCx7Y2xhc3M6W3tbTnJdOnN9LFhkKGBpdGVtYCx7Zm9jdXM6Y30pXSxzdHlsZTpsfSxbbj9FKGBpYCx7c3R5bGU6e3Zpc2liaWxpdHk6bz9gdmlzaWJsZWA6YGhpZGRlbmB9fSxudWxsKTpvLGMmJkUoYGRpdmAse2NsYXNzOlhkKGBjdXJzb3JgKX0sbnVsbCldKSl9cmV0dXJuIHR9O3JldHVybigpPT57bGV0IHQ9ZS5lcnJvckluZm98fGUuaW5mbztyZXR1cm4gRShgZGl2YCx7Y2xhc3M6WGQoKX0sW0UoYHVsYCx7Y2xhc3M6W1hkKGBzZWN1cml0eWApLHtbSXJdOiFlLmd1dHRlcn1dLG9uVG91Y2hzdGFydFBhc3NpdmU6bn0sW3IoKV0pLHQmJkUoYGRpdmAse2NsYXNzOlhkKGUuZXJyb3JJbmZvP2BlcnJvci1pbmZvYDpgaW5mb2ApfSxbdF0pXSl9fX0pKSxRZD1ZKGNvKTtmdW5jdGlvbiAkZChlKXtpZihlPT1udWxsKXJldHVybiB3aW5kb3c7aWYoZS50b1N0cmluZygpIT09YFtvYmplY3QgV2luZG93XWApe3ZhciB0PWUub3duZXJEb2N1bWVudDtyZXR1cm4gdCYmdC5kZWZhdWx0Vmlld3x8d2luZG93fXJldHVybiBlfWZ1bmN0aW9uIGVmKGUpe3JldHVybiBlIGluc3RhbmNlb2YgJGQoZSkuRWxlbWVudHx8ZSBpbnN0YW5jZW9mIEVsZW1lbnR9ZnVuY3Rpb24gdGYoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiAkZChlKS5IVE1MRWxlbWVudHx8ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fWZ1bmN0aW9uIG5mKGUpe3JldHVybiB0eXBlb2YgU2hhZG93Um9vdD5gdWA/ITE6ZSBpbnN0YW5jZW9mICRkKGUpLlNoYWRvd1Jvb3R8fGUgaW5zdGFuY2VvZiBTaGFkb3dSb290fXZhciByZj1NYXRoLnJvdW5kO2Z1bmN0aW9uIGFmKCl7dmFyIGU9bmF2aWdhdG9yLnVzZXJBZ2VudERhdGE7cmV0dXJuIGUhPW51bGwmJmUuYnJhbmRzP2UuYnJhbmRzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5icmFuZCtgL2ArZS52ZXJzaW9ufSkuam9pbihgIGApOm5hdmlnYXRvci51c2VyQWdlbnR9ZnVuY3Rpb24gb2YoKXtyZXR1cm4hL14oKD8hY2hyb21lfGFuZHJvaWQpLikqc2FmYXJpL2kudGVzdChhZigpKX1mdW5jdGlvbiBzZihlLHQsbil7dD09PXZvaWQgMCYmKHQ9ITEpLG49PT12b2lkIDAmJihuPSExKTt2YXIgcj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9MSxhPTE7dCYmdGYoZSkmJihpPWUub2Zmc2V0V2lkdGg+MCYmcmYoci53aWR0aCkvZS5vZmZzZXRXaWR0aHx8MSxhPWUub2Zmc2V0SGVpZ2h0PjAmJnJmKHIuaGVpZ2h0KS9lLm9mZnNldEhlaWdodHx8MSk7dmFyIG89KGVmKGUpPyRkKGUpOndpbmRvdykudmlzdWFsVmlld3BvcnQscz0hb2YoKSYmbixjPShyLmxlZnQrKHMmJm8/by5vZmZzZXRMZWZ0OjApKS9pLGw9KHIudG9wKyhzJiZvP28ub2Zmc2V0VG9wOjApKS9hLHU9ci53aWR0aC9pLGQ9ci5oZWlnaHQvYTtyZXR1cm57d2lkdGg6dSxoZWlnaHQ6ZCx0b3A6bCxyaWdodDpjK3UsYm90dG9tOmwrZCxsZWZ0OmMseDpjLHk6bH19ZnVuY3Rpb24gY2YoZSl7dmFyIHQ9JGQoZSk7cmV0dXJue3Njcm9sbExlZnQ6dC5wYWdlWE9mZnNldCxzY3JvbGxUb3A6dC5wYWdlWU9mZnNldH19ZnVuY3Rpb24gbGYoZSl7cmV0dXJue3Njcm9sbExlZnQ6ZS5zY3JvbGxMZWZ0LHNjcm9sbFRvcDplLnNjcm9sbFRvcH19ZnVuY3Rpb24gdWYoZSl7cmV0dXJuIGU9PT0kZChlKXx8IXRmKGUpP2NmKGUpOmxmKGUpfWZ1bmN0aW9uIGRmKGUpe3JldHVybiBlPyhlLm5vZGVOYW1lfHxgYCkudG9Mb3dlckNhc2UoKTpudWxsfWZ1bmN0aW9uIGZmKGUpe3JldHVybigoZWYoZSk/ZS5vd25lckRvY3VtZW50OmUuZG9jdW1lbnQpfHx3aW5kb3cuZG9jdW1lbnQpLmRvY3VtZW50RWxlbWVudH1mdW5jdGlvbiBwZihlKXtyZXR1cm4gc2YoZmYoZSkpLmxlZnQrY2YoZSkuc2Nyb2xsTGVmdH1mdW5jdGlvbiBtZihlKXtyZXR1cm4gJGQoZSkuZ2V0Q29tcHV0ZWRTdHlsZShlKX1mdW5jdGlvbiBoZihlKXt2YXIgdD1tZihlKSxuPXQub3ZlcmZsb3cscj10Lm92ZXJmbG93WCxpPXQub3ZlcmZsb3dZO3JldHVybi9hdXRvfHNjcm9sbHxvdmVybGF5fGhpZGRlbi8udGVzdChuK2krcil9ZnVuY3Rpb24gZ2YoZSl7dmFyIHQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXJmKHQud2lkdGgpL2Uub2Zmc2V0V2lkdGh8fDEscj1yZih0LmhlaWdodCkvZS5vZmZzZXRIZWlnaHR8fDE7cmV0dXJuIG4hPT0xfHxyIT09MX1mdW5jdGlvbiBfZihlLHQsbil7bj09PXZvaWQgMCYmKG49ITEpO3ZhciByPXRmKHQpLGk9dGYodCkmJmdmKHQpLGE9ZmYodCksbz1zZihlLGksbikscz17c2Nyb2xsTGVmdDowLHNjcm9sbFRvcDowfSxjPXt4OjAseTowfTtyZXR1cm4ocnx8IXImJiFuKSYmKChkZih0KSE9PWBib2R5YHx8aGYoYSkpJiYocz11Zih0KSksdGYodCk/KGM9c2YodCwhMCksYy54Kz10LmNsaWVudExlZnQsYy55Kz10LmNsaWVudFRvcCk6YSYmKGMueD1wZihhKSkpLHt4Om8ubGVmdCtzLnNjcm9sbExlZnQtYy54LHk6by50b3Arcy5zY3JvbGxUb3AtYy55LHdpZHRoOm8ud2lkdGgsaGVpZ2h0Om8uaGVpZ2h0fX1mdW5jdGlvbiB2ZihlKXt2YXIgdD1zZihlKSxuPWUub2Zmc2V0V2lkdGgscj1lLm9mZnNldEhlaWdodDtyZXR1cm4gTWF0aC5hYnModC53aWR0aC1uKTw9MSYmKG49dC53aWR0aCksTWF0aC5hYnModC5oZWlnaHQtcik8PTEmJihyPXQuaGVpZ2h0KSx7eDplLm9mZnNldExlZnQseTplLm9mZnNldFRvcCx3aWR0aDpuLGhlaWdodDpyfX1mdW5jdGlvbiB5ZihlKXtyZXR1cm4gZGYoZSk9PT1gaHRtbGA/ZTplLmFzc2lnbmVkU2xvdHx8ZS5wYXJlbnROb2RlfHwobmYoZSk/ZS5ob3N0Om51bGwpfHxmZihlKX1mdW5jdGlvbiBiZihlKXtyZXR1cm5bYGh0bWxgLGBib2R5YCxgI2RvY3VtZW50YF0uaW5kZXhPZihkZihlKSk+PTA/ZS5vd25lckRvY3VtZW50LmJvZHk6dGYoZSkmJmhmKGUpP2U6YmYoeWYoZSkpfWZ1bmN0aW9uIHhmKGUsdCl7dD09PXZvaWQgMCYmKHQ9W10pO3ZhciBuPWJmKGUpLHI9bj09PWUub3duZXJEb2N1bWVudD8uYm9keSxpPSRkKG4pLGE9cj9baV0uY29uY2F0KGkudmlzdWFsVmlld3BvcnR8fFtdLGhmKG4pP246W10pOm4sbz10LmNvbmNhdChhKTtyZXR1cm4gcj9vOm8uY29uY2F0KHhmKHlmKGEpKSl9ZnVuY3Rpb24gU2YoZSl7cmV0dXJuW2B0YWJsZWAsYHRkYCxgdGhgXS5pbmRleE9mKGRmKGUpKT49MH1mdW5jdGlvbiBDZihlKXtyZXR1cm4hdGYoZSl8fG1mKGUpLnBvc2l0aW9uPT09YGZpeGVkYD9udWxsOmUub2Zmc2V0UGFyZW50fWZ1bmN0aW9uIHdmKGUpe3ZhciB0PS9maXJlZm94L2kudGVzdChhZigpKTtpZigvVHJpZGVudC9pLnRlc3QoYWYoKSkmJnRmKGUpJiZtZihlKS5wb3NpdGlvbj09PWBmaXhlZGApcmV0dXJuIG51bGw7dmFyIG49eWYoZSk7Zm9yKG5mKG4pJiYobj1uLmhvc3QpO3RmKG4pJiZbYGh0bWxgLGBib2R5YF0uaW5kZXhPZihkZihuKSk8MDspe3ZhciByPW1mKG4pO2lmKHIudHJhbnNmb3JtIT09YG5vbmVgfHxyLnBlcnNwZWN0aXZlIT09YG5vbmVgfHxyLmNvbnRhaW49PT1gcGFpbnRgfHxbYHRyYW5zZm9ybWAsYHBlcnNwZWN0aXZlYF0uaW5kZXhPZihyLndpbGxDaGFuZ2UpIT09LTF8fHQmJnIud2lsbENoYW5nZT09PWBmaWx0ZXJgfHx0JiZyLmZpbHRlciYmci5maWx0ZXIhPT1gbm9uZWApcmV0dXJuIG47bj1uLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gVGYoZSl7Zm9yKHZhciB0PSRkKGUpLG49Q2YoZSk7biYmU2YobikmJm1mKG4pLnBvc2l0aW9uPT09YHN0YXRpY2A7KW49Q2Yobik7cmV0dXJuIG4mJihkZihuKT09PWBodG1sYHx8ZGYobik9PT1gYm9keWAmJm1mKG4pLnBvc2l0aW9uPT09YHN0YXRpY2ApP3Q6bnx8d2YoZSl8fHR9dmFyIEVmPWB0b3BgLERmPWBib3R0b21gLE9mPWByaWdodGAsa2Y9YGxlZnRgLEFmPWBhdXRvYCxqZj1bRWYsRGYsT2Ysa2ZdLE1mPWBzdGFydGAsTmY9YGVuZGAsUGY9W10uY29uY2F0KGpmLFtBZl0pLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlLmNvbmNhdChbdCx0K2AtYCtNZix0K2AtYCtOZl0pfSxbXSksRmY9W2BiZWZvcmVSZWFkYCxgcmVhZGAsYGFmdGVyUmVhZGAsYGJlZm9yZU1haW5gLGBtYWluYCxgYWZ0ZXJNYWluYCxgYmVmb3JlV3JpdGVgLGB3cml0ZWAsYGFmdGVyV3JpdGVgXTtmdW5jdGlvbiBJZihlKXt2YXIgdD1uZXcgTWFwLG49bmV3IFNldCxyPVtdO2UuZm9yRWFjaChmdW5jdGlvbihlKXt0LnNldChlLm5hbWUsZSl9KTtmdW5jdGlvbiBpKGUpe24uYWRkKGUubmFtZSksW10uY29uY2F0KGUucmVxdWlyZXN8fFtdLGUucmVxdWlyZXNJZkV4aXN0c3x8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoIW4uaGFzKGUpKXt2YXIgcj10LmdldChlKTtyJiZpKHIpfX0pLHIucHVzaChlKX1yZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe24uaGFzKGUubmFtZSl8fGkoZSl9KSxyfWZ1bmN0aW9uIExmKGUpe3ZhciB0PUlmKGUpO3JldHVybiBGZi5yZWR1Y2UoZnVuY3Rpb24oZSxuKXtyZXR1cm4gZS5jb25jYXQodC5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUucGhhc2U9PT1ufSkpfSxbXSl9ZnVuY3Rpb24gUmYoZSl7dmFyIHQ7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR8fD1uZXcgUHJvbWlzZShmdW5jdGlvbihuKXtQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7dD12b2lkIDAsbihlKCkpfSl9KSx0fX1mdW5jdGlvbiB6ZihlKXt2YXIgdD1bLi4uYXJndW1lbnRzXS5zbGljZSgxKTtyZXR1cm5bXS5jb25jYXQodCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUucmVwbGFjZSgvJXMvLHQpfSxlKX12YXIgQmY9YFBvcHBlcjogbW9kaWZpZXIgIiVzIiBwcm92aWRlZCBhbiBpbnZhbGlkICVzIHByb3BlcnR5LCBleHBlY3RlZCAlcyBidXQgZ290ICVzYCxWZj1gUG9wcGVyOiBtb2RpZmllciAiJXMiIHJlcXVpcmVzICIlcyIsIGJ1dCAiJXMiIG1vZGlmaWVyIGlzIG5vdCBhdmFpbGFibGVgLEhmPVtgbmFtZWAsYGVuYWJsZWRgLGBwaGFzZWAsYGZuYCxgZWZmZWN0YCxgcmVxdWlyZXNgLGBvcHRpb25zYF07ZnVuY3Rpb24gVWYoZSl7ZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe1tdLmNvbmNhdChPYmplY3Qua2V5cyh0KSxIZikuZmlsdGVyKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbi5pbmRleE9mKGUpPT09dH0pLmZvckVhY2goZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2VgbmFtZWA6dHlwZW9mIHQubmFtZSE9YHN0cmluZ2AmJmNvbnNvbGUuZXJyb3IoemYoQmYsU3RyaW5nKHQubmFtZSksYCJuYW1lImAsYCJzdHJpbmciYCxgImArU3RyaW5nKHQubmFtZSkrYCJgKSk7YnJlYWs7Y2FzZWBlbmFibGVkYDp0eXBlb2YgdC5lbmFibGVkIT1gYm9vbGVhbmAmJmNvbnNvbGUuZXJyb3IoemYoQmYsdC5uYW1lLGAiZW5hYmxlZCJgLGAiYm9vbGVhbiJgLGAiYCtTdHJpbmcodC5lbmFibGVkKStgImApKTticmVhaztjYXNlYHBoYXNlYDpGZi5pbmRleE9mKHQucGhhc2UpPDAmJmNvbnNvbGUuZXJyb3IoemYoQmYsdC5uYW1lLGAicGhhc2UiYCxgZWl0aGVyIGArRmYuam9pbihgLCBgKSxgImArU3RyaW5nKHQucGhhc2UpK2AiYCkpO2JyZWFrO2Nhc2VgZm5gOnR5cGVvZiB0LmZuIT1gZnVuY3Rpb25gJiZjb25zb2xlLmVycm9yKHpmKEJmLHQubmFtZSxgImZuImAsYCJmdW5jdGlvbiJgLGAiYCtTdHJpbmcodC5mbikrYCJgKSk7YnJlYWs7Y2FzZWBlZmZlY3RgOnQuZWZmZWN0IT1udWxsJiZ0eXBlb2YgdC5lZmZlY3QhPWBmdW5jdGlvbmAmJmNvbnNvbGUuZXJyb3IoemYoQmYsdC5uYW1lLGAiZWZmZWN0ImAsYCJmdW5jdGlvbiJgLGAiYCtTdHJpbmcodC5mbikrYCJgKSk7YnJlYWs7Y2FzZWByZXF1aXJlc2A6dC5yZXF1aXJlcyE9bnVsbCYmIUFycmF5LmlzQXJyYXkodC5yZXF1aXJlcykmJmNvbnNvbGUuZXJyb3IoemYoQmYsdC5uYW1lLGAicmVxdWlyZXMiYCxgImFycmF5ImAsYCJgK1N0cmluZyh0LnJlcXVpcmVzKStgImApKTticmVhaztjYXNlYHJlcXVpcmVzSWZFeGlzdHNgOkFycmF5LmlzQXJyYXkodC5yZXF1aXJlc0lmRXhpc3RzKXx8Y29uc29sZS5lcnJvcih6ZihCZix0Lm5hbWUsYCJyZXF1aXJlc0lmRXhpc3RzImAsYCJhcnJheSJgLGAiYCtTdHJpbmcodC5yZXF1aXJlc0lmRXhpc3RzKStgImApKTticmVhaztjYXNlYG9wdGlvbnNgOmNhc2VgZGF0YWA6YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKGBQb3BwZXJKUzogYW4gaW52YWxpZCBwcm9wZXJ0eSBoYXMgYmVlbiBwcm92aWRlZCB0byB0aGUgImArdC5uYW1lK2AiIG1vZGlmaWVyLCB2YWxpZCBwcm9wZXJ0aWVzIGFyZSBgK0hmLm1hcChmdW5jdGlvbihlKXtyZXR1cm5gImArZStgImB9KS5qb2luKGAsIGApK2A7IGJ1dCAiYCtuK2AiIHdhcyBwcm92aWRlZC5gKX10LnJlcXVpcmVzJiZ0LnJlcXVpcmVzLmZvckVhY2goZnVuY3Rpb24obil7ZS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT1ufSk/P2NvbnNvbGUuZXJyb3IoemYoVmYsU3RyaW5nKHQubmFtZSksbixuKSl9KX0pfSl9ZnVuY3Rpb24gV2YoZSx0KXt2YXIgbj1uZXcgU2V0O3JldHVybiBlLmZpbHRlcihmdW5jdGlvbihlKXt2YXIgcj10KGUpO2lmKCFuLmhhcyhyKSlyZXR1cm4gbi5hZGQociksITB9KX1mdW5jdGlvbiBHZihlKXtyZXR1cm4gZS5zcGxpdChgLWApWzBdfWZ1bmN0aW9uIEtmKGUpe3ZhciB0PWUucmVkdWNlKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZVt0Lm5hbWVdO3JldHVybiBlW3QubmFtZV09bj9PYmplY3QuYXNzaWduKHt9LG4sdCx7b3B0aW9uczpPYmplY3QuYXNzaWduKHt9LG4ub3B0aW9ucyx0Lm9wdGlvbnMpLGRhdGE6T2JqZWN0LmFzc2lnbih7fSxuLmRhdGEsdC5kYXRhKX0pOnQsZX0se30pO3JldHVybiBPYmplY3Qua2V5cyh0KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KX1mdW5jdGlvbiBxZihlKXtyZXR1cm4gZS5zcGxpdChgLWApWzFdfWZ1bmN0aW9uIEpmKGUpe3JldHVybltgdG9wYCxgYm90dG9tYF0uaW5kZXhPZihlKT49MD9geGA6YHlgfWZ1bmN0aW9uIFlmKGUpe3ZhciB0PWUucmVmZXJlbmNlLG49ZS5lbGVtZW50LHI9ZS5wbGFjZW1lbnQsaT1yP0dmKHIpOm51bGwsYT1yP3FmKHIpOm51bGwsbz10LngrdC53aWR0aC8yLW4ud2lkdGgvMixzPXQueSt0LmhlaWdodC8yLW4uaGVpZ2h0LzIsYztzd2l0Y2goaSl7Y2FzZSBFZjpjPXt4Om8seTp0Lnktbi5oZWlnaHR9O2JyZWFrO2Nhc2UgRGY6Yz17eDpvLHk6dC55K3QuaGVpZ2h0fTticmVhaztjYXNlIE9mOmM9e3g6dC54K3Qud2lkdGgseTpzfTticmVhaztjYXNlIGtmOmM9e3g6dC54LW4ud2lkdGgseTpzfTticmVhaztkZWZhdWx0OmM9e3g6dC54LHk6dC55fX12YXIgbD1pP0pmKGkpOm51bGw7aWYobCE9bnVsbCl7dmFyIHU9bD09PWB5YD9gaGVpZ2h0YDpgd2lkdGhgO3N3aXRjaChhKXtjYXNlIE1mOmNbbF09Y1tsXS0odFt1XS8yLW5bdV0vMik7YnJlYWs7Y2FzZSBOZjpjW2xdPWNbbF0rKHRbdV0vMi1uW3VdLzIpO2JyZWFrO2RlZmF1bHQ6fX1yZXR1cm4gY312YXIgWGY9YFBvcHBlcjogSW52YWxpZCByZWZlcmVuY2Ugb3IgcG9wcGVyIGFyZ3VtZW50IHByb3ZpZGVkLiBUaGV5IG11c3QgYmUgZWl0aGVyIGEgRE9NIGVsZW1lbnQgb3IgdmlydHVhbCBlbGVtZW50LmAsWmY9YFBvcHBlcjogQW4gaW5maW5pdGUgbG9vcCBpbiB0aGUgbW9kaWZpZXJzIGN5Y2xlIGhhcyBiZWVuIGRldGVjdGVkISBUaGUgY3ljbGUgaGFzIGJlZW4gaW50ZXJydXB0ZWQgdG8gcHJldmVudCBhIGJyb3dzZXIgY3Jhc2guYCxRZj17cGxhY2VtZW50OmBib3R0b21gLG1vZGlmaWVyczpbXSxzdHJhdGVneTpgYWJzb2x1dGVgfTtmdW5jdGlvbiAkZigpe3JldHVybiFbLi4uYXJndW1lbnRzXS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiEoZSYmdHlwZW9mIGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0PT1gZnVuY3Rpb25gKX0pfWZ1bmN0aW9uIGVwKGUpe2U9PT12b2lkIDAmJihlPXt9KTt2YXIgdD1lLG49dC5kZWZhdWx0TW9kaWZpZXJzLHI9bj09PXZvaWQgMD9bXTpuLGk9dC5kZWZhdWx0T3B0aW9ucyxhPWk9PT12b2lkIDA/UWY6aTtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe249PT12b2lkIDAmJihuPWEpO3ZhciBpPXtwbGFjZW1lbnQ6YGJvdHRvbWAsb3JkZXJlZE1vZGlmaWVyczpbXSxvcHRpb25zOk9iamVjdC5hc3NpZ24oe30sUWYsYSksbW9kaWZpZXJzRGF0YTp7fSxlbGVtZW50czp7cmVmZXJlbmNlOmUscG9wcGVyOnR9LGF0dHJpYnV0ZXM6e30sc3R5bGVzOnt9fSxvPVtdLHM9ITEsYz17c3RhdGU6aSxzZXRPcHRpb25zOmZ1bmN0aW9uKG4pe3ZhciBvPXR5cGVvZiBuPT1gZnVuY3Rpb25gP24oaS5vcHRpb25zKTpuO3UoKSxpLm9wdGlvbnM9T2JqZWN0LmFzc2lnbih7fSxhLGkub3B0aW9ucyxvKSxpLnNjcm9sbFBhcmVudHM9e3JlZmVyZW5jZTplZihlKT94ZihlKTplLmNvbnRleHRFbGVtZW50P3hmKGUuY29udGV4dEVsZW1lbnQpOltdLHBvcHBlcjp4Zih0KX07dmFyIHM9TGYoS2YoW10uY29uY2F0KHIsaS5vcHRpb25zLm1vZGlmaWVycykpKTtpLm9yZGVyZWRNb2RpZmllcnM9cy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZW5hYmxlZH0pLFVmKFdmKFtdLmNvbmNhdChzLGkub3B0aW9ucy5tb2RpZmllcnMpLGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWV9KSksR2YoaS5vcHRpb25zLnBsYWNlbWVudCk9PT1BZiYmKGkub3JkZXJlZE1vZGlmaWVycy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT1gZmxpcGB9KXx8Y29uc29sZS5lcnJvcihbYFBvcHBlcjogImF1dG8iIHBsYWNlbWVudHMgcmVxdWlyZSB0aGUgImZsaXAiIG1vZGlmaWVyIGJlYCxgcHJlc2VudCBhbmQgZW5hYmxlZCB0byB3b3JrLmBdLmpvaW4oYCBgKSkpO3ZhciBkPW1mKHQpO3JldHVybltkLm1hcmdpblRvcCxkLm1hcmdpblJpZ2h0LGQubWFyZ2luQm90dG9tLGQubWFyZ2luTGVmdF0uc29tZShmdW5jdGlvbihlKXtyZXR1cm4gcGFyc2VGbG9hdChlKX0pJiZjb25zb2xlLndhcm4oW2BQb3BwZXI6IENTUyAibWFyZ2luIiBzdHlsZXMgY2Fubm90IGJlIHVzZWQgdG8gYXBwbHkgcGFkZGluZ2AsYGJldHdlZW4gdGhlIHBvcHBlciBhbmQgaXRzIHJlZmVyZW5jZSBlbGVtZW50IG9yIGJvdW5kYXJ5LmAsIlRvIHJlcGxpY2F0ZSBtYXJnaW4sIHVzZSB0aGUgYG9mZnNldGAgbW9kaWZpZXIsIGFzIHdlbGwgYXMiLCJ0aGUgYHBhZGRpbmdgIG9wdGlvbiBpbiB0aGUgYHByZXZlbnRPdmVyZmxvd2AgYW5kIGBmbGlwYCIsYG1vZGlmaWVycy5gXS5qb2luKGAgYCkpLGwoKSxjLnVwZGF0ZSgpfSxmb3JjZVVwZGF0ZTpmdW5jdGlvbigpe2lmKCFzKXt2YXIgZT1pLmVsZW1lbnRzLHQ9ZS5yZWZlcmVuY2Usbj1lLnBvcHBlcjtpZighJGYodCxuKSl7Y29uc29sZS5lcnJvcihYZik7cmV0dXJufWkucmVjdHM9e3JlZmVyZW5jZTpfZih0LFRmKG4pLGkub3B0aW9ucy5zdHJhdGVneT09PWBmaXhlZGApLHBvcHBlcjp2ZihuKX0saS5yZXNldD0hMSxpLnBsYWNlbWVudD1pLm9wdGlvbnMucGxhY2VtZW50LGkub3JkZXJlZE1vZGlmaWVycy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBpLm1vZGlmaWVyc0RhdGFbZS5uYW1lXT1PYmplY3QuYXNzaWduKHt9LGUuZGF0YSl9KTtmb3IodmFyIHI9MCxhPTA7YTxpLm9yZGVyZWRNb2RpZmllcnMubGVuZ3RoO2ErKyl7aWYocis9MSxyPjEwMCl7Y29uc29sZS5lcnJvcihaZik7YnJlYWt9aWYoaS5yZXNldD09PSEwKXtpLnJlc2V0PSExLGE9LTE7Y29udGludWV9dmFyIG89aS5vcmRlcmVkTW9kaWZpZXJzW2FdLGw9by5mbix1PW8ub3B0aW9ucyxkPXU9PT12b2lkIDA/e306dSxmPW8ubmFtZTt0eXBlb2YgbD09YGZ1bmN0aW9uYCYmKGk9bCh7c3RhdGU6aSxvcHRpb25zOmQsbmFtZTpmLGluc3RhbmNlOmN9KXx8aSl9fX0sdXBkYXRlOlJmKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe2MuZm9yY2VVcGRhdGUoKSxlKGkpfSl9KSxkZXN0cm95OmZ1bmN0aW9uKCl7dSgpLHM9ITB9fTtpZighJGYoZSx0KSlyZXR1cm4gY29uc29sZS5lcnJvcihYZiksYztjLnNldE9wdGlvbnMobikudGhlbihmdW5jdGlvbihlKXshcyYmbi5vbkZpcnN0VXBkYXRlJiZuLm9uRmlyc3RVcGRhdGUoZSl9KTtmdW5jdGlvbiBsKCl7aS5vcmRlcmVkTW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS5uYW1lLG49ZS5vcHRpb25zLHI9bj09PXZvaWQgMD97fTpuLGE9ZS5lZmZlY3Q7aWYodHlwZW9mIGE9PWBmdW5jdGlvbmApe3ZhciBzPWEoe3N0YXRlOmksbmFtZTp0LGluc3RhbmNlOmMsb3B0aW9uczpyfSk7by5wdXNoKHN8fGZ1bmN0aW9uKCl7fSl9fSl9ZnVuY3Rpb24gdSgpe28uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZSgpfSksbz1bXX1yZXR1cm4gY319dmFyIHRwPXtwYXNzaXZlOiEwfTtmdW5jdGlvbiBucChlKXt2YXIgdD1lLnN0YXRlLG49ZS5pbnN0YW5jZSxyPWUub3B0aW9ucyxpPXIuc2Nyb2xsLGE9aT09PXZvaWQgMD8hMDppLG89ci5yZXNpemUscz1vPT09dm9pZCAwPyEwOm8sYz0kZCh0LmVsZW1lbnRzLnBvcHBlciksbD1bXS5jb25jYXQodC5zY3JvbGxQYXJlbnRzLnJlZmVyZW5jZSx0LnNjcm9sbFBhcmVudHMucG9wcGVyKTtyZXR1cm4gYSYmbC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuYWRkRXZlbnRMaXN0ZW5lcihgc2Nyb2xsYCxuLnVwZGF0ZSx0cCl9KSxzJiZjLmFkZEV2ZW50TGlzdGVuZXIoYHJlc2l6ZWAsbi51cGRhdGUsdHApLGZ1bmN0aW9uKCl7YSYmbC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihgc2Nyb2xsYCxuLnVwZGF0ZSx0cCl9KSxzJiZjLnJlbW92ZUV2ZW50TGlzdGVuZXIoYHJlc2l6ZWAsbi51cGRhdGUsdHApfX12YXIgcnA9e25hbWU6YGV2ZW50TGlzdGVuZXJzYCxlbmFibGVkOiEwLHBoYXNlOmB3cml0ZWAsZm46ZnVuY3Rpb24oKXt9LGVmZmVjdDpucCxkYXRhOnt9fTtmdW5jdGlvbiBpcChlKXt2YXIgdD1lLnN0YXRlLG49ZS5uYW1lO3QubW9kaWZpZXJzRGF0YVtuXT1ZZih7cmVmZXJlbmNlOnQucmVjdHMucmVmZXJlbmNlLGVsZW1lbnQ6dC5yZWN0cy5wb3BwZXIsc3RyYXRlZ3k6YGFic29sdXRlYCxwbGFjZW1lbnQ6dC5wbGFjZW1lbnR9KX12YXIgYXA9e25hbWU6YHBvcHBlck9mZnNldHNgLGVuYWJsZWQ6ITAscGhhc2U6YHJlYWRgLGZuOmlwLGRhdGE6e319LG9wPXt0b3A6YGF1dG9gLHJpZ2h0OmBhdXRvYCxib3R0b206YGF1dG9gLGxlZnQ6YGF1dG9gfTtmdW5jdGlvbiBzcChlKXt2YXIgdD1lLngsbj1lLnkscj13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTtyZXR1cm57eDpyZih0KnIpL3J8fDAseTpyZihuKnIpL3J8fDB9fWZ1bmN0aW9uIGNwKGUpe3ZhciB0LG49ZS5wb3BwZXIscj1lLnBvcHBlclJlY3QsaT1lLnBsYWNlbWVudCxhPWUudmFyaWF0aW9uLG89ZS5vZmZzZXRzLHM9ZS5wb3NpdGlvbixjPWUuZ3B1QWNjZWxlcmF0aW9uLGw9ZS5hZGFwdGl2ZSx1PWUucm91bmRPZmZzZXRzLGQ9ZS5pc0ZpeGVkLGY9by54LHA9Zj09PXZvaWQgMD8wOmYsbT1vLnksaD1tPT09dm9pZCAwPzA6bSxnPXR5cGVvZiB1PT1gZnVuY3Rpb25gP3Uoe3g6cCx5Omh9KTp7eDpwLHk6aH07cD1nLngsaD1nLnk7dmFyIF89by5oYXNPd25Qcm9wZXJ0eShgeGApLHY9by5oYXNPd25Qcm9wZXJ0eShgeWApLHk9a2YsYj1FZix4PXdpbmRvdztpZihsKXt2YXIgUz1UZihuKSxDPWBjbGllbnRIZWlnaHRgLHc9YGNsaWVudFdpZHRoYDtpZihTPT09JGQobikmJihTPWZmKG4pLG1mKFMpLnBvc2l0aW9uIT09YHN0YXRpY2AmJnM9PT1gYWJzb2x1dGVgJiYoQz1gc2Nyb2xsSGVpZ2h0YCx3PWBzY3JvbGxXaWR0aGApKSxTPVMsaT09PUVmfHwoaT09PWtmfHxpPT09T2YpJiZhPT09TmYpe2I9RGY7dmFyIFQ9ZCYmUz09PXgmJngudmlzdWFsVmlld3BvcnQ/eC52aXN1YWxWaWV3cG9ydC5oZWlnaHQ6U1tDXTtoLT1ULXIuaGVpZ2h0LGgqPWM/MTotMX1pZihpPT09a2Z8fChpPT09RWZ8fGk9PT1EZikmJmE9PT1OZil7eT1PZjt2YXIgRT1kJiZTPT09eCYmeC52aXN1YWxWaWV3cG9ydD94LnZpc3VhbFZpZXdwb3J0LndpZHRoOlNbd107cC09RS1yLndpZHRoLHAqPWM/MTotMX19dmFyIEQ9T2JqZWN0LmFzc2lnbih7cG9zaXRpb246c30sbCYmb3ApLE89dT09PSEwP3NwKHt4OnAseTpofSk6e3g6cCx5Omh9O2lmKHA9Ty54LGg9Ty55LGMpe3ZhciBrO3JldHVybiBPYmplY3QuYXNzaWduKHt9LEQsKGs9e30sa1tiXT12P2AwYDpgYCxrW3ldPV8/YDBgOmBgLGsudHJhbnNmb3JtPSh4LmRldmljZVBpeGVsUmF0aW98fDEpPD0xP2B0cmFuc2xhdGUoYCtwK2BweCwgYCtoK2BweClgOmB0cmFuc2xhdGUzZChgK3ArYHB4LCBgK2grYHB4LCAwKWAsaykpfXJldHVybiBPYmplY3QuYXNzaWduKHt9LEQsKHQ9e30sdFtiXT12P2grYHB4YDpgYCx0W3ldPV8/cCtgcHhgOmBgLHQudHJhbnNmb3JtPWBgLHQpKX1mdW5jdGlvbiBscChlKXt2YXIgdD1lLnN0YXRlLG49ZS5vcHRpb25zLHI9bi5ncHVBY2NlbGVyYXRpb24saT1yPT09dm9pZCAwPyEwOnIsYT1uLmFkYXB0aXZlLG89YT09PXZvaWQgMD8hMDphLHM9bi5yb3VuZE9mZnNldHMsYz1zPT09dm9pZCAwPyEwOnMsbD1tZih0LmVsZW1lbnRzLnBvcHBlcikudHJhbnNpdGlvblByb3BlcnR5fHxgYDtvJiZbYHRyYW5zZm9ybWAsYHRvcGAsYHJpZ2h0YCxgYm90dG9tYCxgbGVmdGBdLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGwuaW5kZXhPZihlKT49MH0pJiZjb25zb2xlLndhcm4oW2BQb3BwZXI6IERldGVjdGVkIENTUyB0cmFuc2l0aW9ucyBvbiBhdCBsZWFzdCBvbmUgb2YgdGhlIGZvbGxvd2luZ2AsYENTUyBwcm9wZXJ0aWVzOiAidHJhbnNmb3JtIiwgInRvcCIsICJyaWdodCIsICJib3R0b20iLCAibGVmdCIuYCxgCgpgLCdEaXNhYmxlIHRoZSAiY29tcHV0ZVN0eWxlcyIgbW9kaWZpZXJcJ3MgYGFkYXB0aXZlYCBvcHRpb24gdG8gYWxsb3cnLGBmb3Igc21vb3RoIHRyYW5zaXRpb25zLCBvciByZW1vdmUgdGhlc2UgcHJvcGVydGllcyBmcm9tIHRoZSBDU1NgLGB0cmFuc2l0aW9uIGRlY2xhcmF0aW9uIG9uIHRoZSBwb3BwZXIgZWxlbWVudCBpZiBvbmx5IHRyYW5zaXRpb25pbmdgLGBvcGFjaXR5IG9yIGJhY2tncm91bmQtY29sb3IgZm9yIGV4YW1wbGUuYCxgCgpgLGBXZSByZWNvbW1lbmQgdXNpbmcgdGhlIHBvcHBlciBlbGVtZW50IGFzIGEgd3JhcHBlciBhcm91bmQgYW4gaW5uZXJgLGBlbGVtZW50IHRoYXQgY2FuIGhhdmUgYW55IENTUyBwcm9wZXJ0eSB0cmFuc2l0aW9uZWQgZm9yIGFuaW1hdGlvbnMuYF0uam9pbihgIGApKTt2YXIgdT17cGxhY2VtZW50OkdmKHQucGxhY2VtZW50KSx2YXJpYXRpb246cWYodC5wbGFjZW1lbnQpLHBvcHBlcjp0LmVsZW1lbnRzLnBvcHBlcixwb3BwZXJSZWN0OnQucmVjdHMucG9wcGVyLGdwdUFjY2VsZXJhdGlvbjppLGlzRml4ZWQ6dC5vcHRpb25zLnN0cmF0ZWd5PT09YGZpeGVkYH07dC5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMhPW51bGwmJih0LnN0eWxlcy5wb3BwZXI9T2JqZWN0LmFzc2lnbih7fSx0LnN0eWxlcy5wb3BwZXIsY3AoT2JqZWN0LmFzc2lnbih7fSx1LHtvZmZzZXRzOnQubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLHBvc2l0aW9uOnQub3B0aW9ucy5zdHJhdGVneSxhZGFwdGl2ZTpvLHJvdW5kT2Zmc2V0czpjfSkpKSksdC5tb2RpZmllcnNEYXRhLmFycm93IT1udWxsJiYodC5zdHlsZXMuYXJyb3c9T2JqZWN0LmFzc2lnbih7fSx0LnN0eWxlcy5hcnJvdyxjcChPYmplY3QuYXNzaWduKHt9LHUse29mZnNldHM6dC5tb2RpZmllcnNEYXRhLmFycm93LHBvc2l0aW9uOmBhYnNvbHV0ZWAsYWRhcHRpdmU6ITEscm91bmRPZmZzZXRzOmN9KSkpKSx0LmF0dHJpYnV0ZXMucG9wcGVyPU9iamVjdC5hc3NpZ24oe30sdC5hdHRyaWJ1dGVzLnBvcHBlcix7ImRhdGEtcG9wcGVyLXBsYWNlbWVudCI6dC5wbGFjZW1lbnR9KX12YXIgdXA9e25hbWU6YGNvbXB1dGVTdHlsZXNgLGVuYWJsZWQ6ITAscGhhc2U6YGJlZm9yZVdyaXRlYCxmbjpscCxkYXRhOnt9fTtmdW5jdGlvbiBkcChlKXt2YXIgdD1lLnN0YXRlO09iamVjdC5rZXlzKHQuZWxlbWVudHMpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIG49dC5zdHlsZXNbZV18fHt9LHI9dC5hdHRyaWJ1dGVzW2VdfHx7fSxpPXQuZWxlbWVudHNbZV07IXRmKGkpfHwhZGYoaSl8fChPYmplY3QuYXNzaWduKGkuc3R5bGUsbiksT2JqZWN0LmtleXMocikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1yW2VdO3Q9PT0hMT9pLnJlbW92ZUF0dHJpYnV0ZShlKTppLnNldEF0dHJpYnV0ZShlLHQ9PT0hMD9gYDp0KX0pKX0pfWZ1bmN0aW9uIGZwKGUpe3ZhciB0PWUuc3RhdGUsbj17cG9wcGVyOntwb3NpdGlvbjp0Lm9wdGlvbnMuc3RyYXRlZ3ksbGVmdDpgMGAsdG9wOmAwYCxtYXJnaW46YDBgfSxhcnJvdzp7cG9zaXRpb246YGFic29sdXRlYH0scmVmZXJlbmNlOnt9fTtyZXR1cm4gT2JqZWN0LmFzc2lnbih0LmVsZW1lbnRzLnBvcHBlci5zdHlsZSxuLnBvcHBlciksdC5zdHlsZXM9bix0LmVsZW1lbnRzLmFycm93JiZPYmplY3QuYXNzaWduKHQuZWxlbWVudHMuYXJyb3cuc3R5bGUsbi5hcnJvdyksZnVuY3Rpb24oKXtPYmplY3Qua2V5cyh0LmVsZW1lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciByPXQuZWxlbWVudHNbZV0saT10LmF0dHJpYnV0ZXNbZV18fHt9LGE9T2JqZWN0LmtleXModC5zdHlsZXMuaGFzT3duUHJvcGVydHkoZSk/dC5zdHlsZXNbZV06bltlXSkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbdF09YGAsZX0se30pOyF0ZihyKXx8IWRmKHIpfHwoT2JqZWN0LmFzc2lnbihyLnN0eWxlLGEpLE9iamVjdC5rZXlzKGkpLmZvckVhY2goZnVuY3Rpb24oZSl7ci5yZW1vdmVBdHRyaWJ1dGUoZSl9KSl9KX19dmFyIHBwPWVwKHtkZWZhdWx0TW9kaWZpZXJzOltycCxhcCx1cCx7bmFtZTpgYXBwbHlTdHlsZXNgLGVuYWJsZWQ6ITAscGhhc2U6YHdyaXRlYCxmbjpkcCxlZmZlY3Q6ZnAscmVxdWlyZXM6W2Bjb21wdXRlU3R5bGVzYF19XX0pO2Z1bmN0aW9uIG1wKGUsdCxuKXt2YXIgcj1HZihlKSxpPVtrZixFZl0uaW5kZXhPZihyKT49MD8tMToxLGE9dHlwZW9mIG49PWBmdW5jdGlvbmA/bihPYmplY3QuYXNzaWduKHt9LHQse3BsYWNlbWVudDplfSkpOm4sbz1hWzBdLHM9YVsxXTtyZXR1cm4gb3x8PTAscz0oc3x8MCkqaSxba2YsT2ZdLmluZGV4T2Yocik+PTA/e3g6cyx5Om99Ont4Om8seTpzfX1mdW5jdGlvbiBocChlKXt2YXIgdD1lLnN0YXRlLG49ZS5vcHRpb25zLHI9ZS5uYW1lLGk9bi5vZmZzZXQsYT1pPT09dm9pZCAwP1swLDBdOmksbz1QZi5yZWR1Y2UoZnVuY3Rpb24oZSxuKXtyZXR1cm4gZVtuXT1tcChuLHQucmVjdHMsYSksZX0se30pLHM9b1t0LnBsYWNlbWVudF0sYz1zLngsbD1zLnk7dC5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMhPW51bGwmJih0Lm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cy54Kz1jLHQubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLnkrPWwpLHQubW9kaWZpZXJzRGF0YVtyXT1vfXZhciBncD17bmFtZTpgb2Zmc2V0YCxlbmFibGVkOiEwLHBoYXNlOmBtYWluYCxyZXF1aXJlczpbYHBvcHBlck9mZnNldHNgXSxmbjpocH0sW19wLHZwXT1KKGBwb3BvdmVyYCkseXA9W2BvdmVybGF5YCxgZHVyYXRpb25gLGB0ZWxlcG9ydGAsYG92ZXJsYXlTdHlsZWAsYG92ZXJsYXlDbGFzc2AsYGNsb3NlT25DbGlja092ZXJsYXlgXSxicD1ZKFAoe25hbWU6X3AscHJvcHM6e3Nob3c6Qm9vbGVhbix0aGVtZTpVKGBsaWdodGApLG92ZXJsYXk6Qm9vbGVhbixhY3Rpb25zOlYoKSxhY3Rpb25zRGlyZWN0aW9uOlUoYHZlcnRpY2FsYCksdHJpZ2dlcjpVKGBjbGlja2ApLGR1cmF0aW9uOnosc2hvd0Fycm93OkIscGxhY2VtZW50OlUoYGJvdHRvbWApLGljb25QcmVmaXg6U3RyaW5nLG92ZXJsYXlDbGFzczpudWxsLG92ZXJsYXlTdHlsZTpPYmplY3QsY2xvc2VPbkNsaWNrQWN0aW9uOkIsY2xvc2VPbkNsaWNrT3ZlcmxheTpCLGNsb3NlT25DbGlja091dHNpZGU6QixvZmZzZXQ6e3R5cGU6QXJyYXksZGVmYXVsdDooKT0+WzAsOF19LHRlbGVwb3J0Ont0eXBlOltTdHJpbmcsT2JqZWN0XSxkZWZhdWx0OmBib2R5YH19LGVtaXRzOltgc2VsZWN0YCxgdG91Y2hzdGFydGAsYHVwZGF0ZTpzaG93YF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm4sYXR0cnM6aX0pe2xldCBvLHM9YigpLGM9YigpLGw9YigpLHU9U2EoKCk9PmUuc2hvdyxlPT50KGB1cGRhdGU6c2hvd2AsZSkpLGQ9KCk9Pih7cGxhY2VtZW50OmUucGxhY2VtZW50LG1vZGlmaWVyczpbe25hbWU6YGNvbXB1dGVTdHlsZXNgLG9wdGlvbnM6e2FkYXB0aXZlOiExLGdwdUFjY2VsZXJhdGlvbjohMX19LEkoe30sZ3Ase29wdGlvbnM6e29mZnNldDplLm9mZnNldH19KV19KSxwPSgpPT5jLnZhbHVlJiZsLnZhbHVlP3BwKGMudmFsdWUsbC52YWx1ZS5wb3B1cFJlZi52YWx1ZSxkKCkpOm51bGwsbT0oKT0+e0YoKCk9Pnt1LnZhbHVlJiYobz9vLnNldE9wdGlvbnMoZCgpKToobz1wKCksWnQmJih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihgYW5pbWF0aW9uZW5kYCxtKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihgdHJhbnNpdGlvbmVuZGAsbSkpKSl9KX0saD1lPT57dS52YWx1ZT1lfSxnPSgpPT57ZS50cmlnZ2VyPT09YGNsaWNrYCYmKHUudmFsdWU9IXUudmFsdWUpfSx2PShuLHIpPT57bi5kaXNhYmxlZHx8KHQoYHNlbGVjdGAsbixyKSxlLmNsb3NlT25DbGlja0FjdGlvbiYmKHUudmFsdWU9ITEpKX0seT0oKT0+e3UudmFsdWUmJmUuY2xvc2VPbkNsaWNrT3V0c2lkZSYmKCFlLm92ZXJsYXl8fGUuY2xvc2VPbkNsaWNrT3ZlcmxheSkmJih1LnZhbHVlPSExKX0seD0odCxyKT0+bi5hY3Rpb24/bi5hY3Rpb24oe2FjdGlvbjp0LGluZGV4OnJ9KTpbdC5pY29uJiZFKFose25hbWU6dC5pY29uLGNsYXNzUHJlZml4OmUuaWNvblByZWZpeCxjbGFzczp2cChgYWN0aW9uLWljb25gKX0sbnVsbCksRShgZGl2YCx7Y2xhc3M6W3ZwKGBhY3Rpb24tdGV4dGApLHtbRnJdOmUuYWN0aW9uc0RpcmVjdGlvbj09PWB2ZXJ0aWNhbGB9XX0sW3QudGV4dF0pXSxTPSh0LG4pPT57bGV0e2ljb246cixjb2xvcjppLGRpc2FibGVkOmEsY2xhc3NOYW1lOm99PXQ7cmV0dXJuIEUoYGRpdmAse3JvbGU6YG1lbnVpdGVtYCxjbGFzczpbdnAoYGFjdGlvbmAse2Rpc2FibGVkOmEsIndpdGgtaWNvbiI6cn0pLHtbUHJdOmUuYWN0aW9uc0RpcmVjdGlvbj09PWBob3Jpem9udGFsYH0sb10sc3R5bGU6e2NvbG9yOml9LHRhYmluZGV4OmE/dm9pZCAwOjAsImFyaWEtZGlzYWJsZWQiOmF8fHZvaWQgMCxvbkNsaWNrOigpPT52KHQsbil9LFt4KHQsbildKX07cmV0dXJuIE0oKCk9PnttKCksXygoKT0+e3MudmFsdWU9bC52YWx1ZT8ucG9wdXBSZWYudmFsdWV9KX0pLGEoKCk9PntvJiY9KFp0JiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoYGFuaW1hdGlvbmVuZGAsbSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoYHRyYW5zaXRpb25lbmRgLG0pKSxvLmRlc3Ryb3koKSxudWxsKX0pLGYoKCk9Plt1LnZhbHVlLGUub2Zmc2V0LGUucGxhY2VtZW50XSxtKSxNbihbYyxzXSx5LHtldmVudE5hbWU6YHRvdWNoc3RhcnRgfSksKCk9PkUoRCxudWxsLFtFKGBzcGFuYCx7cmVmOmMsY2xhc3M6dnAoYHdyYXBwZXJgKSxvbkNsaWNrOmd9LFtuLnJlZmVyZW5jZT8uY2FsbChuKV0pLEUocWkscih7cmVmOmwsc2hvdzp1LnZhbHVlLGNsYXNzOnZwKFtlLnRoZW1lXSkscG9zaXRpb246YGAsdHJhbnNpdGlvbjpgdmFuLXBvcG92ZXItem9vbWAsbG9ja1Njcm9sbDohMSwib25VcGRhdGU6c2hvdyI6aH0saSxCaSgpLFIoZSx5cCkpLHtkZWZhdWx0OigpPT5bZS5zaG93QXJyb3cmJkUoYGRpdmAse2NsYXNzOnZwKGBhcnJvd2ApfSxudWxsKSxFKGBkaXZgLHtyb2xlOmBtZW51YCxjbGFzczp2cChgY29udGVudGAsZS5hY3Rpb25zRGlyZWN0aW9uKX0sW24uZGVmYXVsdD9uLmRlZmF1bHQoKTplLmFjdGlvbnMubWFwKFMpXSldfSldKX19KSksW3hwLFNwXT1KKGBwcm9ncmVzc2ApLENwPVkoUCh7bmFtZTp4cCxwcm9wczp7Y29sb3I6U3RyaW5nLGluYWN0aXZlOkJvb2xlYW4scGl2b3RUZXh0OlN0cmluZyx0ZXh0Q29sb3I6U3RyaW5nLHNob3dQaXZvdDpCLHBpdm90Q29sb3I6U3RyaW5nLHRyYWNrQ29sb3I6U3RyaW5nLHN0cm9rZVdpZHRoOnoscGVyY2VudGFnZTp7dHlwZTp6LGRlZmF1bHQ6MCx2YWxpZGF0b3I6ZT0+K2U+PTAmJitlPD0xMDB9fSxzZXR1cChlLHtzbG90czp0fSl7bGV0IG49TigoKT0+ZS5pbmFjdGl2ZT92b2lkIDA6ZS5jb2xvcikscj1lPT5NYXRoLm1pbihNYXRoLm1heCgrZSwwKSwxMDApLGk9KCk9PntsZXR7dGV4dENvbG9yOmkscGl2b3RUZXh0OmEscGl2b3RDb2xvcjpvLHBlcmNlbnRhZ2U6c309ZSxjPXIocyksbD1hPz9gJHtjfSVgO2lmKGUuc2hvd1Bpdm90JiYodC5waXZvdHx8bCkpcmV0dXJuIEUoYHNwYW5gLHtzdHlsZTp7Y29sb3I6aSxsZWZ0OmAke2N9JWAsdHJhbnNmb3JtOmB0cmFuc2xhdGUoLSR7Y30lLC01MCUpYCxiYWNrZ3JvdW5kOm98fG4udmFsdWV9LGNsYXNzOlNwKGBwaXZvdGAse2luYWN0aXZlOmUuaW5hY3RpdmV9KX0sW3QucGl2b3Q/dC5waXZvdCh7cGVyY2VudGFnZTpjfSk6bF0pfTtyZXR1cm4oKT0+e2xldHt0cmFja0NvbG9yOnQscGVyY2VudGFnZTphLHN0cm9rZVdpZHRoOm99PWUscz1yKGEpLGM9e2JhY2tncm91bmQ6dCxoZWlnaHQ6cShvKX0sbD17d2lkdGg6YCR7c30lYCxiYWNrZ3JvdW5kOm4udmFsdWV9O3JldHVybiBFKGBkaXZgLHtjbGFzczpTcCgpLHN0eWxlOmN9LFtFKGBzcGFuYCx7Y2xhc3M6U3AoYHBvcnRpb25gLHtpbmFjdGl2ZTplLmluYWN0aXZlfSksc3R5bGU6bH0sbnVsbCksaSgpXSl9fX0pKSxbd3AsVHAsRXBdPUooYHB1bGwtcmVmcmVzaGApLERwPTUwLE9wPVtgcHVsbGluZ2AsYGxvb3NpbmdgLGBzdWNjZXNzYF0sa3A9WShQKHtuYW1lOndwLHByb3BzOntkaXNhYmxlZDpCb29sZWFuLG1vZGVsVmFsdWU6Qm9vbGVhbixoZWFkSGVpZ2h0OkgoRHApLHN1Y2Nlc3NUZXh0OlN0cmluZyxwdWxsaW5nVGV4dDpTdHJpbmcsbG9vc2luZ1RleHQ6U3RyaW5nLGxvYWRpbmdUZXh0OlN0cmluZyxwdWxsRGlzdGFuY2U6eixzdWNjZXNzRHVyYXRpb246SCg1MDApLGFuaW1hdGlvbkR1cmF0aW9uOkgoMzAwKX0sZW1pdHM6W2BjaGFuZ2VgLGByZWZyZXNoYCxgdXBkYXRlOm1vZGVsVmFsdWVgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCByLGk9YigpLGE9YigpLG89Qm4oaSkscz1jKHtzdGF0dXM6YG5vcm1hbGAsZGlzdGFuY2U6MCxkdXJhdGlvbjowfSksbD1GaSgpLHU9KCk9PntpZihlLmhlYWRIZWlnaHQhPT1EcClyZXR1cm57aGVpZ2h0OmAke2UuaGVhZEhlaWdodH1weGB9fSxkPSgpPT5zLnN0YXR1cyE9PWBsb2FkaW5nYCYmcy5zdGF0dXMhPT1gc3VjY2Vzc2AmJiFlLmRpc2FibGVkLHA9dD0+e2xldCBuPSsoZS5wdWxsRGlzdGFuY2V8fGUuaGVhZEhlaWdodCk7cmV0dXJuIHQ+biYmKHQ9dDxuKjI/bisodC1uKS8yOm4qMS41Kyh0LW4qMikvNCksTWF0aC5yb3VuZCh0KX0sbT0obixyKT0+e2xldCBpPSsoZS5wdWxsRGlzdGFuY2V8fGUuaGVhZEhlaWdodCk7cy5kaXN0YW5jZT1uLHI/cy5zdGF0dXM9YGxvYWRpbmdgOm49PT0wP3Muc3RhdHVzPWBub3JtYWxgOm48aT9zLnN0YXR1cz1gcHVsbGluZ2A6cy5zdGF0dXM9YGxvb3NpbmdgLHQoYGNoYW5nZWAse3N0YXR1czpzLnN0YXR1cyxkaXN0YW5jZTpufSl9LGg9KCk9PntsZXR7c3RhdHVzOnR9PXM7cmV0dXJuIHQ9PT1gbm9ybWFsYD9gYDplW2Ake3R9VGV4dGBdfHxFcCh0KX0sZz0oKT0+e2xldHtzdGF0dXM6ZSxkaXN0YW5jZTp0fT1zO2lmKG5bZV0pcmV0dXJuIG5bZV0oe2Rpc3RhbmNlOnR9KTtsZXQgcj1bXTtyZXR1cm4gT3AuaW5jbHVkZXMoZSkmJnIucHVzaChFKGBkaXZgLHtjbGFzczpUcChgdGV4dGApfSxbaCgpXSkpLGU9PT1gbG9hZGluZ2AmJnIucHVzaChFKFNpLHtjbGFzczpUcChgbG9hZGluZ2ApfSx7ZGVmYXVsdDpofSkpLHJ9LF89KCk9PntzLnN0YXR1cz1gc3VjY2Vzc2Asc2V0VGltZW91dCgoKT0+e20oMCl9LCtlLnN1Y2Nlc3NEdXJhdGlvbil9LHY9ZT0+e3I9R24oby52YWx1ZSk9PT0wLHImJihzLmR1cmF0aW9uPTAsbC5zdGFydChlKSl9LHk9ZT0+e2QoKSYmdihlKX0seD1lPT57aWYoZCgpKXtyfHx2KGUpO2xldHtkZWx0YVk6dH09bDtsLm1vdmUoZSksciYmdC52YWx1ZT49MCYmbC5pc1ZlcnRpY2FsKCkmJihLKGUpLG0ocCh0LnZhbHVlKSkpfX0sUz0oKT0+e3ImJmwuZGVsdGFZLnZhbHVlJiZkKCkmJihzLmR1cmF0aW9uPStlLmFuaW1hdGlvbkR1cmF0aW9uLHMuc3RhdHVzPT09YGxvb3NpbmdgPyhtKCtlLmhlYWRIZWlnaHQsITApLHQoYHVwZGF0ZTptb2RlbFZhbHVlYCwhMCksRigoKT0+dChgcmVmcmVzaGApKSk6bSgwKSl9O3JldHVybiBmKCgpPT5lLm1vZGVsVmFsdWUsdD0+e3MuZHVyYXRpb249K2UuYW5pbWF0aW9uRHVyYXRpb24sdD9tKCtlLmhlYWRIZWlnaHQsITApOm4uc3VjY2Vzc3x8ZS5zdWNjZXNzVGV4dD9fKCk6bSgwLCExKX0pLEcoYHRvdWNobW92ZWAseCx7dGFyZ2V0OmF9KSwoKT0+e2xldCBlPXt0cmFuc2l0aW9uRHVyYXRpb246YCR7cy5kdXJhdGlvbn1tc2AsdHJhbnNmb3JtOnMuZGlzdGFuY2U/YHRyYW5zbGF0ZTNkKDAsJHtzLmRpc3RhbmNlfXB4LCAwKWA6YGB9O3JldHVybiBFKGBkaXZgLHtyZWY6aSxjbGFzczpUcCgpfSxbRShgZGl2YCx7cmVmOmEsY2xhc3M6VHAoYHRyYWNrYCksc3R5bGU6ZSxvblRvdWNoc3RhcnRQYXNzaXZlOnksb25Ub3VjaGVuZDpTLG9uVG91Y2hjYW5jZWw6U30sW0UoYGRpdmAse2NsYXNzOlRwKGBoZWFkYCksc3R5bGU6dSgpfSxbZygpXSksbi5kZWZhdWx0Py5jYWxsKG4pXSldKX19fSkpLFtBcCxqcF09SihgcmF0ZWApO2Z1bmN0aW9uIE1wKGUsdCxuLHIpe2lmKGU+PXQpcmV0dXJue3N0YXR1czpgZnVsbGAsdmFsdWU6MX07aWYoZSsuNT49dCYmbiYmIXIpcmV0dXJue3N0YXR1czpgaGFsZmAsdmFsdWU6LjV9O2lmKGUrMT49dCYmbiYmcil7bGV0IG49MTAqKjEwO3JldHVybntzdGF0dXM6YGhhbGZgLHZhbHVlOk1hdGgucm91bmQoKGUtdCsxKSpuKS9ufX1yZXR1cm57c3RhdHVzOmB2b2lkYCx2YWx1ZTowfX12YXIgTnA9WShQKHtuYW1lOkFwLHByb3BzOntzaXplOnosaWNvbjpVKGBzdGFyYCksY29sb3I6U3RyaW5nLGNvdW50OkgoNSksZ3V0dGVyOnosY2xlYXJhYmxlOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbixkaXNhYmxlZDpCb29sZWFuLHZvaWRJY29uOlUoYHN0YXItb2ApLGFsbG93SGFsZjpCb29sZWFuLHZvaWRDb2xvcjpTdHJpbmcsdG91Y2hhYmxlOkIsaWNvblByZWZpeDpTdHJpbmcsbW9kZWxWYWx1ZTpkbigwKSxkaXNhYmxlZENvbG9yOlN0cmluZ30sZW1pdHM6W2BjaGFuZ2VgLGB1cGRhdGU6bW9kZWxWYWx1ZWBdLHNldHVwKGUse2VtaXQ6dH0pe2xldCBuPUZpKCksW3IsaV09RGEoKSxhPWIoKSxvPU4oKCk9PmUucmVhZG9ubHl8fGUuZGlzYWJsZWQpLHM9TigoKT0+by52YWx1ZXx8IWUudG91Y2hhYmxlKSxjPU4oKCk9PkFycmF5KCtlLmNvdW50KS5maWxsKGBgKS5tYXAoKHQsbik9Pk1wKGUubW9kZWxWYWx1ZSxuKzEsZS5hbGxvd0hhbGYsZS5yZWFkb25seSkpKSxsLHUsZD0yKio1My0xLGY9LSgyKio1My0xKSxwPSgpPT57dT1XKGEpO2xldCB0PXIudmFsdWUubWFwKFcpO2w9W10sdC5mb3JFYWNoKCh0LG4pPT57ZD1NYXRoLm1pbih0LnRvcCxkKSxmPU1hdGgubWF4KHQudG9wLGYpLGUuYWxsb3dIYWxmP2wucHVzaCh7c2NvcmU6bisuNSxsZWZ0OnQubGVmdCx0b3A6dC50b3AsaGVpZ2h0OnQuaGVpZ2h0fSx7c2NvcmU6bisxLGxlZnQ6dC5sZWZ0K3Qud2lkdGgvMix0b3A6dC50b3AsaGVpZ2h0OnQuaGVpZ2h0fSk6bC5wdXNoKHtzY29yZTpuKzEsbGVmdDp0LmxlZnQsdG9wOnQudG9wLGhlaWdodDp0LmhlaWdodH0pfSl9LG09KHQsbik9Pntmb3IobGV0IGU9bC5sZW5ndGgtMTtlPjA7ZS0tKWlmKG4+PXUudG9wJiZuPD11LmJvdHRvbSl7aWYodD5sW2VdLmxlZnQmJm4+PWxbZV0udG9wJiZuPD1sW2VdLnRvcCtsW2VdLmhlaWdodClyZXR1cm4gbFtlXS5zY29yZX1lbHNle2xldCByPW48dS50b3A/ZDpmO2lmKHQ+bFtlXS5sZWZ0JiZsW2VdLnRvcD09PXIpcmV0dXJuIGxbZV0uc2NvcmV9cmV0dXJuIGUuYWxsb3dIYWxmPy41OjF9LGg9bj0+e28udmFsdWV8fG49PT1lLm1vZGVsVmFsdWV8fCh0KGB1cGRhdGU6bW9kZWxWYWx1ZWAsbiksdChgY2hhbmdlYCxuKSl9LGc9ZT0+e3MudmFsdWV8fChuLnN0YXJ0KGUpLHAoKSl9LF89ZT0+e2lmKCFzLnZhbHVlJiYobi5tb3ZlKGUpLG4uaXNIb3Jpem9udGFsKCkmJiFuLmlzVGFwLnZhbHVlKSl7bGV0e2NsaWVudFg6dCxjbGllbnRZOm59PWUudG91Y2hlc1swXTtLKGUpLGgobSh0LG4pKX19LHY9KHQscik9PntsZXR7aWNvbjphLHNpemU6byxjb2xvcjpzLGNvdW50OmMsZ3V0dGVyOmwsdm9pZEljb246dSxkaXNhYmxlZDpkLHZvaWRDb2xvcjpmLGFsbG93SGFsZjpnLGljb25QcmVmaXg6XyxkaXNhYmxlZENvbG9yOnZ9PWUseT1yKzEsYj10LnN0YXR1cz09PWBmdWxsYCx4PXQuc3RhdHVzPT09YHZvaWRgLFM9ZyYmdC52YWx1ZT4wJiZ0LnZhbHVlPDEsQztyZXR1cm4gbCYmeSE9PStjJiYoQz17cGFkZGluZ1JpZ2h0OnEobCl9KSxFKGBkaXZgLHtrZXk6cixyZWY6aShyKSxyb2xlOmByYWRpb2Asc3R5bGU6QyxjbGFzczpqcChgaXRlbWApLHRhYmluZGV4OmQ/dm9pZCAwOjAsImFyaWEtc2V0c2l6ZSI6YywiYXJpYS1wb3NpbnNldCI6eSwiYXJpYS1jaGVja2VkIjoheCxvbkNsaWNrOnQ9PntwKCk7bGV0IHI9Zz9tKHQuY2xpZW50WCx0LmNsaWVudFkpOnk7ZS5jbGVhcmFibGUmJm4uaXNUYXAudmFsdWUmJnI9PT1lLm1vZGVsVmFsdWUmJihyPTApLGgocil9fSxbRShaLHtzaXplOm8sbmFtZTpiP2E6dSxjbGFzczpqcChgaWNvbmAse2Rpc2FibGVkOmQsZnVsbDpifSksY29sb3I6ZD92OmI/czpmLGNsYXNzUHJlZml4Ol99LG51bGwpLFMmJkUoWix7c2l6ZTpvLHN0eWxlOnt3aWR0aDp0LnZhbHVlK2BlbWB9LG5hbWU6eD91OmEsY2xhc3M6anAoYGljb25gLFtgaGFsZmAse2Rpc2FibGVkOmQsZnVsbDoheH1dKSxjb2xvcjpkP3Y6eD9mOnMsY2xhc3NQcmVmaXg6X30sbnVsbCldKX07cmV0dXJuIFduKCgpPT5lLm1vZGVsVmFsdWUpLEcoYHRvdWNobW92ZWAsXyx7dGFyZ2V0OmF9KSwoKT0+RShgZGl2YCx7cmVmOmEscm9sZTpgcmFkaW9ncm91cGAsY2xhc3M6anAoe3JlYWRvbmx5OmUucmVhZG9ubHksZGlzYWJsZWQ6ZS5kaXNhYmxlZH0pLHRhYmluZGV4OmUuZGlzYWJsZWQ/dm9pZCAwOjAsImFyaWEtZGlzYWJsZWQiOmUuZGlzYWJsZWQsImFyaWEtcmVhZG9ubHkiOmUucmVhZG9ubHksb25Ub3VjaHN0YXJ0UGFzc2l2ZTpnfSxbYy52YWx1ZS5tYXAodildKX19KSksUHA9e2ZpZ3VyZUFycjpWKCksZGVsYXk6TnVtYmVyLGR1cmF0aW9uOmRuKDIpLGlzU3RhcnQ6Qm9vbGVhbixkaXJlY3Rpb246VShgZG93bmApLGhlaWdodDpkbig0MCl9LFtGcCxJcF09Sihgcm9sbGluZy10ZXh0LWl0ZW1gKSxMcD1QKHtuYW1lOkZwLHByb3BzOlBwLHNldHVwKGUpe2xldCB0PU4oKCk9PmUuZGlyZWN0aW9uPT09YGRvd25gP2UuZmlndXJlQXJyLnNsaWNlKCkucmV2ZXJzZSgpOmUuZmlndXJlQXJyKSxuPU4oKCk9PmAtJHtlLmhlaWdodCooZS5maWd1cmVBcnIubGVuZ3RoLTEpfXB4YCkscj1OKCgpPT4oe2xpbmVIZWlnaHQ6cShlLmhlaWdodCl9KSksaT1OKCgpPT4oe2hlaWdodDpxKGUuaGVpZ2h0KSwiLS12YW4tdHJhbnNsYXRlIjpuLnZhbHVlLCItLXZhbi1kdXJhdGlvbiI6ZS5kdXJhdGlvbitgc2AsIi0tdmFuLWRlbGF5IjplLmRlbGF5K2BzYH0pKTtyZXR1cm4oKT0+RShgZGl2YCx7Y2xhc3M6SXAoW2UuZGlyZWN0aW9uXSksc3R5bGU6aS52YWx1ZX0sW0UoYGRpdmAse2NsYXNzOklwKGBib3hgLHthbmltYXRlOmUuaXNTdGFydH0pfSxbQXJyYXkuaXNBcnJheSh0LnZhbHVlKSYmdC52YWx1ZS5tYXAoZT0+RShgZGl2YCx7Y2xhc3M6SXAoYGl0ZW1gKSxzdHlsZTpyLnZhbHVlfSxbZV0pKV0pXSl9fSksW1JwLHpwXT1KKGByb2xsaW5nLXRleHRgKSxCcD17c3RhcnROdW06ZG4oMCksdGFyZ2V0TnVtOk51bWJlcix0ZXh0TGlzdDpWKCksZHVyYXRpb246ZG4oMiksYXV0b1N0YXJ0OkIsZGlyZWN0aW9uOlUoYGRvd25gKSxzdG9wT3JkZXI6VShgbHRyYCksaGVpZ2h0OmRuKDQwKX0sVnA9MixIcD1ZKFAoe25hbWU6UnAscHJvcHM6QnAsc2V0dXAoZSl7bGV0IHQ9TigoKT0+QXJyYXkuaXNBcnJheShlLnRleHRMaXN0KSYmZS50ZXh0TGlzdC5sZW5ndGgpLG49TigoKT0+dC52YWx1ZT9lLnRleHRMaXN0WzBdLmxlbmd0aDpgJHtNYXRoLm1heChlLnN0YXJ0TnVtLGUudGFyZ2V0TnVtKX1gLmxlbmd0aCkscj10PT57bGV0IG49W107Zm9yKGxldCByPTA7cjxlLnRleHRMaXN0Lmxlbmd0aDtyKyspbi5wdXNoKGUudGV4dExpc3Rbcl1bdF0pO3JldHVybiBufSxpPU4oKCk9PnQudmFsdWU/QXJyYXkobi52YWx1ZSkuZmlsbChgYCk6aHIoZS50YXJnZXROdW0sbi52YWx1ZSkuc3BsaXQoYGApKSxhPU4oKCk9PmhyKGUuc3RhcnROdW0sbi52YWx1ZSkuc3BsaXQoYGApKSxvPWU9PntsZXQgdD0rYS52YWx1ZVtlXSxuPStpLnZhbHVlW2VdLHI9W107Zm9yKGxldCBlPXQ7ZTw9OTtlKyspci5wdXNoKGUpO2ZvcihsZXQgZT0wO2U8PVZwO2UrKylmb3IobGV0IGU9MDtlPD05O2UrKylyLnB1c2goZSk7Zm9yKGxldCBlPTA7ZTw9bjtlKyspci5wdXNoKGUpO3JldHVybiByfSxzPSh0LG4pPT5lLnN0b3BPcmRlcj09PWBsdHJgPy4yKnQ6LjIqKG4tMS10KSxjPWIoZS5hdXRvU3RhcnQpLGw9KCk9PntjLnZhbHVlPSEwfTtyZXR1cm4gZigoKT0+ZS5hdXRvU3RhcnQsZT0+e2UmJmwoKX0pLFgoe3N0YXJ0OmwscmVzZXQ6KCk9PntjLnZhbHVlPSExLGUuYXV0b1N0YXJ0JiZwbigoKT0+bCgpKX19KSwoKT0+RShgZGl2YCx7Y2xhc3M6enAoKX0sW2kudmFsdWUubWFwKChpLGEpPT5FKExwLHtmaWd1cmVBcnI6dC52YWx1ZT9yKGEpOm8oYSksZHVyYXRpb246ZS5kdXJhdGlvbixkaXJlY3Rpb246ZS5kaXJlY3Rpb24saXNTdGFydDpjLnZhbHVlLGhlaWdodDplLmhlaWdodCxkZWxheTpzKGEsbi52YWx1ZSl9LG51bGwpKV0pfX0pKSxVcD1ZKGNsKSxbV3AsR3AsS3BdPUooYHNlYXJjaGApLHFwPVkoUCh7bmFtZTpXcCxwcm9wczpJKHt9LEJvLHtsYWJlbDpTdHJpbmcsc2hhcGU6VShgc3F1YXJlYCksbGVmdEljb246VShgc2VhcmNoYCksY2xlYXJhYmxlOkIsYWN0aW9uVGV4dDpTdHJpbmcsYmFja2dyb3VuZDpTdHJpbmcsc2hvd0FjdGlvbjpCb29sZWFufSksZW1pdHM6W2BibHVyYCxgZm9jdXNgLGBjbGVhcmAsYHNlYXJjaGAsYGNhbmNlbGAsYGNsaWNrSW5wdXRgLGBjbGlja0xlZnRJY29uYCxgY2xpY2tSaWdodEljb25gLGB1cGRhdGU6bW9kZWxWYWx1ZWBdLHNldHVwKGUse2VtaXQ6dCxzbG90czpuLGF0dHJzOml9KXtsZXQgYT1FYSgpLG89YigpLHM9KCk9PntuLmFjdGlvbnx8KHQoYHVwZGF0ZTptb2RlbFZhbHVlYCxgYCksdChgY2FuY2VsYCkpfSxjPW49PntuLmtleUNvZGU9PT0xMyYmKEsobiksdChgc2VhcmNoYCxlLm1vZGVsVmFsdWUpKX0sbD0oKT0+ZS5pZHx8YCR7YX0taW5wdXRgLHU9KCk9PntpZihuLmxhYmVsfHxlLmxhYmVsKXJldHVybiBFKGBsYWJlbGAse2NsYXNzOkdwKGBsYWJlbGApLGZvcjpsKCksImRhdGEtYWxsb3ctbWlzbWF0Y2giOmBhdHRyaWJ1dGVgfSxbbi5sYWJlbD9uLmxhYmVsKCk6ZS5sYWJlbF0pfSxkPSgpPT57aWYoZS5zaG93QWN0aW9uKXtsZXQgdD1lLmFjdGlvblRleHR8fEtwKGBjYW5jZWxgKTtyZXR1cm4gRShgZGl2YCx7Y2xhc3M6R3AoYGFjdGlvbmApLHJvbGU6YGJ1dHRvbmAsdGFiaW5kZXg6MCxvbkNsaWNrOnN9LFtuLmFjdGlvbj9uLmFjdGlvbigpOnRdKX19LGY9KCk9Pm8udmFsdWU/LmJsdXIoKSxwPSgpPT5vLnZhbHVlPy5mb2N1cygpLG09ZT0+dChgYmx1cmAsZSksaD1lPT50KGBmb2N1c2AsZSksZz1lPT50KGBjbGVhcmAsZSksXz1lPT50KGBjbGlja0lucHV0YCxlKSx2PWU9PnQoYGNsaWNrTGVmdEljb25gLGUpLHk9ZT0+dChgY2xpY2tSaWdodEljb25gLGUpLHg9T2JqZWN0LmtleXMoQm8pLFM9KCk9PntsZXQgYT1JKHt9LGksUihlLHgpLHtpZDpsKCl9KTtyZXR1cm4gRShWbyxyKHtyZWY6byx0eXBlOmBzZWFyY2hgLGNsYXNzOkdwKGBmaWVsZGAseyJ3aXRoLW1lc3NhZ2UiOmEuZXJyb3JNZXNzYWdlfSksYm9yZGVyOiExLGxhYmVsQWxpZ246YGxlZnRgLG9uQmx1cjptLG9uRm9jdXM6aCxvbkNsZWFyOmcsb25LZXlwcmVzczpjLG9uQ2xpY2tJbnB1dDpfLG9uQ2xpY2tMZWZ0SWNvbjp2LG9uQ2xpY2tSaWdodEljb246eSwib25VcGRhdGU6bW9kZWxWYWx1ZSI6ZT0+dChgdXBkYXRlOm1vZGVsVmFsdWVgLGUpfSxhKSxSKG4sW2BsZWZ0LWljb25gLGByaWdodC1pY29uYF0pKX07cmV0dXJuIFgoe2ZvY3VzOnAsYmx1cjpmfSksKCk9PkUoYGRpdmAse2NsYXNzOkdwKHsic2hvdy1hY3Rpb24iOmUuc2hvd0FjdGlvbn0pLHN0eWxlOntiYWNrZ3JvdW5kOmUuYmFja2dyb3VuZH19LFtuLmxlZnQ/LmNhbGwobiksRShgZGl2YCx7Y2xhc3M6R3AoYGNvbnRlbnRgLGUuc2hhcGUpfSxbdSgpLFMoKV0pLGQoKV0pfX0pKSxKcD1lPT5lPy5pbmNsdWRlcyhgL2ApLFlwPVsuLi5OaSxgcm91bmRgLGBjbG9zZU9uUG9wc3RhdGVgLGBzYWZlQXJlYUluc2V0Qm90dG9tYF0sWHA9e3FxOmBxcWAsbGluazpgbGluay1vYCx3ZWlibzpgd2VpYm9gLHFyY29kZTpgcXJgLHBvc3RlcjpgcGhvdG8tb2Asd2VjaGF0OmB3ZWNoYXRgLCJ3ZWFwcC1xcmNvZGUiOmBtaW5pcHJvZ3JhbS1vYCwid2VjaGF0LW1vbWVudHMiOmB3ZWNoYXQtbW9tZW50c2B9LFtacCxRcCwkcF09Sihgc2hhcmUtc2hlZXRgKSxlbT1ZKFAoe25hbWU6WnAscHJvcHM6SSh7fSxNaSx7dGl0bGU6U3RyaW5nLHJvdW5kOkIsb3B0aW9uczpWKCksY2FuY2VsVGV4dDpTdHJpbmcsZGVzY3JpcHRpb246U3RyaW5nLGNsb3NlT25Qb3BzdGF0ZTpCLHNhZmVBcmVhSW5zZXRCb3R0b206Qn0pLGVtaXRzOltgY2FuY2VsYCxgc2VsZWN0YCxgdXBkYXRlOnNob3dgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCBpPWU9PnQoYHVwZGF0ZTpzaG93YCxlKSxhPSgpPT57aSghMSksdChgY2FuY2VsYCl9LG89KGUsbik9PnQoYHNlbGVjdGAsZSxuKSxzPSgpPT57bGV0IHQ9bi50aXRsZT9uLnRpdGxlKCk6ZS50aXRsZSxyPW4uZGVzY3JpcHRpb24/bi5kZXNjcmlwdGlvbigpOmUuZGVzY3JpcHRpb247aWYodHx8cilyZXR1cm4gRShgZGl2YCx7Y2xhc3M6UXAoYGhlYWRlcmApfSxbdCYmRShgaDJgLHtjbGFzczpRcChgdGl0bGVgKX0sW3RdKSxyJiZFKGBzcGFuYCx7Y2xhc3M6UXAoYGRlc2NyaXB0aW9uYCl9LFtyXSldKX0sYz1lPT5KcChlKT9FKGBpbWdgLHtzcmM6ZSxjbGFzczpRcChgaW1hZ2UtaWNvbmApfSxudWxsKTpFKGBkaXZgLHtjbGFzczpRcChgaWNvbmAsW2VdKX0sW0UoWix7bmFtZTpYcFtlXXx8ZX0sbnVsbCldKSxsPShlLHQpPT57bGV0e25hbWU6bixpY29uOnIsY2xhc3NOYW1lOmksZGVzY3JpcHRpb246YX09ZTtyZXR1cm4gRShgZGl2YCx7cm9sZTpgYnV0dG9uYCx0YWJpbmRleDowLGNsYXNzOltRcChgb3B0aW9uYCksaSx6cl0sb25DbGljazooKT0+byhlLHQpfSxbYyhyKSxuJiZFKGBzcGFuYCx7Y2xhc3M6UXAoYG5hbWVgKX0sW25dKSxhJiZFKGBzcGFuYCx7Y2xhc3M6UXAoYG9wdGlvbi1kZXNjcmlwdGlvbmApfSxbYV0pXSl9LHU9KGUsdCk9PkUoYGRpdmAse2NsYXNzOlFwKGBvcHRpb25zYCx7Ym9yZGVyOnR9KX0sW2UubWFwKGwpXSksZD0oKT0+e2xldHtvcHRpb25zOnR9PWU7cmV0dXJuIEFycmF5LmlzQXJyYXkodFswXSk/dC5tYXAoKGUsdCk9PnUoZSx0IT09MCkpOnUodCl9LGY9KCk9PntsZXQgdD1lLmNhbmNlbFRleHQ/PyRwKGBjYW5jZWxgKTtpZihuLmNhbmNlbHx8dClyZXR1cm4gRShgYnV0dG9uYCx7dHlwZTpgYnV0dG9uYCxjbGFzczpRcChgY2FuY2VsYCksb25DbGljazphfSxbbi5jYW5jZWw/bi5jYW5jZWwoKTp0XSl9O3JldHVybigpPT5FKHFpLHIoe2NsYXNzOlFwKCkscG9zaXRpb246YGJvdHRvbWAsIm9uVXBkYXRlOnNob3ciOml9LFIoZSxZcCkpLHtkZWZhdWx0OigpPT5bcygpLGQoKSxmKCldfSl9fSkpLFt0bSxubV09Sihgc2lkZWJhcmApLHJtPVN5bWJvbCh0bSksaW09WShQKHtuYW1lOnRtLHByb3BzOnttb2RlbFZhbHVlOkgoMCl9LGVtaXRzOltgY2hhbmdlYCxgdXBkYXRlOm1vZGVsVmFsdWVgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldHtsaW5rQ2hpbGRyZW46cn09Q24ocm0pLGk9KCk9PitlLm1vZGVsVmFsdWU7cmV0dXJuIHIoe2dldEFjdGl2ZTppLHNldEFjdGl2ZTplPT57ZSE9PWkoKSYmKHQoYHVwZGF0ZTptb2RlbFZhbHVlYCxlKSx0KGBjaGFuZ2VgLGUpKX19KSwoKT0+RShgZGl2YCx7cm9sZTpgdGFibGlzdGAsY2xhc3M6bm0oKX0sW24uZGVmYXVsdD8uY2FsbChuKV0pfX0pKSxbYW0sb21dPUooYHNpZGViYXItaXRlbWApLHNtPVkoUCh7bmFtZTphbSxwcm9wczpJKHt9LFpyLHtkb3Q6Qm9vbGVhbix0aXRsZTpTdHJpbmcsYmFkZ2U6eixkaXNhYmxlZDpCb29sZWFuLGJhZGdlUHJvcHM6T2JqZWN0fSksZW1pdHM6W2BjbGlja2BdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7bGV0IGk9JHIoKSx7cGFyZW50OmEsaW5kZXg6b309eW4ocm0pO2lmKCFhKXJldHVybjtsZXQgcz0oKT0+e2UuZGlzYWJsZWR8fCh0KGBjbGlja2Asby52YWx1ZSksYS5zZXRBY3RpdmUoby52YWx1ZSksaSgpKX07cmV0dXJuKCk9PntsZXR7ZG90OnQsYmFkZ2U6aSx0aXRsZTpjLGRpc2FibGVkOmx9PWUsdT1vLnZhbHVlPT09YS5nZXRBY3RpdmUoKTtyZXR1cm4gRShgZGl2YCx7cm9sZTpgdGFiYCxjbGFzczpvbSh7c2VsZWN0OnUsZGlzYWJsZWQ6bH0pLHRhYmluZGV4Omw/dm9pZCAwOjAsImFyaWEtc2VsZWN0ZWQiOnUsb25DbGljazpzfSxbRShuaSxyKHtkb3Q6dCxjbGFzczpvbShgdGV4dGApLGNvbnRlbnQ6aX0sZS5iYWRnZVByb3BzKSx7ZGVmYXVsdDooKT0+W24udGl0bGU/bi50aXRsZSgpOmNdfSldKX19fSkpLFtjbSxsbSx1bV09Sihgc2lnbmF0dXJlYCksZG09e3RpcHM6U3RyaW5nLHR5cGU6VShgcG5nYCkscGVuQ29sb3I6VShgIzAwMGApLGxpbmVXaWR0aDpkbigzKSxoaXN0b3J5U2l6ZTpkbigyMCksdW5kb0J1dHRvblRleHQ6U3RyaW5nLGNsZWFyQnV0dG9uVGV4dDpTdHJpbmcsYmFja2dyb3VuZENvbG9yOlUoYGApLGNvbmZpcm1CdXR0b25UZXh0OlN0cmluZ30sZm09KCk9PntsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBjYW52YXNgKTtyZXR1cm4hIWUuZ2V0Q29udGV4dD8uY2FsbChlLGAyZGApfSxwbT1ZKFAoe25hbWU6Y20scHJvcHM6ZG0sZW1pdHM6W2BzdWJtaXRgLGBjbGVhcmAsYHN0YXJ0YCxgZW5kYCxgc2lnbmluZ2BdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7bGV0IHI9YigpLGk9YigpLGE9TigoKT0+ci52YWx1ZT9yLnZhbHVlLmdldENvbnRleHQoYDJkYCk6bnVsbCksbz1adD9mbSgpOiEwLHM9MCxjPTAsbCx1PWIoW10pLGQ9KCk9PnthLnZhbHVlJiZzJiZjJiYodS52YWx1ZS5sZW5ndGg+PWUuaGlzdG9yeVNpemUmJnUudmFsdWUuc2hpZnQoKSx1LnZhbHVlLnB1c2goYS52YWx1ZS5nZXRJbWFnZURhdGEoMCwwLHMsYykpKX0scD0oKT0+e2lmKCFhLnZhbHVlKXJldHVybiExO2EudmFsdWUuYmVnaW5QYXRoKCksYS52YWx1ZS5saW5lV2lkdGg9ZS5saW5lV2lkdGgsYS52YWx1ZS5zdHJva2VTdHlsZT1lLnBlbkNvbG9yLGw9VyhyKSx0KGBzdGFydGApfSxtPWU9PntpZighYS52YWx1ZSlyZXR1cm4hMTtLKGUpO2xldCBuPWUudG91Y2hlc1swXSxyPW4uY2xpZW50WC0obD8ubGVmdHx8MCksaT1uLmNsaWVudFktKGw/LnRvcHx8MCk7YS52YWx1ZS5saW5lQ2FwPWByb3VuZGAsYS52YWx1ZS5saW5lSm9pbj1gcm91bmRgLGEudmFsdWUubGluZVRvKHIsaSksYS52YWx1ZS5zdHJva2UoKSx0KGBzaWduaW5nYCxlKX0saD1lPT57SyhlKSxkKCksdChgZW5kYCl9LGc9dD0+e2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYGNhbnZhc2ApO3JldHVybiBuLndpZHRoPXQud2lkdGgsbi5oZWlnaHQ9dC5oZWlnaHQsZS5iYWNrZ3JvdW5kQ29sb3ImJl8obi5nZXRDb250ZXh0KGAyZGApKSx0LnRvRGF0YVVSTCgpPT09bi50b0RhdGFVUkwoKX0sXz10PT57dCYmZS5iYWNrZ3JvdW5kQ29sb3ImJih0LmZpbGxTdHlsZT1lLmJhY2tncm91bmRDb2xvcix0LmZpbGxSZWN0KDAsMCxzLGMpKX0sdj0oKT0+e3ZhciBuO2xldCBpPXIudmFsdWU7aSYmdChgc3VibWl0YCx7aW1hZ2U6ZyhpKT9gYDoobj17anBnOigpPT5pLnRvRGF0YVVSTChgaW1hZ2UvanBlZ2AsLjgpLGpwZWc6KCk9PmkudG9EYXRhVVJMKGBpbWFnZS9qcGVnYCwuOCl9KVtlLnR5cGVdPy5jYWxsKG4pfHxpLnRvRGF0YVVSTChgaW1hZ2UvJHtlLnR5cGV9YCksY2FudmFzOml9KX0seT0oKT0+e2EudmFsdWUmJihhLnZhbHVlLmNsZWFyUmVjdCgwLDAscyxjKSxhLnZhbHVlLmNsb3NlUGF0aCgpLF8oYS52YWx1ZSkpLHUudmFsdWU9W10sdChgY2xlYXJgKX0seD0oKT0+e3UudmFsdWUubGVuZ3RoJiYodS52YWx1ZS5wb3AoKSxhLnZhbHVlJiYoYS52YWx1ZS5jbGVhclJlY3QoMCwwLHMsYyksXyhhLnZhbHVlKSx1LnZhbHVlLmxlbmd0aCYmYS52YWx1ZS5wdXRJbWFnZURhdGEodS52YWx1ZVt1LnZhbHVlLmxlbmd0aC0xXSwwLDApKSl9LFM9KCk9Pnt2YXIgZTtpZihvJiZyLnZhbHVlKXtsZXQgdD1yLnZhbHVlLG49WnQ/d2luZG93LmRldmljZVBpeGVsUmF0aW86MTtzPXQud2lkdGg9KGkudmFsdWU/Lm9mZnNldFdpZHRofHwwKSpuLGM9dC5oZWlnaHQ9KGkudmFsdWU/Lm9mZnNldEhlaWdodHx8MCkqbiwoZT1hLnZhbHVlKT09bnVsbHx8ZS5zY2FsZShuLG4pLF8oYS52YWx1ZSl9fSxDPSgpPT57aWYoYS52YWx1ZSl7bGV0IGU9YS52YWx1ZS5nZXRJbWFnZURhdGEoMCwwLHMsYyk7UygpLGEudmFsdWUucHV0SW1hZ2VEYXRhKGUsMCwwKX19O3JldHVybiBmKGVyLEMpLE0oUyksWCh7cmVzaXplOkMsY2xlYXI6eSxzdWJtaXQ6dix1bmRvOnh9KSwoKT0+RShgZGl2YCx7Y2xhc3M6bG0oKX0sW0UoYGRpdmAse2NsYXNzOmxtKGBjb250ZW50YCkscmVmOml9LFtvP0UoYGNhbnZhc2Ase3JlZjpyLG9uVG91Y2hzdGFydFBhc3NpdmU6cCxvblRvdWNobW92ZTptLG9uVG91Y2hlbmQ6aH0sbnVsbCk6bi50aXBzP24udGlwcygpOkUoYHBgLG51bGwsW2UudGlwc10pXSksRShgZGl2YCx7Y2xhc3M6bG0oYGZvb3RlcmApfSxbRShUaSx7c2l6ZTpgc21hbGxgLG9uQ2xpY2s6eX0se2RlZmF1bHQ6KCk9PltlLmNsZWFyQnV0dG9uVGV4dHx8dW0oYGNsZWFyYCldfSksRShUaSx7c2l6ZTpgc21hbGxgLG9uQ2xpY2s6eH0se2RlZmF1bHQ6KCk9PltlLnVuZG9CdXR0b25UZXh0fHx1bShgdW5kb2ApXX0pLEUoVGkse3R5cGU6YHByaW1hcnlgLHNpemU6YHNtYWxsYCxvbkNsaWNrOnZ9LHtkZWZhdWx0OigpPT5bZS5jb25maXJtQnV0dG9uVGV4dHx8dW0oYGNvbmZpcm1gKV19KV0pXSl9fSkpLFttbSxobV09Sihgc2tlbGV0b24tdGl0bGVgKSxnbT1ZKFAoe25hbWU6bW0scHJvcHM6e3JvdW5kOkJvb2xlYW4sdGl0bGVXaWR0aDp6fSxzZXR1cChlKXtyZXR1cm4oKT0+RShgaDNgLHtjbGFzczpobShbe3JvdW5kOmUucm91bmR9XSksc3R5bGU6e3dpZHRoOnEoZS50aXRsZVdpZHRoKX19LG51bGwpfX0pKSxfbT1nbSxbdm0seW1dPUooYHNrZWxldG9uLWF2YXRhcmApLGJtPVkoUCh7bmFtZTp2bSxwcm9wczp7YXZhdGFyU2l6ZTp6LGF2YXRhclNoYXBlOlUoYHJvdW5kYCl9LHNldHVwKGUpe3JldHVybigpPT5FKGBkaXZgLHtjbGFzczp5bShbZS5hdmF0YXJTaGFwZV0pLHN0eWxlOmlyKGUuYXZhdGFyU2l6ZSl9LG51bGwpfX0pKSx4bT1ibSxTbT1gMTAwJWAsQ209e3JvdW5kOkJvb2xlYW4scm93V2lkdGg6e3R5cGU6eixkZWZhdWx0OlNtfX0sW3dtLFRtXT1KKGBza2VsZXRvbi1wYXJhZ3JhcGhgKSxFbT1ZKFAoe25hbWU6d20scHJvcHM6Q20sc2V0dXAoZSl7cmV0dXJuKCk9PkUoYGRpdmAse2NsYXNzOlRtKFt7cm91bmQ6ZS5yb3VuZH1dKSxzdHlsZTp7d2lkdGg6ZS5yb3dXaWR0aH19LG51bGwpfX0pKSxEbT1FbSxbT20sa21dPUooYHNrZWxldG9uYCksQW09YDYwJWAsam09WShQKHtuYW1lOk9tLGluaGVyaXRBdHRyczohMSxwcm9wczp7cm93OkgoMCkscm91bmQ6Qm9vbGVhbix0aXRsZTpCb29sZWFuLHRpdGxlV2lkdGg6eixhdmF0YXI6Qm9vbGVhbixhdmF0YXJTaXplOnosYXZhdGFyU2hhcGU6VShgcm91bmRgKSxsb2FkaW5nOkIsYW5pbWF0ZTpCLHJvd1dpZHRoOnt0eXBlOltOdW1iZXIsU3RyaW5nLEFycmF5XSxkZWZhdWx0OlNtfX0sc2V0dXAoZSx7c2xvdHM6dCxhdHRyczpufSl7bGV0IGk9KCk9PntpZihlLmF2YXRhcilyZXR1cm4gRSh4bSx7YXZhdGFyU2hhcGU6ZS5hdmF0YXJTaGFwZSxhdmF0YXJTaXplOmUuYXZhdGFyU2l6ZX0sbnVsbCl9LGE9KCk9PntpZihlLnRpdGxlKXJldHVybiBFKF9tLHtyb3VuZDplLnJvdW5kLHRpdGxlV2lkdGg6ZS50aXRsZVdpZHRofSxudWxsKX0sbz10PT57bGV0e3Jvd1dpZHRoOm59PWU7cmV0dXJuIG49PT1gMTAwJWAmJnQ9PT1lLnJvdy0xP0FtOkFycmF5LmlzQXJyYXkobik/blt0XTpufSxzPSgpPT5BcnJheSgrZS5yb3cpLmZpbGwoYGApLm1hcCgodCxuKT0+RShEbSx7a2V5Om4scm91bmQ6ZS5yb3VuZCxyb3dXaWR0aDpxKG8obikpfSxudWxsKSksYz0oKT0+dC50ZW1wbGF0ZT90LnRlbXBsYXRlKCk6RShELG51bGwsW2koKSxFKGBkaXZgLHtjbGFzczprbShgY29udGVudGApfSxbYSgpLHMoKV0pXSk7cmV0dXJuKCk9PmUubG9hZGluZz9FKGBkaXZgLHIoe2NsYXNzOmttKHthbmltYXRlOmUuYW5pbWF0ZSxyb3VuZDplLnJvdW5kfSl9LG4pLFtjKCldKTp0LmRlZmF1bHQ/LmNhbGwodCl9fSkpLFtNbSxObV09Sihgc2tlbGV0b24taW1hZ2VgKSxQbT1ZKFAoe25hbWU6TW0scHJvcHM6e2ltYWdlU2l6ZTp6LGltYWdlU2hhcGU6VShgc3F1YXJlYCl9LHNldHVwKGUpe3JldHVybigpPT5FKGBkaXZgLHtjbGFzczpObShbZS5pbWFnZVNoYXBlXSksc3R5bGU6aXIoZS5pbWFnZVNpemUpfSxbRShaLHtuYW1lOmBwaG90b2AsY2xhc3M6Tm0oYGljb25gKX0sbnVsbCldKX19KSksW0ZtLEltXT1KKGBzbGlkZXJgKSxMbT1ZKFAoe25hbWU6Rm0scHJvcHM6e21pbjpIKDApLG1heDpIKDEwMCksc3RlcDpIKDEpLHJhbmdlOkJvb2xlYW4scmV2ZXJzZTpCb29sZWFuLGRpc2FibGVkOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbix2ZXJ0aWNhbDpCb29sZWFuLGJhckhlaWdodDp6LGJ1dHRvblNpemU6eixhY3RpdmVDb2xvcjpTdHJpbmcsaW5hY3RpdmVDb2xvcjpTdHJpbmcsbW9kZWxWYWx1ZTp7dHlwZTpbTnVtYmVyLEFycmF5XSxkZWZhdWx0OjB9fSxlbWl0czpbYGNoYW5nZWAsYGRyYWdFbmRgLGBkcmFnU3RhcnRgLGB1cGRhdGU6bW9kZWxWYWx1ZWBdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7bGV0IHIsaSxhLG89YigpLHM9W2IoKSxiKCldLGM9YigpLGw9RmkoKSx1PU4oKCk9Pk51bWJlcihlLm1heCktTnVtYmVyKGUubWluKSksZD1OKCgpPT57bGV0IHQ9ZS52ZXJ0aWNhbD9gd2lkdGhgOmBoZWlnaHRgO3JldHVybntiYWNrZ3JvdW5kOmUuaW5hY3RpdmVDb2xvcixbdF06cShlLmJhckhlaWdodCl9fSksZj10PT5lLnJhbmdlJiZBcnJheS5pc0FycmF5KHQpLHA9KCk9PntsZXR7bW9kZWxWYWx1ZTp0LG1pbjpufT1lO3JldHVybiBmKHQpP2Akeyh0WzFdLXRbMF0pKjEwMC91LnZhbHVlfSVgOmAkeyh0LU51bWJlcihuKSkqMTAwL3UudmFsdWV9JWB9LG09KCk9PntsZXR7bW9kZWxWYWx1ZTp0LG1pbjpufT1lO3JldHVybiBmKHQpP2Akeyh0WzBdLU51bWJlcihuKSkqMTAwL3UudmFsdWV9JWA6YDAlYH0saD1OKCgpPT57bGV0IHQ9e1tlLnZlcnRpY2FsP2BoZWlnaHRgOmB3aWR0aGBdOnAoKSxiYWNrZ3JvdW5kOmUuYWN0aXZlQ29sb3J9O2MudmFsdWUmJih0LnRyYW5zaXRpb249YG5vbmVgKTtsZXQgbj0oKT0+ZS52ZXJ0aWNhbD9lLnJldmVyc2U/YGJvdHRvbWA6YHRvcGA6ZS5yZXZlcnNlP2ByaWdodGA6YGxlZnRgO3JldHVybiB0W24oKV09bSgpLHR9KSxnPXQ9PntsZXQgbj0rZS5taW4scj0rZS5tYXgsaT0rZS5zdGVwO3JldHVybiB0PWdyKHQsbixyKSx5cihuLE1hdGgucm91bmQoKHQtbikvaSkqaSl9LF89KCk9PntsZXQgdD1lLm1vZGVsVmFsdWU7YT1mKHQpP3QubWFwKGcpOmcodCl9LHY9dD0+e2xldCBuPXRbMF0/P051bWJlcihlLm1pbikscj10WzFdPz9OdW1iZXIoZS5tYXgpO3JldHVybiBuPnI/W3Isbl06W24scl19LHk9KG4scik9PntuPWYobik/dihuKS5tYXAoZyk6ZyhuKSxzbihuLGUubW9kZWxWYWx1ZSl8fHQoYHVwZGF0ZTptb2RlbFZhbHVlYCxuKSxyJiYhc24obixhKSYmdChgY2hhbmdlYCxuKX0seD10PT57aWYodC5zdG9wUHJvcGFnYXRpb24oKSxlLmRpc2FibGVkfHxlLnJlYWRvbmx5KXJldHVybjtfKCk7bGV0e21pbjpuLHJldmVyc2U6cix2ZXJ0aWNhbDppLG1vZGVsVmFsdWU6YX09ZSxzPVcobyksYz0oKT0+aT9yP3MuYm90dG9tLXQuY2xpZW50WTp0LmNsaWVudFktcy50b3A6cj9zLnJpZ2h0LXQuY2xpZW50WDp0LmNsaWVudFgtcy5sZWZ0LGw9aT9zLmhlaWdodDpzLndpZHRoLGQ9TnVtYmVyKG4pK2MoKS9sKnUudmFsdWU7aWYoZihhKSl7bGV0W2UsdF09YTtkPD0oZSt0KS8yP3koW2QsdF0sITApOnkoW2UsZF0sITApfWVsc2UgeShkLCEwKX0sUz10PT57ZS5kaXNhYmxlZHx8ZS5yZWFkb25seXx8KGwuc3RhcnQodCksaT1lLm1vZGVsVmFsdWUsXygpLGMudmFsdWU9YHN0YXJ0YCl9LEM9bj0+e2lmKGUuZGlzYWJsZWR8fGUucmVhZG9ubHkpcmV0dXJuO2MudmFsdWU9PT1gc3RhcnRgJiZ0KGBkcmFnU3RhcnRgLG4pLEsobiwhMCksbC5tb3ZlKG4pLGMudmFsdWU9YGRyYWdnaW5nYDtsZXQgcz1XKG8pLGQ9KGUudmVydGljYWw/bC5kZWx0YVkudmFsdWU6bC5kZWx0YVgudmFsdWUpLyhlLnZlcnRpY2FsP3MuaGVpZ2h0OnMud2lkdGgpKnUudmFsdWU7aWYoZS5yZXZlcnNlJiYoZD0tZCksZihhKSl7bGV0IHQ9ZS5yZXZlcnNlPzEtcjpyO2lbdF09YVt0XStkfWVsc2UgaT1hK2Q7eShpKX0sdz1uPT57ZS5kaXNhYmxlZHx8ZS5yZWFkb25seXx8KGMudmFsdWU9PT1gZHJhZ2dpbmdgJiYoeShpLCEwKSx0KGBkcmFnRW5kYCxuKSksYy52YWx1ZT1gYCl9LFQ9dD0+dHlwZW9mIHQ9PWBudW1iZXJgP0ltKGBidXR0b24td3JhcHBlcmAsW2BsZWZ0YCxgcmlnaHRgXVt0XSk6SW0oYGJ1dHRvbi13cmFwcGVyYCxlLnJldmVyc2U/YGxlZnRgOmByaWdodGApLEQ9KHQsYSk9PntsZXQgbz1jLnZhbHVlPT09YGRyYWdnaW5nYDtpZih0eXBlb2YgYT09YG51bWJlcmApe2xldCBlPW5bYT09PTA/YGxlZnQtYnV0dG9uYDpgcmlnaHQtYnV0dG9uYF0scztpZihvJiZBcnJheS5pc0FycmF5KGkpJiYocz1pWzBdPmlbMV0/cl4xOnIpLGUpcmV0dXJuIGUoe3ZhbHVlOnQsZHJhZ2dpbmc6byxkcmFnSW5kZXg6c30pfXJldHVybiBuLmJ1dHRvbj9uLmJ1dHRvbih7dmFsdWU6dCxkcmFnZ2luZzpvfSk6RShgZGl2YCx7Y2xhc3M6SW0oYGJ1dHRvbmApLHN0eWxlOmlyKGUuYnV0dG9uU2l6ZSl9LG51bGwpfSxPPXQ9PntsZXQgbj10eXBlb2YgdD09YG51bWJlcmA/ZS5tb2RlbFZhbHVlW3RdOmUubW9kZWxWYWx1ZTtyZXR1cm4gRShgZGl2YCx7cmVmOnNbdD8/MF0scm9sZTpgc2xpZGVyYCxjbGFzczpUKHQpLHRhYmluZGV4OmUuZGlzYWJsZWQ/dm9pZCAwOjAsImFyaWEtdmFsdWVtaW4iOmUubWluLCJhcmlhLXZhbHVlbm93IjpuLCJhcmlhLXZhbHVlbWF4IjplLm1heCwiYXJpYS1kaXNhYmxlZCI6ZS5kaXNhYmxlZHx8dm9pZCAwLCJhcmlhLXJlYWRvbmx5IjplLnJlYWRvbmx5fHx2b2lkIDAsImFyaWEtb3JpZW50YXRpb24iOmUudmVydGljYWw/YHZlcnRpY2FsYDpgaG9yaXpvbnRhbGAsb25Ub3VjaHN0YXJ0UGFzc2l2ZTplPT57dHlwZW9mIHQ9PWBudW1iZXJgJiYocj10KSxTKGUpfSxvblRvdWNoZW5kOncsb25Ub3VjaGNhbmNlbDp3LG9uQ2xpY2s6UW59LFtEKG4sdCldKX07cmV0dXJuIHkoZS5tb2RlbFZhbHVlKSxXbigoKT0+ZS5tb2RlbFZhbHVlKSxzLmZvckVhY2goZT0+e0coYHRvdWNobW92ZWAsQyx7dGFyZ2V0OmV9KX0pLCgpPT5FKGBkaXZgLHtyZWY6byxzdHlsZTpkLnZhbHVlLGNsYXNzOkltKHt2ZXJ0aWNhbDplLnZlcnRpY2FsLGRpc2FibGVkOmUuZGlzYWJsZWR9KSxvbkNsaWNrOnh9LFtFKGBkaXZgLHtjbGFzczpJbShgYmFyYCksc3R5bGU6aC52YWx1ZX0sW2UucmFuZ2U/W08oMCksTygxKV06TygpXSldKX19KSksW1JtLHptXT1KKGBzcGFjZWApLEJtPXthbGlnbjpTdHJpbmcsZGlyZWN0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OmBob3Jpem9udGFsYH0sc2l6ZTp7dHlwZTpbTnVtYmVyLFN0cmluZyxBcnJheV0sZGVmYXVsdDo4fSx3cmFwOkJvb2xlYW4sZmlsbDpCb29sZWFufTtmdW5jdGlvbiBWbShlPVtdKXtsZXQgdD1bXTtyZXR1cm4gZS5mb3JFYWNoKGU9PntBcnJheS5pc0FycmF5KGUpP3QucHVzaCguLi5lKTplLnR5cGU9PT1EP3QucHVzaCguLi5WbShlLmNoaWxkcmVuKSk6dC5wdXNoKGUpfSksdC5maWx0ZXIoZT0+IShlJiYoZS50eXBlPT09YWV8fGUudHlwZT09PUQmJmUuY2hpbGRyZW4/Lmxlbmd0aD09PTB8fGUudHlwZT09PXZlJiZlLmNoaWxkcmVuLnRyaW0oKT09PWBgKSkpfXZhciBIbT1ZKFAoe25hbWU6Um0scHJvcHM6Qm0sc2V0dXAoZSx7c2xvdHM6dH0pe2xldCBuPU4oKCk9PmUuYWxpZ24/PyhlLmRpcmVjdGlvbj09PWBob3Jpem9udGFsYD9gY2VudGVyYDpgYCkpLHI9ZT0+dHlwZW9mIGU9PWBudW1iZXJgP2UrYHB4YDplLGk9dD0+e2xldCBuPXt9LGk9YCR7cihBcnJheS5pc0FycmF5KGUuc2l6ZSk/ZS5zaXplWzBdOmUuc2l6ZSl9YCxhPWAke3IoQXJyYXkuaXNBcnJheShlLnNpemUpP2Uuc2l6ZVsxXTplLnNpemUpfWA7cmV0dXJuIHQ/ZS53cmFwP3ttYXJnaW5Cb3R0b206YX06e306KGUuZGlyZWN0aW9uPT09YGhvcml6b250YWxgJiYobi5tYXJnaW5SaWdodD1pKSwoZS5kaXJlY3Rpb249PT1gdmVydGljYWxgfHxlLndyYXApJiYobi5tYXJnaW5Cb3R0b209YSksbil9O3JldHVybigpPT57bGV0IHI9Vm0odC5kZWZhdWx0Py5jYWxsKHQpKTtyZXR1cm4gRShgZGl2YCx7Y2xhc3M6W3ptKHtbZS5kaXJlY3Rpb25dOmUuZGlyZWN0aW9uLFtgYWxpZ24tJHtuLnZhbHVlfWBdOm4udmFsdWUsd3JhcDplLndyYXAsZmlsbDplLmZpbGx9KV19LFtyLm1hcCgoZSx0KT0+RShgZGl2YCx7a2V5OmBpdGVtLSR7dH1gLGNsYXNzOmAke1JtfS1pdGVtYCxzdHlsZTppKHQ9PT1yLmxlbmd0aC0xKX0sW2VdKSldKX19fSkpLFtVbSxXbV09Sihgc3RlcHNgKSxHbT17YWN0aXZlOkgoMCksZGlyZWN0aW9uOlUoYGhvcml6b250YWxgKSxhY3RpdmVJY29uOlUoYGNoZWNrZWRgKSxpY29uUHJlZml4OlN0cmluZyxmaW5pc2hJY29uOlN0cmluZyxhY3RpdmVDb2xvcjpTdHJpbmcsaW5hY3RpdmVJY29uOlN0cmluZyxpbmFjdGl2ZUNvbG9yOlN0cmluZ30sS209U3ltYm9sKFVtKSxxbT1QKHtuYW1lOlVtLHByb3BzOkdtLGVtaXRzOltgY2xpY2tTdGVwYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXR7bGlua0NoaWxkcmVuOnJ9PUNuKEttKTtyZXR1cm4gcih7cHJvcHM6ZSxvbkNsaWNrU3RlcDplPT50KGBjbGlja1N0ZXBgLGUpfSksKCk9PkUoYGRpdmAse2NsYXNzOldtKFtlLmRpcmVjdGlvbl0pfSxbRShgZGl2YCx7Y2xhc3M6V20oYGl0ZW1zYCl9LFtuLmRlZmF1bHQ/LmNhbGwobildKV0pfX0pLFtKbSxZbV09Sihgc3RlcGApLFhtPVkoUCh7bmFtZTpKbSxzZXR1cChlLHtzbG90czp0fSl7bGV0e3BhcmVudDpuLGluZGV4OnJ9PXluKEttKTtpZighbilyZXR1cm47bGV0IGk9bi5wcm9wcyxhPSgpPT57bGV0IGU9K2kuYWN0aXZlO3JldHVybiByLnZhbHVlPGU/YGZpbmlzaGA6ci52YWx1ZT09PWU/YHByb2Nlc3NgOmB3YWl0aW5nYH0sbz0oKT0+YSgpPT09YHByb2Nlc3NgLHM9TigoKT0+KHtiYWNrZ3JvdW5kOmEoKT09PWBmaW5pc2hgP2kuYWN0aXZlQ29sb3I6aS5pbmFjdGl2ZUNvbG9yfSkpLGM9TigoKT0+e2lmKG8oKSlyZXR1cm57Y29sb3I6aS5hY3RpdmVDb2xvcn07aWYoYSgpPT09YHdhaXRpbmdgKXJldHVybntjb2xvcjppLmluYWN0aXZlQ29sb3J9fSksbD0oKT0+bi5vbkNsaWNrU3RlcChyLnZhbHVlKSx1PSgpPT57bGV0e2ljb25QcmVmaXg6ZSxmaW5pc2hJY29uOm4sYWN0aXZlSWNvbjpyLGFjdGl2ZUNvbG9yOmMsaW5hY3RpdmVJY29uOmx9PWk7cmV0dXJuIG8oKT90W2BhY3RpdmUtaWNvbmBdP3RbYGFjdGl2ZS1pY29uYF0oKTpFKFose2NsYXNzOlltKGBpY29uYCxgYWN0aXZlYCksbmFtZTpyLGNvbG9yOmMsY2xhc3NQcmVmaXg6ZX0sbnVsbCk6YSgpPT09YGZpbmlzaGAmJihufHx0W2BmaW5pc2gtaWNvbmBdKT90W2BmaW5pc2gtaWNvbmBdP3RbYGZpbmlzaC1pY29uYF0oKTpFKFose2NsYXNzOlltKGBpY29uYCxgZmluaXNoYCksbmFtZTpuLGNvbG9yOmMsY2xhc3NQcmVmaXg6ZX0sbnVsbCk6dFtgaW5hY3RpdmUtaWNvbmBdP3RbYGluYWN0aXZlLWljb25gXSgpOmw/RShaLHtjbGFzczpZbShgaWNvbmApLG5hbWU6bCxjbGFzc1ByZWZpeDplfSxudWxsKTpFKGBpYCx7Y2xhc3M6WW0oYGNpcmNsZWApLHN0eWxlOnMudmFsdWV9LG51bGwpfTtyZXR1cm4oKT0+e2xldCBlPWEoKTtyZXR1cm4gRShgZGl2YCx7Y2xhc3M6W2pyLFltKFtpLmRpcmVjdGlvbix7W2VdOmV9XSldfSxbRShgZGl2YCx7Y2xhc3M6WW0oYHRpdGxlYCx7YWN0aXZlOm8oKX0pLHN0eWxlOmMudmFsdWUsb25DbGljazpsfSxbdC5kZWZhdWx0Py5jYWxsKHQpXSksRShgZGl2YCx7Y2xhc3M6WW0oYGNpcmNsZS1jb250YWluZXJgKSxvbkNsaWNrOmx9LFt1KCldKSxFKGBkaXZgLHtjbGFzczpZbShgbGluZWApLHN0eWxlOnMudmFsdWV9LG51bGwpXSl9fX0pKSxbWm0sUW1dPUooYHN0ZXBwZXJgKSwkbT0yMDAsZWg9KGUsdCk9PlN0cmluZyhlKT09PVN0cmluZyh0KSx0aD1ZKFAoe25hbWU6Wm0scHJvcHM6e21pbjpIKDEpLG1heDpIKDEvMCksbmFtZTpIKGBgKSxzdGVwOkgoMSksdGhlbWU6U3RyaW5nLGludGVnZXI6Qm9vbGVhbixkaXNhYmxlZDpCb29sZWFuLHNob3dQbHVzOkIsc2hvd01pbnVzOkIsc2hvd0lucHV0OkIsbG9uZ1ByZXNzOkIsYXV0b0ZpeGVkOkIsYWxsb3dFbXB0eTpCb29sZWFuLG1vZGVsVmFsdWU6eixpbnB1dFdpZHRoOnosYnV0dG9uU2l6ZTp6LHBsYWNlaG9sZGVyOlN0cmluZyxkaXNhYmxlUGx1czpCb29sZWFuLGRpc2FibGVNaW51czpCb29sZWFuLGRpc2FibGVJbnB1dDpCb29sZWFuLGJlZm9yZUNoYW5nZTpGdW5jdGlvbixkZWZhdWx0VmFsdWU6SCgxKSxkZWNpbWFsTGVuZ3RoOnp9LGVtaXRzOltgcGx1c2AsYGJsdXJgLGBtaW51c2AsYGZvY3VzYCxgY2hhbmdlYCxgb3ZlcmxpbWl0YCxgdXBkYXRlOm1vZGVsVmFsdWVgXSxzZXR1cChlLHtlbWl0OnR9KXtsZXQgaT0odCxuPSEwKT0+e2xldHttaW46cixtYXg6aSxhbGxvd0VtcHR5OmEsZGVjaW1hbExlbmd0aDpvfT1lO3JldHVybiBhJiZ0PT09YGA/dDoodHlwZW9mIHQ9PWBudW1iZXJgJiZTdHJpbmcodCkuaW5jbHVkZXMoYGVgKSYmKHQ9dC50b0ZpeGVkKG8/K286MTcpKSx0PXZyKFN0cmluZyh0KSwhZS5pbnRlZ2VyKSx0PXQ9PT1gYD8wOit0LHQ9TnVtYmVyLmlzTmFOKHQpPytyOnQsdD1uP01hdGgubWF4KE1hdGgubWluKCtpLHQpLCtyKTp0LEwobykmJih0PXQudG9GaXhlZCgrbykpLHQpfSxhPSgpPT57bGV0IG49aShlLm1vZGVsVmFsdWU/P2UuZGVmYXVsdFZhbHVlKTtyZXR1cm4gZWgobixlLm1vZGVsVmFsdWUpfHx0KGB1cGRhdGU6bW9kZWxWYWx1ZWAsbiksbn0sbyxzPWIoKSxjPWIoYSgpKSxsPU4oKCk9PmUuZGlzYWJsZWR8fGUuZGlzYWJsZU1pbnVzfHwrYy52YWx1ZTw9K2UubWluKSx1PU4oKCk9PmUuZGlzYWJsZWR8fGUuZGlzYWJsZVBsdXN8fCtjLnZhbHVlPj0rZS5tYXgpLGQ9TigoKT0+KHt3aWR0aDpxKGUuaW5wdXRXaWR0aCksaGVpZ2h0OnEoZS5idXR0b25TaXplKX0pKSxwPU4oKCk9PmlyKGUuYnV0dG9uU2l6ZSkpLG09KCk9PntsZXQgZT1pKGMudmFsdWUpO2VoKGUsYy52YWx1ZSl8fChjLnZhbHVlPWUpfSxoPXQ9PntlLmJlZm9yZUNoYW5nZT9WcihlLmJlZm9yZUNoYW5nZSx7YXJnczpbdF0sZG9uZSgpe2MudmFsdWU9dH19KTpjLnZhbHVlPXR9LGc9KCk9PntpZihvPT09YHBsdXNgJiZ1LnZhbHVlfHxvPT09YG1pbnVzYCYmbC52YWx1ZSl7dChgb3ZlcmxpbWl0YCxvKTtyZXR1cm59bGV0IG49bz09PWBtaW51c2A/LWUuc3RlcDorZS5zdGVwO2goaSh5cigrYy52YWx1ZSxuKSkpLHQobyl9LF89dD0+e2xldCBuPXQudGFyZ2V0LHt2YWx1ZTpyfT1uLHtkZWNpbWFsTGVuZ3RoOml9PWUsYT12cihTdHJpbmcociksIWUuaW50ZWdlcik7aWYoTChpKSYmYS5pbmNsdWRlcyhgLmApKXtsZXQgZT1hLnNwbGl0KGAuYCk7YT1gJHtlWzBdfS4ke2VbMV0uc2xpY2UoMCwraSl9YH1lLmJlZm9yZUNoYW5nZT9uLnZhbHVlPVN0cmluZyhjLnZhbHVlKTplaChyLGEpfHwobi52YWx1ZT1hKSxoKGE9PT1TdHJpbmcoK2EpPythOmEpfSx2PW49Pnt2YXIgcjtlLmRpc2FibGVJbnB1dD8ocj1zLnZhbHVlKT09bnVsbHx8ci5ibHVyKCk6dChgZm9jdXNgLG4pfSx5PW49PntsZXQgcj1uLnRhcmdldCxhPWkoci52YWx1ZSxlLmF1dG9GaXhlZCk7ci52YWx1ZT1TdHJpbmcoYSksYy52YWx1ZT1hLEYoKCk9Pnt0KGBibHVyYCxuKSxabigpfSl9LHgsUyxDPSgpPT57Uz1zZXRUaW1lb3V0KCgpPT57ZygpLEMoKX0sJG0pfSx3PSgpPT57ZS5sb25nUHJlc3MmJih4PSExLGNsZWFyVGltZW91dChTKSxTPXNldFRpbWVvdXQoKCk9Pnt4PSEwLGcoKSxDKCl9LDUwMCkpfSxUPXQ9PntlLmxvbmdQcmVzcyYmKGNsZWFyVGltZW91dChTKSx4JiZLKHQpKX0sRD10PT57ZS5kaXNhYmxlSW5wdXQmJksodCl9LE89ZT0+KHtvbkNsaWNrOnQ9PntLKHQpLG89ZSxnKCl9LG9uVG91Y2hzdGFydFBhc3NpdmU6KCk9PntvPWUsdygpfSxvblRvdWNoZW5kOlQsb25Ub3VjaGNhbmNlbDpUfSk7cmV0dXJuIGYoKCk9PltlLm1heCxlLm1pbixlLmludGVnZXIsZS5kZWNpbWFsTGVuZ3RoXSxtKSxmKCgpPT5lLm1vZGVsVmFsdWUsZT0+e2VoKGUsYy52YWx1ZSl8fChjLnZhbHVlPWkoZSkpfSksZihjLG49Pnt0KGB1cGRhdGU6bW9kZWxWYWx1ZWAsbiksdChgY2hhbmdlYCxuLHtuYW1lOmUubmFtZX0pfSksV24oKCk9PmUubW9kZWxWYWx1ZSksKCk9PkUoYGRpdmAse3JvbGU6YGdyb3VwYCxjbGFzczpRbShbZS50aGVtZV0pfSxbbihFKGBidXR0b25gLHIoe3R5cGU6YGJ1dHRvbmAsc3R5bGU6cC52YWx1ZSxjbGFzczpbUW0oYG1pbnVzYCx7ZGlzYWJsZWQ6bC52YWx1ZX0pLHtbenJdOiFsLnZhbHVlfV0sImFyaWEtZGlzYWJsZWQiOmwudmFsdWV8fHZvaWQgMH0sTyhgbWludXNgKSksbnVsbCksW1tpdCxlLnNob3dNaW51c11dKSxuKEUoYGlucHV0YCx7cmVmOnMsdHlwZTplLmludGVnZXI/YHRlbGA6YHRleHRgLHJvbGU6YHNwaW5idXR0b25gLGNsYXNzOlFtKGBpbnB1dGApLHZhbHVlOmMudmFsdWUsc3R5bGU6ZC52YWx1ZSxkaXNhYmxlZDplLmRpc2FibGVkLHJlYWRvbmx5OmUuZGlzYWJsZUlucHV0LGlucHV0bW9kZTplLmludGVnZXI/YG51bWVyaWNgOmBkZWNpbWFsYCxwbGFjZWhvbGRlcjplLnBsYWNlaG9sZGVyLGF1dG9jb21wbGV0ZTpgb2ZmYCwiYXJpYS12YWx1ZW1heCI6ZS5tYXgsImFyaWEtdmFsdWVtaW4iOmUubWluLCJhcmlhLXZhbHVlbm93IjpjLnZhbHVlLG9uQmx1cjp5LG9uSW5wdXQ6XyxvbkZvY3VzOnYsb25Nb3VzZWRvd246RH0sbnVsbCksW1tpdCxlLnNob3dJbnB1dF1dKSxuKEUoYGJ1dHRvbmAscih7dHlwZTpgYnV0dG9uYCxzdHlsZTpwLnZhbHVlLGNsYXNzOltRbShgcGx1c2Ase2Rpc2FibGVkOnUudmFsdWV9KSx7W3pyXTohdS52YWx1ZX1dLCJhcmlhLWRpc2FibGVkIjp1LnZhbHVlfHx2b2lkIDB9LE8oYHBsdXNgKSksbnVsbCksW1tpdCxlLnNob3dQbHVzXV0pXSl9fSkpLG5oPVkocW0pLFtyaCxpaCxhaF09Sihgc3VibWl0LWJhcmApLG9oPVkoUCh7bmFtZTpyaCxwcm9wczp7dGlwOlN0cmluZyxsYWJlbDpTdHJpbmcscHJpY2U6TnVtYmVyLHRpcEljb246U3RyaW5nLGxvYWRpbmc6Qm9vbGVhbixjdXJyZW5jeTpVKGDCpWApLGRpc2FibGVkOkJvb2xlYW4sdGV4dEFsaWduOlN0cmluZyxidXR0b25UZXh0OlN0cmluZyxidXR0b25UeXBlOlUoYGRhbmdlcmApLGJ1dHRvbkNvbG9yOlN0cmluZyxzdWZmaXhMYWJlbDpTdHJpbmcscGxhY2Vob2xkZXI6Qm9vbGVhbixkZWNpbWFsTGVuZ3RoOkgoMiksc2FmZUFyZWFJbnNldEJvdHRvbTpCfSxlbWl0czpbYHN1Ym1pdGBdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7bGV0IHI9YigpLGk9S3IocixpaCksYT0oKT0+e2xldHtwcmljZTp0LGxhYmVsOm4sY3VycmVuY3k6cix0ZXh0QWxpZ246aSxzdWZmaXhMYWJlbDphLGRlY2ltYWxMZW5ndGg6b309ZTtpZih0eXBlb2YgdD09YG51bWJlcmApe2xldCBlPSh0LzEwMCkudG9GaXhlZCgrbykuc3BsaXQoYC5gKSxzPW8/YC4ke2VbMV19YDpgYDtyZXR1cm4gRShgZGl2YCx7Y2xhc3M6aWgoYHRleHRgKSxzdHlsZTp7dGV4dEFsaWduOml9fSxbRShgc3BhbmAsbnVsbCxbbnx8YWgoYGxhYmVsYCldKSxFKGBzcGFuYCx7Y2xhc3M6aWgoYHByaWNlYCl9LFtyLEUoYHNwYW5gLHtjbGFzczppaChgcHJpY2UtaW50ZWdlcmApfSxbZVswXV0pLHNdKSxhJiZFKGBzcGFuYCx7Y2xhc3M6aWgoYHN1ZmZpeC1sYWJlbGApfSxbYV0pXSl9fSxvPSgpPT57bGV0e3RpcDp0LHRpcEljb246cn09ZTtpZihuLnRpcHx8dClyZXR1cm4gRShgZGl2YCx7Y2xhc3M6aWgoYHRpcGApfSxbciYmRShaLHtjbGFzczppaChgdGlwLWljb25gKSxuYW1lOnJ9LG51bGwpLHQmJkUoYHNwYW5gLHtjbGFzczppaChgdGlwLXRleHRgKX0sW3RdKSxuLnRpcD8uY2FsbChuKV0pfSxzPSgpPT50KGBzdWJtaXRgKSxjPSgpPT5uLmJ1dHRvbj9uLmJ1dHRvbigpOkUoVGkse3JvdW5kOiEwLHR5cGU6ZS5idXR0b25UeXBlLHRleHQ6ZS5idXR0b25UZXh0LGNsYXNzOmloKGBidXR0b25gLGUuYnV0dG9uVHlwZSksY29sb3I6ZS5idXR0b25Db2xvcixsb2FkaW5nOmUubG9hZGluZyxkaXNhYmxlZDplLmRpc2FibGVkLG9uQ2xpY2s6c30sbnVsbCksbD0oKT0+RShgZGl2YCx7cmVmOnIsY2xhc3M6W2loKCkseyJ2YW4tc2FmZS1hcmVhLWJvdHRvbSI6ZS5zYWZlQXJlYUluc2V0Qm90dG9tfV19LFtuLnRvcD8uY2FsbChuKSxvKCksRShgZGl2YCx7Y2xhc3M6aWgoYGJhcmApfSxbbi5kZWZhdWx0Py5jYWxsKG4pLGEoKSxjKCldKV0pO3JldHVybigpPT5lLnBsYWNlaG9sZGVyP2kobCk6bCgpfX0pKSxbc2gsY2hdPUooYHN3aXBlLWNlbGxgKSxsaD1ZKFAoe25hbWU6c2gscHJvcHM6e25hbWU6SChgYCksZGlzYWJsZWQ6Qm9vbGVhbixsZWZ0V2lkdGg6eixyaWdodFdpZHRoOnosdGhyZXNob2xkOnt0eXBlOnosZGVmYXVsdDouMTUsdmFsaWRhdG9yOmU9PitlPj0wJiYrZTw9MX0sYmVmb3JlQ2xvc2U6RnVuY3Rpb24sc3RvcFByb3BhZ2F0aW9uOkJvb2xlYW59LGVtaXRzOltgb3BlbmAsYGNsb3NlYCxgY2xpY2tgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCByLGksYSxvLHM9YigpLGw9YigpLHU9YigpLGQ9Yyh7b2Zmc2V0OjAsZHJhZ2dpbmc6ITF9KSxmPUZpKCkscD1lPT5lLnZhbHVlP1coZSkud2lkdGg6MCxtPU4oKCk9PkwoZS5sZWZ0V2lkdGgpPytlLmxlZnRXaWR0aDpwKGwpKSxoPU4oKCk9PkwoZS5yaWdodFdpZHRoKT8rZS5yaWdodFdpZHRoOnAodSkpLGc9bj0+e2Qub2Zmc2V0PW49PT1gbGVmdGA/bS52YWx1ZTotaC52YWx1ZSxyfHwocj0hMCx0KGBvcGVuYCx7bmFtZTplLm5hbWUscG9zaXRpb246bn0pKX0sXz1uPT57ZC5vZmZzZXQ9MCxyJiYocj0hMSx0KGBjbG9zZWAse25hbWU6ZS5uYW1lLHBvc2l0aW9uOm59KSl9LHY9dD0+e2xldCBuPU1hdGguYWJzKGQub2Zmc2V0KSxpPStlLnRocmVzaG9sZCxhPXI/MS1pOmksbz10PT09YGxlZnRgP20udmFsdWU6aC52YWx1ZTtvJiZuPm8qYT9nKHQpOl8odCl9LHk9dD0+e2UuZGlzYWJsZWR8fChhPWQub2Zmc2V0LGYuc3RhcnQodCkpfSx4PXQ9PntpZihlLmRpc2FibGVkKXJldHVybjtsZXR7ZGVsdGFYOm59PWY7Zi5tb3ZlKHQpLGYuaXNIb3Jpem9udGFsKCkmJihpPSEwLGQuZHJhZ2dpbmc9ITAsKCFyfHxuLnZhbHVlKmE8MCkmJksodCxlLnN0b3BQcm9wYWdhdGlvbiksZC5vZmZzZXQ9Z3Iobi52YWx1ZSthLC1oLnZhbHVlLG0udmFsdWUpKX0sUz0oKT0+e2QuZHJhZ2dpbmcmJihkLmRyYWdnaW5nPSExLHYoZC5vZmZzZXQ+MD9gbGVmdGA6YHJpZ2h0YCksc2V0VGltZW91dCgoKT0+e2k9ITF9LDApKX0sQz0obj1gb3V0c2lkZWAsYSk9PntvfHwodChgY2xpY2tgLG4pLHImJiFpJiYobz0hMCxWcihlLmJlZm9yZUNsb3NlLHthcmdzOlt7ZXZlbnQ6YSxuYW1lOmUubmFtZSxwb3NpdGlvbjpufV0sZG9uZTooKT0+e289ITEsXyhuKX0sY2FuY2VsZWQ6KCk9Pm89ITEsZXJyb3I6KCk9Pm89ITF9KSkpfSx3PWU9PnQ9PnsoaXx8cikmJnQuc3RvcFByb3BhZ2F0aW9uKCksIWkmJkMoZSx0KX0sVD0oZSx0KT0+e2xldCByPW5bZV07aWYocilyZXR1cm4gRShgZGl2YCx7cmVmOnQsY2xhc3M6Y2goZSksb25DbGljazp3KGUpfSxbcigpXSl9O3JldHVybiBYKHtvcGVuOmcsY2xvc2U6X30pLE1uKHMsZT0+Qyhgb3V0c2lkZWAsZSkse2V2ZW50TmFtZTpgdG91Y2hzdGFydGB9KSxHKGB0b3VjaG1vdmVgLHgse3RhcmdldDpzfSksKCk9PntsZXQgZT17dHJhbnNmb3JtOmB0cmFuc2xhdGUzZCgke2Qub2Zmc2V0fXB4LCAwLCAwKWAsdHJhbnNpdGlvbkR1cmF0aW9uOmQuZHJhZ2dpbmc/YDBzYDpgLjZzYH07cmV0dXJuIEUoYGRpdmAse3JlZjpzLGNsYXNzOmNoKCksb25DbGljazp3KGBjZWxsYCksb25Ub3VjaHN0YXJ0UGFzc2l2ZTp5LG9uVG91Y2hlbmQ6UyxvblRvdWNoY2FuY2VsOlN9LFtFKGBkaXZgLHtjbGFzczpjaChgd3JhcHBlcmApLHN0eWxlOmV9LFtUKGBsZWZ0YCxsKSxuLmRlZmF1bHQ/LmNhbGwobiksVChgcmlnaHRgLHUpXSldKX19fSkpLFt1aCxkaF09SihgdGFiYmFyYCksZmg9e3JvdXRlOkJvb2xlYW4sZml4ZWQ6Qixib3JkZXI6Qix6SW5kZXg6eixwbGFjZWhvbGRlcjpCb29sZWFuLGFjdGl2ZUNvbG9yOlN0cmluZyxiZWZvcmVDaGFuZ2U6RnVuY3Rpb24saW5hY3RpdmVDb2xvcjpTdHJpbmcsbW9kZWxWYWx1ZTpIKDApLHNhZmVBcmVhSW5zZXRCb3R0b206e3R5cGU6Qm9vbGVhbixkZWZhdWx0Om51bGx9fSxwaD1TeW1ib2wodWgpLG1oPVkoUCh7bmFtZTp1aCxwcm9wczpmaCxlbWl0czpbYGNoYW5nZWAsYHVwZGF0ZTptb2RlbFZhbHVlYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXQgcj1iKCkse2xpbmtDaGlsZHJlbjppfT1DbihwaCksYT1LcihyLGRoKSxvPSgpPT5lLnNhZmVBcmVhSW5zZXRCb3R0b20/P2UuZml4ZWQscz0oKT0+e2xldHtmaXhlZDp0LHpJbmRleDppLGJvcmRlcjphfT1lO3JldHVybiBFKGBkaXZgLHtyZWY6cixyb2xlOmB0YWJsaXN0YCxzdHlsZTphcihpKSxjbGFzczpbZGgoe2ZpeGVkOnR9KSx7W0xyXTphLCJ2YW4tc2FmZS1hcmVhLWJvdHRvbSI6bygpfV19LFtuLmRlZmF1bHQ/LmNhbGwobildKX07cmV0dXJuIGkoe3Byb3BzOmUsc2V0QWN0aXZlOihuLHIpPT57VnIoZS5iZWZvcmVDaGFuZ2Use2FyZ3M6W25dLGRvbmUoKXt0KGB1cGRhdGU6bW9kZWxWYWx1ZWAsbiksdChgY2hhbmdlYCxuKSxyKCl9fSl9fSksKCk9PmUuZml4ZWQmJmUucGxhY2Vob2xkZXI/YShzKTpzKCl9fSkpLFtoaCxnaF09SihgdGFiYmFyLWl0ZW1gKSxfaD1ZKFAoe25hbWU6aGgscHJvcHM6SSh7fSxacix7ZG90OkJvb2xlYW4saWNvbjpTdHJpbmcsbmFtZTp6LGJhZGdlOnosYmFkZ2VQcm9wczpPYmplY3QsaWNvblByZWZpeDpTdHJpbmd9KSxlbWl0czpbYGNsaWNrYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXQgaT0kcigpLGE9VGUoKS5wcm94eSx7cGFyZW50Om8saW5kZXg6c309eW4ocGgpO2lmKCFvKXJldHVybjtsZXQgYz1OKCgpPT57bGV0e3JvdXRlOnQsbW9kZWxWYWx1ZTpufT1vLnByb3BzO2lmKHQmJmAkcm91dGVgaW4gYSl7bGV0eyRyb3V0ZTp0fT1hLHt0bzpufT1lLHI9UXQobik/bjp7cGF0aDpufTtyZXR1cm4gdC5tYXRjaGVkLnNvbWUoZT0+e2xldCB0PWBwYXRoYGluIHImJnIucGF0aD09PWUucGF0aCxuPWBuYW1lYGluIHImJnIubmFtZT09PWUubmFtZTtyZXR1cm4gdHx8bn0pfXJldHVybihlLm5hbWU/P3MudmFsdWUpPT09bn0pLGw9bj0+e2MudmFsdWV8fG8uc2V0QWN0aXZlKGUubmFtZT8/cy52YWx1ZSxpKSx0KGBjbGlja2Asbil9LHU9KCk9PntpZihuLmljb24pcmV0dXJuIG4uaWNvbih7YWN0aXZlOmMudmFsdWV9KTtpZihlLmljb24pcmV0dXJuIEUoWix7bmFtZTplLmljb24sY2xhc3NQcmVmaXg6ZS5pY29uUHJlZml4fSxudWxsKX07cmV0dXJuKCk9PntsZXR7ZG90OnQsYmFkZ2U6aX09ZSx7YWN0aXZlQ29sb3I6YSxpbmFjdGl2ZUNvbG9yOnN9PW8ucHJvcHMsZD1jLnZhbHVlP2E6cztyZXR1cm4gRShgZGl2YCx7cm9sZTpgdGFiYCxjbGFzczpnaCh7YWN0aXZlOmMudmFsdWV9KSxzdHlsZTp7Y29sb3I6ZH0sdGFiaW5kZXg6MCwiYXJpYS1zZWxlY3RlZCI6Yy52YWx1ZSxvbkNsaWNrOmx9LFtFKG5pLHIoe2RvdDp0LGNsYXNzOmdoKGBpY29uYCksY29udGVudDppfSxlLmJhZGdlUHJvcHMpLHtkZWZhdWx0OnV9KSxFKGBkaXZgLHtjbGFzczpnaChgdGV4dGApfSxbbi5kZWZhdWx0Py5jYWxsKG4se2FjdGl2ZTpjLnZhbHVlfSldKV0pfX19KSksW3ZoLHloXT1KKGB0ZXh0LWVsbGlwc2lzYCksYmg9WShQKHtuYW1lOnZoLHByb3BzOntyb3dzOkgoMSksZG90czpVKGAuLi5gKSxjb250ZW50OlUoYGApLGV4cGFuZFRleHQ6VShgYCksY29sbGFwc2VUZXh0OlUoYGApLHBvc2l0aW9uOlUoYGVuZGApfSxlbWl0czpbYGNsaWNrQWN0aW9uYF0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtsZXQgcj1iKGUuY29udGVudCksaT1iKCExKSxhPWIoITEpLG89YigpLHM9YigpLGM9ITEsbD1OKCgpPT5pLnZhbHVlP2UuY29sbGFwc2VUZXh0OmUuZXhwYW5kVGV4dCksdT1lPT57aWYoIWUpcmV0dXJuIDA7bGV0IHQ9ZS5tYXRjaCgvXlxkKihcLlxkKik/Lyk7cmV0dXJuIHQ/TnVtYmVyKHRbMF0pOjB9LGQ9KCk9PntpZighby52YWx1ZXx8IW8udmFsdWUuaXNDb25uZWN0ZWQpcmV0dXJuO2xldCB0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG8udmFsdWUpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgZGl2YCk7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseSh0KS5mb3JFYWNoKGU9PntuLnN0eWxlLnNldFByb3BlcnR5KGUsdC5nZXRQcm9wZXJ0eVZhbHVlKGUpKX0pLG4uc3R5bGUucG9zaXRpb249YGZpeGVkYCxuLnN0eWxlLnpJbmRleD1gLTk5OTlgLG4uc3R5bGUudG9wPWAtOTk5OXB4YCxuLnN0eWxlLmhlaWdodD1gYXV0b2Asbi5zdHlsZS5taW5IZWlnaHQ9YGF1dG9gLG4uc3R5bGUubWF4SGVpZ2h0PWBhdXRvYCxuLmlubmVyVGV4dD1lLmNvbnRlbnQsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKSxufSxwPSh0LHIpPT57bGV0e2NvbnRlbnQ6aSxwb3NpdGlvbjphLGRvdHM6b309ZSxjPWkubGVuZ3RoLGw9MCtjPj4xLHU9bi5hY3Rpb24/cy52YWx1ZT8ub3V0ZXJIVE1MPz9gYDplLmV4cGFuZFRleHQsZD0oKT0+e2xldCBlPShuLHMpPT57aWYocy1uPD0xKXJldHVybiBhPT09YGVuZGA/aS5zbGljZSgwLG4pK286bytpLnNsaWNlKHMsYyk7bGV0IGw9TWF0aC5yb3VuZCgobitzKS8yKTtyZXR1cm4gYT09PWBlbmRgP3QuaW5uZXJUZXh0PWkuc2xpY2UoMCxsKStvOnQuaW5uZXJUZXh0PW8raS5zbGljZShsLGMpLHQuaW5uZXJIVE1MKz11LHQub2Zmc2V0SGVpZ2h0PnI/YT09PWBlbmRgP2UobixsKTplKGwscyk6YT09PWBlbmRgP2UobCxzKTplKG4sbCl9O3JldHVybiBlKDAsYyl9LGY9KG4sYSk9PntpZihuWzFdLW5bMF08PTEmJmFbMV0tYVswXTw9MSlyZXR1cm4gaS5zbGljZSgwLG5bMF0pK28raS5zbGljZShhWzFdLGMpO2xldCBzPU1hdGguZmxvb3IoKG5bMF0rblsxXSkvMiksbD1NYXRoLmNlaWwoKGFbMF0rYVsxXSkvMik7cmV0dXJuIHQuaW5uZXJUZXh0PWUuY29udGVudC5zbGljZSgwLHMpK2UuZG90cytlLmNvbnRlbnQuc2xpY2UobCxjKSx0LmlubmVySFRNTCs9dSx0Lm9mZnNldEhlaWdodD49cj9mKFtuWzBdLHNdLFtsLGFbMV1dKTpmKFtzLG5bMV1dLFthWzBdLGxdKX07cmV0dXJuIGUucG9zaXRpb249PT1gbWlkZGxlYD9mKFswLGxdLFtsLGNdKTpkKCl9LG09KCk9PntsZXQgdD1kKCk7aWYoIXQpe2M9ITA7cmV0dXJufWxldHtwYWRkaW5nQm90dG9tOm4scGFkZGluZ1RvcDppLGxpbmVIZWlnaHQ6b309dC5zdHlsZSxzPU1hdGguY2VpbCgoTnVtYmVyKGUucm93cykrLjUpKnUobykrdShpKSt1KG4pKTtzPHQub2Zmc2V0SGVpZ2h0PyhhLnZhbHVlPSEwLHIudmFsdWU9cCh0LHMpKTooYS52YWx1ZT0hMSxyLnZhbHVlPWUuY29udGVudCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KX0saD0oZT0haS52YWx1ZSk9PntpLnZhbHVlPWV9LGc9ZT0+e2goKSx0KGBjbGlja0FjdGlvbmAsZSl9LF89KCk9PntsZXQgZT1uLmFjdGlvbj9uLmFjdGlvbih7ZXhwYW5kZWQ6aS52YWx1ZX0pOmwudmFsdWU7cmV0dXJuIEUoYHNwYW5gLHtyZWY6cyxjbGFzczp5aChgYWN0aW9uYCksb25DbGljazpnfSxbZV0pfTtyZXR1cm4gTSgoKT0+e20oKSxuLmFjdGlvbiYmRihtKX0pLHkoKCk9PntjJiYoYz0hMSxtKCkpfSksZihbZXIsKCk9PltlLmNvbnRlbnQsZS5yb3dzLGUucG9zaXRpb25dXSxtKSxYKHt0b2dnbGU6aH0pLCgpPT5FKGBkaXZgLHtyZWY6byxjbGFzczp5aCgpfSxbaS52YWx1ZT9lLmNvbnRlbnQ6ci52YWx1ZSxhLnZhbHVlP18oKTpudWxsXSl9fSkpLFt4aF09SihgdGltZS1waWNrZXJgKSxTaD1lPT4vXihbMDFdXGR8MlswLTNdKTooWzAtNV1cZCk6KFswLTVdXGQpJC8udGVzdChlKSxDaD1bYGhvdXJgLGBtaW51dGVgLGBzZWNvbmRgXSx3aD1ZKFAoe25hbWU6eGgscHJvcHM6SSh7fSxEYyx7bWluSG91cjpIKDApLG1heEhvdXI6SCgyMyksbWluTWludXRlOkgoMCksbWF4TWludXRlOkgoNTkpLG1pblNlY29uZDpIKDApLG1heFNlY29uZDpIKDU5KSxtaW5UaW1lOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6U2h9LG1heFRpbWU6e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpTaH0sY29sdW1uc1R5cGU6e3R5cGU6QXJyYXksZGVmYXVsdDooKT0+W2Bob3VyYCxgbWludXRlYF19fSksZW1pdHM6W2Bjb25maXJtYCxgY2FuY2VsYCxgY2hhbmdlYCxgdXBkYXRlOm1vZGVsVmFsdWVgXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2xldCBpPWIoZS5tb2RlbFZhbHVlKSxhPWIoKSxvPXQ9PntsZXQgbj10LnNwbGl0KGA6YCk7cmV0dXJuIENoLm1hcCgodCxyKT0+ZS5jb2x1bW5zVHlwZS5pbmNsdWRlcyh0KT9uW3JdOmAwMGApfSxzPSgpPT5hLnZhbHVlPy5jb25maXJtKCksYz0oKT0+aS52YWx1ZSxsPU4oKCk9PntsZXR7bWluSG91cjp0LG1heEhvdXI6bixtaW5NaW51dGU6cixtYXhNaW51dGU6YSxtaW5TZWNvbmQ6cyxtYXhTZWNvbmQ6Y309ZTtpZihlLm1pblRpbWV8fGUubWF4VGltZSl7bGV0IGw9e2hvdXI6MCxtaW51dGU6MCxzZWNvbmQ6MH07ZS5jb2x1bW5zVHlwZS5mb3JFYWNoKChlLHQpPT57bFtlXT1pLnZhbHVlW3RdPz8wfSk7bGV0e2hvdXI6dSxtaW51dGU6ZH09bDtpZihlLm1pblRpbWUpe2xldFtuLGksYV09byhlLm1pblRpbWUpO3Q9bixyPSt1PD0rdD9pOmAwMGAscz0rdTw9K3QmJitkPD0rcj9hOmAwMGB9aWYoZS5tYXhUaW1lKXtsZXRbdCxyLGldPW8oZS5tYXhUaW1lKTtuPXQsYT0rdT49K24/cjpgNTlgLGM9K3U+PStuJiYrZD49K2E/aTpgNTlgfX1yZXR1cm4gZS5jb2x1bW5zVHlwZS5tYXAobz0+e2xldHtmaWx0ZXI6bCxmb3JtYXR0ZXI6dX09ZTtzd2l0Y2gobyl7Y2FzZWBob3VyYDpyZXR1cm4gamMoK3QsK24sbyx1LGwsaS52YWx1ZSk7Y2FzZWBtaW51dGVgOnJldHVybiBqYygrciwrYSxvLHUsbCxpLnZhbHVlKTtjYXNlYHNlY29uZGA6cmV0dXJuIGpjKCtzLCtjLG8sdSxsLGkudmFsdWUpO2RlZmF1bHQ6cmV0dXJuW119fSl9KTtmKGksbj0+e3NuKG4sZS5tb2RlbFZhbHVlKXx8dChgdXBkYXRlOm1vZGVsVmFsdWVgLG4pfSksZigoKT0+ZS5tb2RlbFZhbHVlLGU9PntlPU1jKGUsbC52YWx1ZSksc24oZSxpLnZhbHVlKXx8KGkudmFsdWU9ZSl9LHtpbW1lZGlhdGU6ITB9KTtsZXQgdT0oLi4uZSk9PnQoYGNoYW5nZWAsLi4uZSksZD0oLi4uZSk9PnQoYGNhbmNlbGAsLi4uZSkscD0oLi4uZSk9PnQoYGNvbmZpcm1gLC4uLmUpO3JldHVybiBYKHtjb25maXJtOnMsZ2V0U2VsZWN0ZWRUaW1lOmN9KSwoKT0+RShfbyxyKHtyZWY6YSxtb2RlbFZhbHVlOmkudmFsdWUsIm9uVXBkYXRlOm1vZGVsVmFsdWUiOmU9PmkudmFsdWU9ZSxjb2x1bW5zOmwudmFsdWUsb25DaGFuZ2U6dSxvbkNhbmNlbDpkLG9uQ29uZmlybTpwfSxSKGUsT2MpKSxuKX19KSksW1RoLEVoXT1KKGB0cmVlLXNlbGVjdGApLERoPVkoUCh7bmFtZTpUaCxwcm9wczp7bWF4OkgoMS8wKSxpdGVtczpWKCksaGVpZ2h0OkgoMzAwKSxzZWxlY3RlZEljb246VShgc3VjY2Vzc2ApLG1haW5BY3RpdmVJbmRleDpIKDApLGFjdGl2ZUlkOnt0eXBlOltOdW1iZXIsU3RyaW5nLEFycmF5XSxkZWZhdWx0OjB9fSxlbWl0czpbYGNsaWNrTmF2YCxgY2xpY2tJdGVtYCxgdXBkYXRlOmFjdGl2ZUlkYCxgdXBkYXRlOm1haW5BY3RpdmVJbmRleGBdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7bGV0IHI9dD0+QXJyYXkuaXNBcnJheShlLmFjdGl2ZUlkKT9lLmFjdGl2ZUlkLmluY2x1ZGVzKHQpOmUuYWN0aXZlSWQ9PT10LGk9bj0+RShgZGl2YCx7a2V5Om4uaWQsY2xhc3M6W2B2YW4tZWxsaXBzaXNgLEVoKGBpdGVtYCx7YWN0aXZlOnIobi5pZCksZGlzYWJsZWQ6bi5kaXNhYmxlZH0pXSxvbkNsaWNrOigpPT57aWYobi5kaXNhYmxlZClyZXR1cm47bGV0IHI7aWYoQXJyYXkuaXNBcnJheShlLmFjdGl2ZUlkKSl7cj1lLmFjdGl2ZUlkLnNsaWNlKCk7bGV0IHQ9ci5pbmRleE9mKG4uaWQpO3Q9PT0tMT9yLmxlbmd0aDwrZS5tYXgmJnIucHVzaChuLmlkKTpyLnNwbGljZSh0LDEpfWVsc2Ugcj1uLmlkO3QoYHVwZGF0ZTphY3RpdmVJZGAsciksdChgY2xpY2tJdGVtYCxuKX19LFtuLnRleHQscihuLmlkKSYmRShaLHtuYW1lOmUuc2VsZWN0ZWRJY29uLGNsYXNzOkVoKGBzZWxlY3RlZGApfSxudWxsKV0pLGE9ZT0+e3QoYHVwZGF0ZTptYWluQWN0aXZlSW5kZXhgLGUpfSxvPWU9PnQoYGNsaWNrTmF2YCxlKSxzPSgpPT57bGV0IHQ9ZS5pdGVtcy5tYXAoZT0+RShzbSx7ZG90OmUuZG90LGJhZGdlOmUuYmFkZ2UsY2xhc3M6W0VoKGBuYXYtaXRlbWApLGUuY2xhc3NOYW1lXSxkaXNhYmxlZDplLmRpc2FibGVkLG9uQ2xpY2s6b30se3RpdGxlOigpPT5uW2BuYXYtdGV4dGBdP25bYG5hdi10ZXh0YF0oZSk6ZS50ZXh0fSkpO3JldHVybiBFKGltLHtjbGFzczpFaChgbmF2YCksbW9kZWxWYWx1ZTplLm1haW5BY3RpdmVJbmRleCxvbkNoYW5nZTphfSx7ZGVmYXVsdDooKT0+W3RdfSl9LGM9KCk9PntpZihuLmNvbnRlbnQpcmV0dXJuIG4uY29udGVudCgpO2xldCB0PWUuaXRlbXNbK2UubWFpbkFjdGl2ZUluZGV4XXx8e307aWYodC5jaGlsZHJlbilyZXR1cm4gdC5jaGlsZHJlbi5tYXAoaSl9O3JldHVybigpPT5FKGBkaXZgLHtjbGFzczpFaCgpLHN0eWxlOntoZWlnaHQ6cShlLmhlaWdodCl9fSxbcygpLEUoYGRpdmAse2NsYXNzOkVoKGBjb250ZW50YCl9LFtjKCldKV0pfX0pKSxbT2gsa2gsQWhdPUooYHVwbG9hZGVyYCk7ZnVuY3Rpb24gamgoZSx0KXtyZXR1cm4gbmV3IFByb21pc2Uobj0+e2lmKHQ9PT1gZmlsZWApe24oKTtyZXR1cm59bGV0IHI9bmV3IEZpbGVSZWFkZXI7ci5vbmxvYWQ9ZT0+e24oZS50YXJnZXQucmVzdWx0KX0sdD09PWBkYXRhVXJsYD9yLnJlYWRBc0RhdGFVUkwoZSk6dD09PWB0ZXh0YCYmci5yZWFkQXNUZXh0KGUpfSl9ZnVuY3Rpb24gTWgoZSx0KXtyZXR1cm4gY24oZSkuc29tZShlPT5lLmZpbGU/JHQodCk/dChlLmZpbGUpOmUuZmlsZS5zaXplPit0OiExKX1mdW5jdGlvbiBOaChlLHQpe2xldCBuPVtdLHI9W107cmV0dXJuIGUuZm9yRWFjaChlPT57TWgoZSx0KT9yLnB1c2goZSk6bi5wdXNoKGUpfSkse3ZhbGlkOm4saW52YWxpZDpyfX12YXIgUGg9L1wuKGpwZWd8anBnfGdpZnxwbmd8c3ZnfHdlYnB8amZpZnxibXB8ZHBnfGF2aWYpL2ksRmg9ZT0+UGgudGVzdChlKTtmdW5jdGlvbiBJaChlKXtyZXR1cm4gZS5pc0ltYWdlPyEwOmUuZmlsZSYmZS5maWxlLnR5cGU/ZS5maWxlLnR5cGUuaW5kZXhPZihgaW1hZ2VgKT09PTA6ZS51cmw/RmgoZS51cmwpOnR5cGVvZiBlLmNvbnRlbnQ9PWBzdHJpbmdgP2UuY29udGVudC5pbmRleE9mKGBkYXRhOmltYWdlYCk9PT0wOiExfXZhciBMaD1QKHtwcm9wczp7bmFtZTp6LGl0ZW06dW4oT2JqZWN0KSxpbmRleDpOdW1iZXIsaW1hZ2VGaXQ6U3RyaW5nLGxhenlMb2FkOkJvb2xlYW4sZGVsZXRhYmxlOkJvb2xlYW4scmV1cGxvYWQ6Qm9vbGVhbixwcmV2aWV3U2l6ZTpbTnVtYmVyLFN0cmluZyxBcnJheV0sYmVmb3JlRGVsZXRlOkZ1bmN0aW9ufSxlbWl0czpbYGRlbGV0ZWAsYHByZXZpZXdgLGByZXVwbG9hZGBdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7bGV0IHI9KCk9PntsZXR7c3RhdHVzOnQsbWVzc2FnZTpufT1lLml0ZW07aWYodD09PWB1cGxvYWRpbmdgfHx0PT09YGZhaWxlZGApe2xldCBlPXQ9PT1gZmFpbGVkYD9FKFose25hbWU6YGNsb3NlYCxjbGFzczpraChgbWFzay1pY29uYCl9LG51bGwpOkUoU2kse2NsYXNzOmtoKGBsb2FkaW5nYCl9LG51bGwpLHI9TChuKSYmbiE9PWBgO3JldHVybiBFKGBkaXZgLHtjbGFzczpraChgbWFza2ApfSxbZSxyJiZFKGBkaXZgLHtjbGFzczpraChgbWFzay1tZXNzYWdlYCl9LFtuXSldKX19LGk9bj0+e2xldHtuYW1lOnIsaXRlbTppLGluZGV4OmEsYmVmb3JlRGVsZXRlOm99PWU7bi5zdG9wUHJvcGFnYXRpb24oKSxWcihvLHthcmdzOltpLHtuYW1lOnIsaW5kZXg6YX1dLGRvbmU6KCk9PnQoYGRlbGV0ZWApfSl9LGE9KCk9PnQoYHByZXZpZXdgKSxvPSgpPT50KGByZXVwbG9hZGApLHM9KCk9PntpZihlLmRlbGV0YWJsZSYmZS5pdGVtLnN0YXR1cyE9PWB1cGxvYWRpbmdgKXtsZXQgZT1uW2BwcmV2aWV3LWRlbGV0ZWBdO3JldHVybiBFKGBkaXZgLHtyb2xlOmBidXR0b25gLGNsYXNzOmtoKGBwcmV2aWV3LWRlbGV0ZWAse3NoYWRvdzohZX0pLHRhYmluZGV4OjAsImFyaWEtbGFiZWwiOkFoKGBkZWxldGVgKSxvbkNsaWNrOml9LFtlP2UoKTpFKFose25hbWU6YGNyb3NzYCxjbGFzczpraChgcHJldmlldy1kZWxldGUtaWNvbmApfSxudWxsKV0pfX0sYz0oKT0+e2lmKG5bYHByZXZpZXctY292ZXJgXSl7bGV0e2luZGV4OnQsaXRlbTpyfT1lO3JldHVybiBFKGBkaXZgLHtjbGFzczpraChgcHJldmlldy1jb3ZlcmApfSxbbltgcHJldmlldy1jb3ZlcmBdKEkoe2luZGV4OnR9LHIpKV0pfX0sbD0oKT0+e2xldHtpdGVtOnQsbGF6eUxvYWQ6bixpbWFnZUZpdDpyLHByZXZpZXdTaXplOmkscmV1cGxvYWQ6c309ZTtyZXR1cm4gSWgodCk/RShIYyx7Zml0OnIsc3JjOnQub2JqZWN0VXJsfHx0LmNvbnRlbnR8fHQudXJsLGNsYXNzOmtoKGBwcmV2aWV3LWltYWdlYCksd2lkdGg6QXJyYXkuaXNBcnJheShpKT9pWzBdOmksaGVpZ2h0OkFycmF5LmlzQXJyYXkoaSk/aVsxXTppLGxhenlMb2FkOm4sb25DbGljazpzP286YX0se2RlZmF1bHQ6Y30pOkUoYGRpdmAse2NsYXNzOmtoKGBmaWxlYCksc3R5bGU6aXIoZS5wcmV2aWV3U2l6ZSl9LFtFKFose2NsYXNzOmtoKGBmaWxlLWljb25gKSxuYW1lOmBkZXNjcmlwdGlvbmB9LG51bGwpLEUoYGRpdmAse2NsYXNzOltraChgZmlsZS1uYW1lYCksYHZhbi1lbGxpcHNpc2BdfSxbdC5maWxlP3QuZmlsZS5uYW1lOnQudXJsXSksYygpXSl9O3JldHVybigpPT5FKGBkaXZgLHtjbGFzczpraChgcHJldmlld2ApfSxbbCgpLHIoKSxzKCldKX19KSxSaD1ZKFAoe25hbWU6T2gscHJvcHM6e25hbWU6SChgYCksYWNjZXB0OlUoYGltYWdlLypgKSxjYXB0dXJlOlN0cmluZyxtdWx0aXBsZTpCb29sZWFuLGRpc2FibGVkOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbixsYXp5TG9hZDpCb29sZWFuLG1heENvdW50OkgoMS8wKSxpbWFnZUZpdDpVKGBjb3ZlcmApLHJlc3VsdFR5cGU6VShgZGF0YVVybGApLHVwbG9hZEljb246VShgcGhvdG9ncmFwaGApLHVwbG9hZFRleHQ6U3RyaW5nLGRlbGV0YWJsZTpCLHJldXBsb2FkOkJvb2xlYW4sYWZ0ZXJSZWFkOkZ1bmN0aW9uLHNob3dVcGxvYWQ6Qixtb2RlbFZhbHVlOlYoKSxiZWZvcmVSZWFkOkZ1bmN0aW9uLGJlZm9yZURlbGV0ZTpGdW5jdGlvbixwcmV2aWV3U2l6ZTpbTnVtYmVyLFN0cmluZyxBcnJheV0scHJldmlld0ltYWdlOkIscHJldmlld09wdGlvbnM6T2JqZWN0LHByZXZpZXdGdWxsSW1hZ2U6QixtYXhTaXplOnt0eXBlOltOdW1iZXIsU3RyaW5nLEZ1bmN0aW9uXSxkZWZhdWx0OjEvMH19LGVtaXRzOltgZGVsZXRlYCxgb3ZlcnNpemVgLGBjbGlja1VwbG9hZGAsYGNsb3NlUHJldmlld2AsYGNsaWNrUHJldmlld2AsYGNsaWNrUmV1cGxvYWRgLGB1cGRhdGU6bW9kZWxWYWx1ZWBdLHNldHVwKGUse2VtaXQ6dCxzbG90czppfSl7bGV0IG89YigpLHM9W10sbD1iKC0xKSx1PWIoITEpLGQ9KHQ9ZS5tb2RlbFZhbHVlLmxlbmd0aCk9Pih7bmFtZTplLm5hbWUsaW5kZXg6dH0pLGY9KCk9PntvLnZhbHVlJiYoby52YWx1ZS52YWx1ZT1gYCl9LHA9bj0+e2lmKGYoKSxNaChuLGUubWF4U2l6ZSkpaWYoQXJyYXkuaXNBcnJheShuKSl7bGV0IHI9TmgobixlLm1heFNpemUpO2lmKG49ci52YWxpZCx0KGBvdmVyc2l6ZWAsci5pbnZhbGlkLGQoKSksIW4ubGVuZ3RoKXJldHVybn1lbHNle3QoYG92ZXJzaXplYCxuLGQoKSk7cmV0dXJufWlmKG49YyhuKSxsLnZhbHVlPi0xKXtsZXQgcj1bLi4uZS5tb2RlbFZhbHVlXTtyLnNwbGljZShsLnZhbHVlLDEsbiksdChgdXBkYXRlOm1vZGVsVmFsdWVgLHIpLGwudmFsdWU9LTF9ZWxzZSB0KGB1cGRhdGU6bW9kZWxWYWx1ZWAsWy4uLmUubW9kZWxWYWx1ZSwuLi5jbihuKV0pO2UuYWZ0ZXJSZWFkJiZlLmFmdGVyUmVhZChuLGQoKSl9LG09dD0+e2xldHttYXhDb3VudDpuLG1vZGVsVmFsdWU6cixyZXN1bHRUeXBlOml9PWU7aWYoQXJyYXkuaXNBcnJheSh0KSl7bGV0IGU9K24tci5sZW5ndGg7dC5sZW5ndGg+ZSYmKHQ9dC5zbGljZSgwLGUpKSxQcm9taXNlLmFsbCh0Lm1hcChlPT5qaChlLGkpKSkudGhlbihlPT57cCh0Lm1hcCgodCxuKT0+e2xldCByPXtmaWxlOnQsc3RhdHVzOmBgLG1lc3NhZ2U6YGAsb2JqZWN0VXJsOlVSTC5jcmVhdGVPYmplY3RVUkwodCl9O3JldHVybiBlW25dJiYoci5jb250ZW50PWVbbl0pLHJ9KSl9KX1lbHNlIGpoKHQsaSkudGhlbihlPT57bGV0IG49e2ZpbGU6dCxzdGF0dXM6YGAsbWVzc2FnZTpgYCxvYmplY3RVcmw6VVJMLmNyZWF0ZU9iamVjdFVSTCh0KX07ZSYmKG4uY29udGVudD1lKSxwKG4pfSl9LGg9dD0+e2xldHtmaWxlczpufT10LnRhcmdldDtpZihlLmRpc2FibGVkfHwhbnx8IW4ubGVuZ3RoKXJldHVybjtsZXQgcj1uLmxlbmd0aD09PTE/blswXTpbXS5zbGljZS5jYWxsKG4pO2lmKGUuYmVmb3JlUmVhZCl7bGV0IHQ9ZS5iZWZvcmVSZWFkKHIsZCgpKTtpZighdCl7ZigpO3JldHVybn1pZihlbih0KSl7dC50aGVuKGU9PnttKGV8fHIpfSkuY2F0Y2goZik7cmV0dXJufX1tKHIpfSxnLF89KCk9PnQoYGNsb3NlUHJldmlld2ApLHY9dD0+e2lmKGUucHJldmlld0Z1bGxJbWFnZSl7bGV0IG49ZS5tb2RlbFZhbHVlLmZpbHRlcihJaCk7Zz1jZChJKHtpbWFnZXM6bi5tYXAoZT0+KGUub2JqZWN0VXJsJiYhZS51cmwmJmUuc3RhdHVzIT09YGZhaWxlZGAmJihlLnVybD1lLm9iamVjdFVybCxzLnB1c2goZS51cmwpKSxlLnVybCkpLmZpbHRlcihCb29sZWFuKSxzdGFydFBvc2l0aW9uOm4uaW5kZXhPZih0KSxvbkNsb3NlOl99LGUucHJldmlld09wdGlvbnMpKX19LHk9KCk9PntnJiZnLmNsb3NlKCl9LHg9KG4scik9PntsZXQgaT1lLm1vZGVsVmFsdWUuc2xpY2UoMCk7aS5zcGxpY2UociwxKSx0KGB1cGRhdGU6bW9kZWxWYWx1ZWAsaSksdChgZGVsZXRlYCxuLGQocikpfSxTPWU9Pnt1LnZhbHVlPSEwLGwudmFsdWU9ZSxGKCgpPT5rKCkpfSxDPSgpPT57dS52YWx1ZXx8KGwudmFsdWU9LTEpLHUudmFsdWU9ITF9LHc9KG4sYSk9PntsZXQgbz1bYGltYWdlRml0YCxgZGVsZXRhYmxlYCxgcmV1cGxvYWRgLGBwcmV2aWV3U2l6ZWAsYGJlZm9yZURlbGV0ZWBdLHM9SShSKGUsbyksUihuLG8sITApKTtyZXR1cm4gRShMaCxyKHtpdGVtOm4saW5kZXg6YSxvbkNsaWNrOigpPT50KGUucmV1cGxvYWQ/YGNsaWNrUmV1cGxvYWRgOmBjbGlja1ByZXZpZXdgLG4sZChhKSksb25EZWxldGU6KCk9PngobixhKSxvblByZXZpZXc6KCk9PnYobiksb25SZXVwbG9hZDooKT0+UyhhKX0sUihlLFtgbmFtZWAsYGxhenlMb2FkYF0pLHMpLFIoaSxbYHByZXZpZXctY292ZXJgLGBwcmV2aWV3LWRlbGV0ZWBdKSl9LFQ9KCk9PntpZihlLnByZXZpZXdJbWFnZSlyZXR1cm4gZS5tb2RlbFZhbHVlLm1hcCh3KX0sRD1lPT50KGBjbGlja1VwbG9hZGAsZSksTz0oKT0+e2xldCB0PWUubW9kZWxWYWx1ZS5sZW5ndGg8K2UubWF4Q291bnQscj1lLnJlYWRvbmx5P251bGw6RShgaW5wdXRgLHtyZWY6byx0eXBlOmBmaWxlYCxjbGFzczpraChgaW5wdXRgKSxhY2NlcHQ6ZS5hY2NlcHQsY2FwdHVyZTplLmNhcHR1cmUsbXVsdGlwbGU6ZS5tdWx0aXBsZSYmbC52YWx1ZT09PS0xLGRpc2FibGVkOmUuZGlzYWJsZWQsb25DaGFuZ2U6aCxvbkNsaWNrOkN9LG51bGwpO3JldHVybiBpLmRlZmF1bHQ/bihFKGBkaXZgLHtjbGFzczpraChgaW5wdXQtd3JhcHBlcmApLG9uQ2xpY2s6RH0sW2kuZGVmYXVsdCgpLHJdKSxbW2l0LHRdXSk6bihFKGBkaXZgLHtjbGFzczpraChgdXBsb2FkYCx7cmVhZG9ubHk6ZS5yZWFkb25seX0pLHN0eWxlOmlyKGUucHJldmlld1NpemUpLG9uQ2xpY2s6RH0sW0UoWix7bmFtZTplLnVwbG9hZEljb24sY2xhc3M6a2goYHVwbG9hZC1pY29uYCl9LG51bGwpLGUudXBsb2FkVGV4dCYmRShgc3BhbmAse2NsYXNzOmtoKGB1cGxvYWQtdGV4dGApfSxbZS51cGxvYWRUZXh0XSkscl0pLFtbaXQsZS5zaG93VXBsb2FkJiZ0XV0pfSxrPSgpPT57by52YWx1ZSYmIWUuZGlzYWJsZWQmJm8udmFsdWUuY2xpY2soKX07cmV0dXJuIGEoKCk9PntzLmZvckVhY2goZT0+VVJMLnJldm9rZU9iamVjdFVSTChlKSl9KSxYKHtjaG9vc2VGaWxlOmsscmV1cGxvYWRGaWxlOlMsY2xvc2VJbWFnZVByZXZpZXc6eX0pLFduKCgpPT5lLm1vZGVsVmFsdWUpLCgpPT5FKGBkaXZgLHtjbGFzczpraCgpfSxbRShgZGl2YCx7Y2xhc3M6a2goYHdyYXBwZXJgLHtkaXNhYmxlZDplLmRpc2FibGVkfSl9LFtUKCksTygpXSldKX19KSksW3poLEJoXT1KKGB3YXRlcm1hcmtgKSxWaD1ZKFAoe25hbWU6emgscHJvcHM6e2dhcFg6ZG4oMCksZ2FwWTpkbigwKSxpbWFnZTpTdHJpbmcsd2lkdGg6ZG4oMTAwKSxoZWlnaHQ6ZG4oMTAwKSxyb3RhdGU6SCgtMjIpLHpJbmRleDp6LGNvbnRlbnQ6U3RyaW5nLG9wYWNpdHk6eixmdWxsUGFnZTpCLHRleHRDb2xvcjpVKGAjZGNkZWUwYCl9LHNldHVwKGUse3Nsb3RzOm59KXtsZXQgcj1iKCksaT1iKGBgKSxhPWIoYGApLG89KCk9PntsZXQgdD17dHJhbnNmb3JtT3JpZ2luOmBjZW50ZXJgLHRyYW5zZm9ybTpgcm90YXRlKCR7ZS5yb3RhdGV9ZGVnKWB9LHI9KCk9PmUuaW1hZ2UmJiFuLmNvbnRlbnQ/RShgaW1hZ2VgLHtocmVmOmEudmFsdWUsInhsaW5rOmhyZWYiOmEudmFsdWUseDpgMGAseTpgMGAsd2lkdGg6ZS53aWR0aCxoZWlnaHQ6ZS5oZWlnaHQsc3R5bGU6dH0sbnVsbCk6RShgZm9yZWlnbk9iamVjdGAse3g6YDBgLHk6YDBgLHdpZHRoOmUud2lkdGgsaGVpZ2h0OmUuaGVpZ2h0fSxbRShgZGl2YCx7eG1sbnM6YGh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxgLHN0eWxlOnR9LFtuLmNvbnRlbnQ/bi5jb250ZW50KCk6RShgc3BhbmAse3N0eWxlOntjb2xvcjplLnRleHRDb2xvcn19LFtlLmNvbnRlbnRdKV0pXSksaT1lLndpZHRoK2UuZ2FwWCxvPWUuaGVpZ2h0K2UuZ2FwWTtyZXR1cm4gRShgc3ZnYCx7dmlld0JveDpgMCAwICR7aX0gJHtvfWAsd2lkdGg6aSxoZWlnaHQ6byx4bWxuczpgaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdgLCJ4bWxuczp4bGluayI6YGh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtgLHN0eWxlOntwYWRkaW5nOmAwICR7ZS5nYXBYfXB4ICR7ZS5nYXBZfXB4IDBgLG9wYWNpdHk6ZS5vcGFjaXR5fX0sW3IoKV0pfSxzPWU9PntsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBjYW52YXNgKSxuPW5ldyBJbWFnZTtuLmNyb3NzT3JpZ2luPWBhbm9ueW1vdXNgLG4ucmVmZXJyZXJQb2xpY3k9YG5vLXJlZmVycmVyYCxuLm9ubG9hZD0oKT0+e3Qud2lkdGg9bi5uYXR1cmFsV2lkdGgsdC5oZWlnaHQ9bi5uYXR1cmFsSGVpZ2h0LHQuZ2V0Q29udGV4dChgMmRgKT8uZHJhd0ltYWdlKG4sMCwwKSxhLnZhbHVlPXQudG9EYXRhVVJMKCl9LG4uc3JjPWV9LGM9ZT0+e2xldCB0PW5ldyBCbG9iKFtlXSx7dHlwZTpgaW1hZ2Uvc3ZnK3htbGB9KTtyZXR1cm4gVVJMLmNyZWF0ZU9iamVjdFVSTCh0KX0sbD0oKT0+e2kudmFsdWUmJlVSTC5yZXZva2VPYmplY3RVUkwoaS52YWx1ZSl9LHU9KCk9PntyLnZhbHVlJiYobCgpLGkudmFsdWU9YyhyLnZhbHVlLmlubmVySFRNTCkpfTtyZXR1cm4gXygoKT0+e2UuaW1hZ2UmJnMoZS5pbWFnZSl9KSxmKCgpPT5bZS5jb250ZW50LGUudGV4dENvbG9yLGUuaGVpZ2h0LGUud2lkdGgsZS5yb3RhdGUsZS5nYXBYLGUuZ2FwWV0sdSksZihhLCgpPT57Rih1KX0pLE0odSksdChsKSwoKT0+e2xldCB0PUkoe2JhY2tncm91bmRJbWFnZTpgdXJsKCR7aS52YWx1ZX0pYH0sYXIoZS56SW5kZXgpKTtyZXR1cm4gRShgZGl2YCx7Y2xhc3M6Qmgoe2Z1bGw6ZS5mdWxsUGFnZX0pLHN0eWxlOnR9LFtFKGBkaXZgLHtjbGFzczpCaChgd3JhcHBlcmApLHJlZjpyfSxbbygpXSldKX19fSkpLEhoPWA0LjkuMjRgO2Z1bmN0aW9uIFVoKGUpe1tYcixPaSxqaSxRaSxTcyxacyxibyx0YyxuaSxvYyxUaSx6YyxHYyxZYyx3byxRYyxXcyxNcyxpbCxkbCxobCx5bCxibCx3bCxrbCxObCxMbCxXbCxabCxpdSxzdSx2dSx4dSxrdSxBdSxldSxWbyxQdSxSdSxEbyxVdSxLdSxZdSxaLEhjLGxkLHZkLHlkLENkLFNpLEVyLEVkLGtkLE5kLFVkLFVpLEpkLFpkLF9vLFFkLGJwLHFpLENwLGtwLFZzLERzLE5wLEhwLFVwLHFwLGVtLGltLHNtLHBtLGptLGJtLFBtLEVtLGdtLExtLEhtLFhtLHRoLG5oLGphLG9oLElhLGxoLGVvLHBzLHJvLG1oLF9oLGlvLEZzLGJoLHdoLHVzLERoLFJoLFZoXS5mb3JFYWNoKHQ9Pnt0Lmluc3RhbGw/ZS51c2UodCk6dC5uYW1lJiZlLmNvbXBvbmVudCh0Lm5hbWUsdCl9KX12YXIgV2g9e2luc3RhbGw6VWgsdmVyc2lvbjpIaH0sR2g9e25hbWU6YE5hbWVgLHRlbDpgUGhvbmVgLHNhdmU6YFNhdmVgLGNsZWFyOmBDbGVhcmAsdW5kbzpgVW5kb2AsY2FuY2VsOmBDYW5jZWxgLGNvbmZpcm06YENvbmZpcm1gLGRlbGV0ZTpgRGVsZXRlYCxsb2FkaW5nOmBMb2FkaW5nLi4uYCxub0NvdXBvbjpgTm8gY291cG9uc2AsbmFtZUVtcHR5OmBQbGVhc2UgZmlsbCBpbiB0aGUgbmFtZWAsYWRkQ29udGFjdDpgQWRkIGNvbnRhY3RgLHRlbEludmFsaWQ6YE1hbGZvcm1lZCBwaG9uZSBudW1iZXJgLHZhbkNhbGVuZGFyOntlbmQ6YEVuZGAsc3RhcnQ6YFN0YXJ0YCx0aXRsZTpgQ2FsZW5kYXJgLHdlZWtkYXlzOltgU3VuYCxgTW9uYCxgVHVlYCxgV2VkYCxgVGh1YCxgRnJpYCxgU2F0YF0sbW9udGhUaXRsZTooZSx0KT0+YCR7ZX0vJHt0fWAscmFuZ2VQcm9tcHQ6ZT0+YENob29zZSBubyBtb3JlIHRoYW4gJHtlfSBkYXlzYH0sdmFuQ2FzY2FkZXI6e3NlbGVjdDpgU2VsZWN0YH0sdmFuUGFnaW5hdGlvbjp7cHJldjpgUHJldmlvdXNgLG5leHQ6YE5leHRgfSx2YW5QdWxsUmVmcmVzaDp7cHVsbGluZzpgUHVsbCB0byByZWZyZXNoLi4uYCxsb29zaW5nOmBMb29zZSB0byByZWZyZXNoLi4uYH0sdmFuU3VibWl0QmFyOntsYWJlbDpgVG90YWw6YH0sdmFuQ291cG9uOnt1bmxpbWl0ZWQ6YFVubGltaXRlZGAsZGlzY291bnQ6ZT0+YCR7ZSoxMH0lIG9mZmAsY29uZGl0aW9uOmU9PmBBdCBsZWFzdCAke2V9YH0sdmFuQ291cG9uQ2VsbDp7dGl0bGU6YENvdXBvbmAsY291bnQ6ZT0+YFlvdSBoYXZlICR7ZX0gY291cG9uc2B9LHZhbkNvdXBvbkxpc3Q6e2V4Y2hhbmdlOmBFeGNoYW5nZWAsY2xvc2U6YENsb3NlYCxlbmFibGU6YEF2YWlsYWJsZWAsZGlzYWJsZWQ6YFVuYXZhaWxhYmxlYCxwbGFjZWhvbGRlcjpgQ291cG9uIGNvZGVgfSx2YW5BZGRyZXNzRWRpdDp7YXJlYTpgQXJlYWAsYXJlYUVtcHR5OmBQbGVhc2Ugc2VsZWN0IGEgcmVjZWl2aW5nIGFyZWFgLGFkZHJlc3NFbXB0eTpgQWRkcmVzcyBjYW4gbm90IGJlIGVtcHR5YCxhZGRyZXNzRGV0YWlsOmBBZGRyZXNzYCxkZWZhdWx0QWRkcmVzczpgU2V0IGFzIHRoZSBkZWZhdWx0IGFkZHJlc3NgfSx2YW5BZGRyZXNzTGlzdDp7YWRkOmBBZGQgbmV3IGFkZHJlc3NgfX0sS2g9dHlwZW9mIGRvY3VtZW50PGB1YDtmdW5jdGlvbiBxaChlKXtyZXR1cm4gdHlwZW9mIGU9PWBvYmplY3RgfHxgZGlzcGxheU5hbWVgaW4gZXx8YHByb3BzYGluIGV8fGBfX3ZjY09wdHNgaW4gZX1mdW5jdGlvbiBKaChlKXtyZXR1cm4gZS5fX2VzTW9kdWxlfHxlW1N5bWJvbC50b1N0cmluZ1RhZ109PT1gTW9kdWxlYHx8ZS5kZWZhdWx0JiZxaChlLmRlZmF1bHQpfXZhciBRPU9iamVjdC5hc3NpZ247ZnVuY3Rpb24gWWgoZSx0KXtsZXQgbj17fTtmb3IobGV0IHIgaW4gdCl7bGV0IGk9dFtyXTtuW3JdPVpoKGkpP2kubWFwKGUpOmUoaSl9cmV0dXJuIG59dmFyIFhoPSgpPT57fSxaaD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIFFoKGUsdCl7bGV0IG49e307Zm9yKGxldCByIGluIGUpbltyXT1yIGluIHQ/dFtyXTplW3JdO3JldHVybiBufXZhciAkaD0vIy9nLGVnPS8mL2csdGc9L1wvL2csbmc9Lz0vZyxyZz0vXD8vZyxpZz0vXCsvZyxhZz0vJTVCL2csb2c9LyU1RC9nLHNnPS8lNUUvZyxjZz0vJTYwL2csbGc9LyU3Qi9nLHVnPS8lN0MvZyxkZz0vJTdEL2csZmc9LyUyMC9nO2Z1bmN0aW9uIHBnKGUpe3JldHVybiBlPT1udWxsP2BgOmVuY29kZVVSSShgYCtlKS5yZXBsYWNlKHVnLGB8YCkucmVwbGFjZShhZyxgW2ApLnJlcGxhY2Uob2csYF1gKX1mdW5jdGlvbiBtZyhlKXtyZXR1cm4gcGcoZSkucmVwbGFjZShsZyxge2ApLnJlcGxhY2UoZGcsYH1gKS5yZXBsYWNlKHNnLGBeYCl9ZnVuY3Rpb24gaGcoZSl7cmV0dXJuIHBnKGUpLnJlcGxhY2UoaWcsYCUyQmApLnJlcGxhY2UoZmcsYCtgKS5yZXBsYWNlKCRoLGAlMjNgKS5yZXBsYWNlKGVnLGAlMjZgKS5yZXBsYWNlKGNnLCJgIikucmVwbGFjZShsZyxge2ApLnJlcGxhY2UoZGcsYH1gKS5yZXBsYWNlKHNnLGBeYCl9ZnVuY3Rpb24gZ2coZSl7cmV0dXJuIGhnKGUpLnJlcGxhY2UobmcsYCUzRGApfWZ1bmN0aW9uIF9nKGUpe3JldHVybiBwZyhlKS5yZXBsYWNlKCRoLGAlMjNgKS5yZXBsYWNlKHJnLGAlM0ZgKX1mdW5jdGlvbiB2ZyhlKXtyZXR1cm4gX2coZSkucmVwbGFjZSh0ZyxgJTJGYCl9ZnVuY3Rpb24geWcoZSl7aWYoZT09bnVsbClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChgYCtlKX1jYXRjaHt9cmV0dXJuYGArZX12YXIgYmc9L1wvJC8seGc9ZT0+ZS5yZXBsYWNlKGJnLGBgKTtmdW5jdGlvbiBTZyhlLHQsbj1gL2Ape2xldCByLGk9e30sYT1gYCxvPWBgLHM9dC5pbmRleE9mKGAjYCksYz10LmluZGV4T2YoYD9gKTtyZXR1cm4gYz1zPj0wJiZjPnM/LTE6YyxjPj0wJiYocj10LnNsaWNlKDAsYyksYT10LnNsaWNlKGMscz4wP3M6dC5sZW5ndGgpLGk9ZShhLnNsaWNlKDEpKSkscz49MCYmKHJ8fD10LnNsaWNlKDAscyksbz10LnNsaWNlKHMsdC5sZW5ndGgpKSxyPUFnKHI/P3Qsbikse2Z1bGxQYXRoOnIrYStvLHBhdGg6cixxdWVyeTppLGhhc2g6eWcobyl9fWZ1bmN0aW9uIENnKGUsdCl7bGV0IG49dC5xdWVyeT9lKHQucXVlcnkpOmBgO3JldHVybiB0LnBhdGgrKG4mJmA/YCkrbisodC5oYXNofHxgYCl9ZnVuY3Rpb24gd2coZSx0KXtyZXR1cm4hdHx8IWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHQudG9Mb3dlckNhc2UoKSk/ZTplLnNsaWNlKHQubGVuZ3RoKXx8YC9gfWZ1bmN0aW9uIFRnKGUsdCxuKXtsZXQgcj10Lm1hdGNoZWQubGVuZ3RoLTEsaT1uLm1hdGNoZWQubGVuZ3RoLTE7cmV0dXJuIHI+LTEmJnI9PT1pJiZFZyh0Lm1hdGNoZWRbcl0sbi5tYXRjaGVkW2ldKSYmRGcodC5wYXJhbXMsbi5wYXJhbXMpJiZlKHQucXVlcnkpPT09ZShuLnF1ZXJ5KSYmdC5oYXNoPT09bi5oYXNofWZ1bmN0aW9uIEVnKGUsdCl7cmV0dXJuKGUuYWxpYXNPZnx8ZSk9PT0odC5hbGlhc09mfHx0KX1mdW5jdGlvbiBEZyhlLHQpe2lmKE9iamVjdC5rZXlzKGUpLmxlbmd0aCE9PU9iamVjdC5rZXlzKHQpLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG4gaW4gZSlpZighT2coZVtuXSx0W25dKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBPZyhlLHQpe3JldHVybiBaaChlKT9rZyhlLHQpOlpoKHQpP2tnKHQsZSk6ZT8udmFsdWVPZigpPT09dD8udmFsdWVPZigpfWZ1bmN0aW9uIGtnKGUsdCl7cmV0dXJuIFpoKHQpP2UubGVuZ3RoPT09dC5sZW5ndGgmJmUuZXZlcnkoKGUsbik9PmU9PT10W25dKTplLmxlbmd0aD09PTEmJmVbMF09PT10fWZ1bmN0aW9uIEFnKGUsdCl7aWYoZS5zdGFydHNXaXRoKGAvYCkpcmV0dXJuIGU7aWYoIWUpcmV0dXJuIHQ7bGV0IG49dC5zcGxpdChgL2ApLHI9ZS5zcGxpdChgL2ApLGk9cltyLmxlbmd0aC0xXTsoaT09PWAuLmB8fGk9PT1gLmApJiZyLnB1c2goYGApO2xldCBhPW4ubGVuZ3RoLTEsbyxzO2ZvcihvPTA7bzxyLmxlbmd0aDtvKyspaWYocz1yW29dLHMhPT1gLmApaWYocz09PWAuLmApYT4xJiZhLS07ZWxzZSBicmVhaztyZXR1cm4gbi5zbGljZSgwLGEpLmpvaW4oYC9gKStgL2Arci5zbGljZShvKS5qb2luKGAvYCl9dmFyIGpnPXtwYXRoOmAvYCxuYW1lOnZvaWQgMCxwYXJhbXM6e30scXVlcnk6e30saGFzaDpgYCxmdWxsUGF0aDpgL2AsbWF0Y2hlZDpbXSxtZXRhOnt9LHJlZGlyZWN0ZWRGcm9tOnZvaWQgMH0sTWc9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucG9wPWBwb3BgLGUucHVzaD1gcHVzaGAsZX0oe30pLE5nPWZ1bmN0aW9uKGUpe3JldHVybiBlLmJhY2s9YGJhY2tgLGUuZm9yd2FyZD1gZm9yd2FyZGAsZS51bmtub3duPWBgLGV9KHt9KTtmdW5jdGlvbiBQZyhlKXtpZighZSlpZihLaCl7bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgYmFzZWApO2U9dCYmdC5nZXRBdHRyaWJ1dGUoYGhyZWZgKXx8YC9gLGU9ZS5yZXBsYWNlKC9eXHcrOlwvXC9bXlwvXSsvLGBgKX1lbHNlIGU9YC9gO3JldHVybiBlWzBdIT09YC9gJiZlWzBdIT09YCNgJiYoZT1gL2ArZSkseGcoZSl9dmFyIEZnPS9eW14jXSsjLztmdW5jdGlvbiBJZyhlLHQpe3JldHVybiBlLnJlcGxhY2UoRmcsYCNgKSt0fWZ1bmN0aW9uIExnKGUsdCl7bGV0IG49ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57YmVoYXZpb3I6dC5iZWhhdmlvcixsZWZ0OnIubGVmdC1uLmxlZnQtKHQubGVmdHx8MCksdG9wOnIudG9wLW4udG9wLSh0LnRvcHx8MCl9fXZhciBSZz0oKT0+KHtsZWZ0OndpbmRvdy5zY3JvbGxYLHRvcDp3aW5kb3cuc2Nyb2xsWX0pO2Z1bmN0aW9uIHpnKGUpe2xldCB0O2lmKGBlbGBpbiBlKXtsZXQgbj1lLmVsLHI9dHlwZW9mIG49PWBzdHJpbmdgJiZuLnN0YXJ0c1dpdGgoYCNgKSxpPXR5cGVvZiBuPT1gc3RyaW5nYD9yP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKG4uc2xpY2UoMSkpOmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iobik6bjtpZighaSlyZXR1cm47dD1MZyhpLGUpfWVsc2UgdD1lO2BzY3JvbGxCZWhhdmlvcmBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGU/d2luZG93LnNjcm9sbFRvKHQpOndpbmRvdy5zY3JvbGxUbyh0LmxlZnQ9PW51bGw/d2luZG93LnNjcm9sbFg6dC5sZWZ0LHQudG9wPT1udWxsP3dpbmRvdy5zY3JvbGxZOnQudG9wKX1mdW5jdGlvbiBCZyhlLHQpe3JldHVybihoaXN0b3J5LnN0YXRlP2hpc3Rvcnkuc3RhdGUucG9zaXRpb24tdDotMSkrZX12YXIgVmc9bmV3IE1hcDtmdW5jdGlvbiBIZyhlLHQpe1ZnLnNldChlLHQpfWZ1bmN0aW9uIFVnKGUpe2xldCB0PVZnLmdldChlKTtyZXR1cm4gVmcuZGVsZXRlKGUpLHR9ZnVuY3Rpb24gV2coZSl7cmV0dXJuIHR5cGVvZiBlPT1gc3RyaW5nYHx8ZSYmdHlwZW9mIGU9PWBvYmplY3RgfWZ1bmN0aW9uIEdnKGUpe3JldHVybiB0eXBlb2YgZT09YHN0cmluZ2B8fHR5cGVvZiBlPT1gc3ltYm9sYH12YXIgS2c9ZnVuY3Rpb24oZSl7cmV0dXJuIGVbZS5NQVRDSEVSX05PVF9GT1VORD0xXT1gTUFUQ0hFUl9OT1RfRk9VTkRgLGVbZS5OQVZJR0FUSU9OX0dVQVJEX1JFRElSRUNUPTJdPWBOQVZJR0FUSU9OX0dVQVJEX1JFRElSRUNUYCxlW2UuTkFWSUdBVElPTl9BQk9SVEVEPTRdPWBOQVZJR0FUSU9OX0FCT1JURURgLGVbZS5OQVZJR0FUSU9OX0NBTkNFTExFRD04XT1gTkFWSUdBVElPTl9DQU5DRUxMRURgLGVbZS5OQVZJR0FUSU9OX0RVUExJQ0FURUQ9MTZdPWBOQVZJR0FUSU9OX0RVUExJQ0FURURgLGV9KHt9KSxxZz1TeW1ib2woYGApO0tnLk1BVENIRVJfTk9UX0ZPVU5ELEtnLk5BVklHQVRJT05fR1VBUkRfUkVESVJFQ1QsS2cuTkFWSUdBVElPTl9BQk9SVEVELEtnLk5BVklHQVRJT05fQ0FOQ0VMTEVELEtnLk5BVklHQVRJT05fRFVQTElDQVRFRDtmdW5jdGlvbiBKZyhlLHQpe3JldHVybiBRKEVycm9yKCkse3R5cGU6ZSxbcWddOiEwfSx0KX1mdW5jdGlvbiBZZyhlLHQpe3JldHVybiBlIGluc3RhbmNlb2YgRXJyb3ImJnFnIGluIGUmJih0PT1udWxsfHwhIShlLnR5cGUmdCkpfWZ1bmN0aW9uIFhnKGUpe2xldCB0PXt9O2lmKGU9PT1gYHx8ZT09PWA/YClyZXR1cm4gdDtsZXQgbj0oZVswXT09PWA/YD9lLnNsaWNlKDEpOmUpLnNwbGl0KGAmYCk7Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDsrK2Upe2xldCByPW5bZV0ucmVwbGFjZShpZyxgIGApLGk9ci5pbmRleE9mKGA9YCksYT15ZyhpPDA/cjpyLnNsaWNlKDAsaSkpLG89aTwwP251bGw6eWcoci5zbGljZShpKzEpKTtpZihhIGluIHQpe2xldCBlPXRbYV07WmgoZSl8fChlPXRbYV09W2VdKSxlLnB1c2gobyl9ZWxzZSB0W2FdPW99cmV0dXJuIHR9ZnVuY3Rpb24gWmcoZSl7bGV0IHQ9YGA7Zm9yKGxldCBuIGluIGUpe2xldCByPWVbbl07aWYobj1nZyhuKSxyPT1udWxsKXtyIT09dm9pZCAwJiYodCs9KHQubGVuZ3RoP2AmYDpgYCkrbik7Y29udGludWV9KFpoKHIpP3IubWFwKGU9PmUmJmhnKGUpKTpbciYmaGcocildKS5mb3JFYWNoKGU9PntlIT09dm9pZCAwJiYodCs9KHQubGVuZ3RoP2AmYDpgYCkrbixlIT1udWxsJiYodCs9YD1gK2UpKX0pfXJldHVybiB0fWZ1bmN0aW9uIFFnKGUpe2xldCB0PXt9O2ZvcihsZXQgbiBpbiBlKXtsZXQgcj1lW25dO3IhPT12b2lkIDAmJih0W25dPVpoKHIpP3IubWFwKGU9PmU9PW51bGw/bnVsbDpgYCtlKTpyPT1udWxsP3I6YGArcil9cmV0dXJuIHR9dmFyICRnPVN5bWJvbChgYCksZV89U3ltYm9sKGBgKSx0Xz1TeW1ib2woYGApLG5fPVN5bWJvbChgYCkscl89U3ltYm9sKGBgKTtmdW5jdGlvbiBpXygpe2xldCBlPVtdO2Z1bmN0aW9uIHQodCl7cmV0dXJuIGUucHVzaCh0KSwoKT0+e2xldCBuPWUuaW5kZXhPZih0KTtuPi0xJiZlLnNwbGljZShuLDEpfX1mdW5jdGlvbiBuKCl7ZT1bXX1yZXR1cm57YWRkOnQsbGlzdDooKT0+ZS5zbGljZSgpLHJlc2V0Om59fWZ1bmN0aW9uIGFfKGUsdCxuLHIsaSxhPWU9PmUoKSl7bGV0IG89ciYmKHIuZW50ZXJDYWxsYmFja3NbaV09ci5lbnRlckNhbGxiYWNrc1tpXXx8W10pO3JldHVybigpPT5uZXcgUHJvbWlzZSgocyxjKT0+e2xldCBsPWU9PntlPT09ITE/YyhKZyhLZy5OQVZJR0FUSU9OX0FCT1JURUQse2Zyb206bix0bzp0fSkpOmUgaW5zdGFuY2VvZiBFcnJvcj9jKGUpOldnKGUpP2MoSmcoS2cuTkFWSUdBVElPTl9HVUFSRF9SRURJUkVDVCx7ZnJvbTp0LHRvOmV9KSk6KG8mJnIuZW50ZXJDYWxsYmFja3NbaV09PT1vJiZ0eXBlb2YgZT09YGZ1bmN0aW9uYCYmby5wdXNoKGUpLHMoKSl9LHU9YSgoKT0+ZS5jYWxsKHImJnIuaW5zdGFuY2VzW2ldLHQsbixsKSksZD1Qcm9taXNlLnJlc29sdmUodSk7ZS5sZW5ndGg8MyYmKGQ9ZC50aGVuKGwpKSxkLmNhdGNoKGU9PmMoZSkpfSl9ZnVuY3Rpb24gb18oZSx0LG4scixpPWU9PmUoKSl7bGV0IGE9W107Zm9yKGxldCBvIG9mIGUpZm9yKGxldCBlIGluIG8uY29tcG9uZW50cyl7bGV0IHM9by5jb21wb25lbnRzW2VdO2lmKCEodCE9PWBiZWZvcmVSb3V0ZUVudGVyYCYmIW8uaW5zdGFuY2VzW2VdKSlpZihxaChzKSl7bGV0IGM9KHMuX192Y2NPcHRzfHxzKVt0XTtjJiZhLnB1c2goYV8oYyxuLHIsbyxlLGkpKX1lbHNle2xldCBjPXMoKTthLnB1c2goKCk9PmMudGhlbihhPT57aWYoIWEpdGhyb3cgRXJyb3IoYENvdWxkbid0IHJlc29sdmUgY29tcG9uZW50ICIke2V9IiBhdCAiJHtvLnBhdGh9ImApO2xldCBzPUpoKGEpP2EuZGVmYXVsdDphO28ubW9kc1tlXT1hLG8uY29tcG9uZW50c1tlXT1zO2xldCBjPShzLl9fdmNjT3B0c3x8cylbdF07cmV0dXJuIGMmJmFfKGMsbixyLG8sZSxpKSgpfSkpfX1yZXR1cm4gYX1mdW5jdGlvbiBzXyhlLHQpe2xldCBuPVtdLHI9W10saT1bXSxhPU1hdGgubWF4KHQubWF0Y2hlZC5sZW5ndGgsZS5tYXRjaGVkLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxhO28rKyl7bGV0IGE9dC5tYXRjaGVkW29dO2EmJihlLm1hdGNoZWQuZmluZChlPT5FZyhlLGEpKT9yLnB1c2goYSk6bi5wdXNoKGEpKTtsZXQgcz1lLm1hdGNoZWRbb107cyYmKHQubWF0Y2hlZC5maW5kKGU9PkVnKGUscykpfHxpLnB1c2gocykpfXJldHVybltuLHIsaV19dmFyIGNfPSgpPT5sb2NhdGlvbi5wcm90b2NvbCtgLy9gK2xvY2F0aW9uLmhvc3Q7ZnVuY3Rpb24gbF8oZSx0KXtsZXR7cGF0aG5hbWU6bixzZWFyY2g6cixoYXNoOml9PXQsYT1lLmluZGV4T2YoYCNgKTtpZihhPi0xKXtsZXQgdD1pLmluY2x1ZGVzKGUuc2xpY2UoYSkpP2Uuc2xpY2UoYSkubGVuZ3RoOjEsbj1pLnNsaWNlKHQpO3JldHVybiBuWzBdIT09YC9gJiYobj1gL2Arbiksd2cobixgYCl9cmV0dXJuIHdnKG4sZSkrcitpfWZ1bmN0aW9uIHVfKGUsdCxuLHIpe2xldCBpPVtdLGE9W10sbz1udWxsLHM9KHtzdGF0ZTphfSk9PntsZXQgcz1sXyhlLGxvY2F0aW9uKSxjPW4udmFsdWUsbD10LnZhbHVlLHU9MDtpZihhKXtpZihuLnZhbHVlPXMsdC52YWx1ZT1hLG8mJm89PT1jKXtvPW51bGw7cmV0dXJufXU9bD9hLnBvc2l0aW9uLWwucG9zaXRpb246MH1lbHNlIHIocyk7aS5mb3JFYWNoKGU9PntlKG4udmFsdWUsYyx7ZGVsdGE6dSx0eXBlOk1nLnBvcCxkaXJlY3Rpb246dT91PjA/TmcuZm9yd2FyZDpOZy5iYWNrOk5nLnVua25vd259KX0pfTtmdW5jdGlvbiBjKCl7bz1uLnZhbHVlfWZ1bmN0aW9uIGwoZSl7aS5wdXNoKGUpO2xldCB0PSgpPT57bGV0IHQ9aS5pbmRleE9mKGUpO3Q+LTEmJmkuc3BsaWNlKHQsMSl9O3JldHVybiBhLnB1c2godCksdH1mdW5jdGlvbiB1KCl7aWYoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlPT09YGhpZGRlbmApe2xldHtoaXN0b3J5OmV9PXdpbmRvdztpZighZS5zdGF0ZSlyZXR1cm47ZS5yZXBsYWNlU3RhdGUoUSh7fSxlLnN0YXRlLHtzY3JvbGw6UmcoKX0pLGBgKX19ZnVuY3Rpb24gZCgpe2ZvcihsZXQgZSBvZiBhKWUoKTthPVtdLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKGBwb3BzdGF0ZWAscyksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoYHBhZ2VoaWRlYCx1KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGB2aXNpYmlsaXR5Y2hhbmdlYCx1KX1yZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoYHBvcHN0YXRlYCxzKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihgcGFnZWhpZGVgLHUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoYHZpc2liaWxpdHljaGFuZ2VgLHUpLHtwYXVzZUxpc3RlbmVyczpjLGxpc3RlbjpsLGRlc3Ryb3k6ZH19ZnVuY3Rpb24gZF8oZSx0LG4scj0hMSxpPSExKXtyZXR1cm57YmFjazplLGN1cnJlbnQ6dCxmb3J3YXJkOm4scmVwbGFjZWQ6cixwb3NpdGlvbjp3aW5kb3cuaGlzdG9yeS5sZW5ndGgsc2Nyb2xsOmk/UmcoKTpudWxsfX1mdW5jdGlvbiBmXyhlKXtsZXR7aGlzdG9yeTp0LGxvY2F0aW9uOm59PXdpbmRvdyxyPXt2YWx1ZTpsXyhlLG4pfSxpPXt2YWx1ZTp0LnN0YXRlfTtpLnZhbHVlfHxhKHIudmFsdWUse2JhY2s6bnVsbCxjdXJyZW50OnIudmFsdWUsZm9yd2FyZDpudWxsLHBvc2l0aW9uOnQubGVuZ3RoLTEscmVwbGFjZWQ6ITAsc2Nyb2xsOm51bGx9LCEwKTtmdW5jdGlvbiBhKHIsYSxvKXtsZXQgcz1lLmluZGV4T2YoYCNgKSxjPXM+LTE/KG4uaG9zdCYmZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgYmFzZWApP2U6ZS5zbGljZShzKSkrcjpjXygpK2Urcjt0cnl7dFtvP2ByZXBsYWNlU3RhdGVgOmBwdXNoU3RhdGVgXShhLGBgLGMpLGkudmFsdWU9YX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpLG5bbz9gcmVwbGFjZWA6YGFzc2lnbmBdKGMpfX1mdW5jdGlvbiBvKGUsbil7YShlLFEoe30sdC5zdGF0ZSxkXyhpLnZhbHVlLmJhY2ssZSxpLnZhbHVlLmZvcndhcmQsITApLG4se3Bvc2l0aW9uOmkudmFsdWUucG9zaXRpb259KSwhMCksci52YWx1ZT1lfWZ1bmN0aW9uIHMoZSxuKXtsZXQgbz1RKHt9LGkudmFsdWUsdC5zdGF0ZSx7Zm9yd2FyZDplLHNjcm9sbDpSZygpfSk7YShvLmN1cnJlbnQsbywhMCksYShlLFEoe30sZF8oci52YWx1ZSxlLG51bGwpLHtwb3NpdGlvbjpvLnBvc2l0aW9uKzF9LG4pLCExKSxyLnZhbHVlPWV9cmV0dXJue2xvY2F0aW9uOnIsc3RhdGU6aSxwdXNoOnMscmVwbGFjZTpvfX1mdW5jdGlvbiBwXyhlKXtlPVBnKGUpO2xldCB0PWZfKGUpLG49dV8oZSx0LnN0YXRlLHQubG9jYXRpb24sdC5yZXBsYWNlKTtmdW5jdGlvbiByKGUsdD0hMCl7dHx8bi5wYXVzZUxpc3RlbmVycygpLGhpc3RvcnkuZ28oZSl9bGV0IGk9USh7bG9jYXRpb246YGAsYmFzZTplLGdvOnIsY3JlYXRlSHJlZjpJZy5iaW5kKG51bGwsZSl9LHQsbik7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJsb2NhdGlvbiIse2VudW1lcmFibGU6ITAsZ2V0OigpPT50LmxvY2F0aW9uLnZhbHVlfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksInN0YXRlIix7ZW51bWVyYWJsZTohMCxnZXQ6KCk9PnQuc3RhdGUudmFsdWV9KSxpfWZ1bmN0aW9uIG1fKGUpe3JldHVybiBlPWxvY2F0aW9uLmhvc3Q/ZXx8bG9jYXRpb24ucGF0aG5hbWUrbG9jYXRpb24uc2VhcmNoOmBgLGUuaW5jbHVkZXMoYCNgKXx8KGUrPWAjYCkscF8oZSl9dmFyIGhfPWZ1bmN0aW9uKGUpe3JldHVybiBlW2UuU3RhdGljPTBdPWBTdGF0aWNgLGVbZS5QYXJhbT0xXT1gUGFyYW1gLGVbZS5Hcm91cD0yXT1gR3JvdXBgLGV9KHt9KSxnXz1mdW5jdGlvbihlKXtyZXR1cm4gZVtlLlN0YXRpYz0wXT1gU3RhdGljYCxlW2UuUGFyYW09MV09YFBhcmFtYCxlW2UuUGFyYW1SZWdFeHA9Ml09YFBhcmFtUmVnRXhwYCxlW2UuUGFyYW1SZWdFeHBFbmQ9M109YFBhcmFtUmVnRXhwRW5kYCxlW2UuRXNjYXBlTmV4dD00XT1gRXNjYXBlTmV4dGAsZX0oZ198fHt9KSxfXz17dHlwZTpoXy5TdGF0aWMsdmFsdWU6YGB9LHZfPS9bYS16QS1aMC05X10vO2Z1bmN0aW9uIHlfKGUpe2lmKCFlKXJldHVybltbXV07aWYoZT09PWAvYClyZXR1cm5bW19fXV07aWYoIWUuc3RhcnRzV2l0aChgL2ApKXRocm93IEVycm9yKGBJbnZhbGlkIHBhdGggIiR7ZX0iYCk7ZnVuY3Rpb24gdChlKXt0aHJvdyBFcnJvcihgRVJSICgke259KS8iJHtsfSI6ICR7ZX1gKX1sZXQgbj1nXy5TdGF0aWMscj1uLGk9W10sYTtmdW5jdGlvbiBvKCl7YSYmaS5wdXNoKGEpLGE9W119bGV0IHM9MCxjLGw9YGAsdT1gYDtmdW5jdGlvbiBkKCl7bCYmPShuPT09Z18uU3RhdGljP2EucHVzaCh7dHlwZTpoXy5TdGF0aWMsdmFsdWU6bH0pOm49PT1nXy5QYXJhbXx8bj09PWdfLlBhcmFtUmVnRXhwfHxuPT09Z18uUGFyYW1SZWdFeHBFbmQ/KGEubGVuZ3RoPjEmJihjPT09YCpgfHxjPT09YCtgKSYmdChgQSByZXBlYXRhYmxlIHBhcmFtICgke2x9KSBtdXN0IGJlIGFsb25lIGluIGl0cyBzZWdtZW50LiBlZzogJy86aWRzKy5gKSxhLnB1c2goe3R5cGU6aF8uUGFyYW0sdmFsdWU6bCxyZWdleHA6dSxyZXBlYXRhYmxlOmM9PT1gKmB8fGM9PT1gK2Asb3B0aW9uYWw6Yz09PWAqYHx8Yz09PWA/YH0pKTp0KGBJbnZhbGlkIHN0YXRlIHRvIGNvbnN1bWUgYnVmZmVyYCksYGApfWZ1bmN0aW9uIGYoKXtsKz1jfWZvcig7czxlLmxlbmd0aDspe2lmKGM9ZVtzKytdLGM9PT1gXFxgJiZuIT09Z18uUGFyYW1SZWdFeHApe3I9bixuPWdfLkVzY2FwZU5leHQ7Y29udGludWV9c3dpdGNoKG4pe2Nhc2UgZ18uU3RhdGljOmM9PT1gL2A/KGwmJmQoKSxvKCkpOmM9PT1gOmA/KGQoKSxuPWdfLlBhcmFtKTpmKCk7YnJlYWs7Y2FzZSBnXy5Fc2NhcGVOZXh0OmYoKSxuPXI7YnJlYWs7Y2FzZSBnXy5QYXJhbTpjPT09YChgP249Z18uUGFyYW1SZWdFeHA6dl8udGVzdChjKT9mKCk6KGQoKSxuPWdfLlN0YXRpYyxjIT09YCpgJiZjIT09YD9gJiZjIT09YCtgJiZzLS0pO2JyZWFrO2Nhc2UgZ18uUGFyYW1SZWdFeHA6Yz09PWApYD91W3UubGVuZ3RoLTFdPT1gXFxgP3U9dS5zbGljZSgwLC0xKStjOm49Z18uUGFyYW1SZWdFeHBFbmQ6dSs9YzticmVhaztjYXNlIGdfLlBhcmFtUmVnRXhwRW5kOmQoKSxuPWdfLlN0YXRpYyxjIT09YCpgJiZjIT09YD9gJiZjIT09YCtgJiZzLS0sdT1gYDticmVhaztkZWZhdWx0OnQoYFVua25vd24gc3RhdGVgKTticmVha319cmV0dXJuIG49PT1nXy5QYXJhbVJlZ0V4cCYmdChgVW5maW5pc2hlZCBjdXN0b20gUmVnRXhwIGZvciBwYXJhbSAiJHtsfSJgKSxkKCksbygpLGl9dmFyIGJfPWBbXi9dKz9gLHhfPXtzZW5zaXRpdmU6ITEsc3RyaWN0OiExLHN0YXJ0OiEwLGVuZDohMH0sU189ZnVuY3Rpb24oZSl7cmV0dXJuIGVbZS5fbXVsdGlwbGllcj0xMF09YF9tdWx0aXBsaWVyYCxlW2UuUm9vdD05MF09YFJvb3RgLGVbZS5TZWdtZW50PTQwXT1gU2VnbWVudGAsZVtlLlN1YlNlZ21lbnQ9MzBdPWBTdWJTZWdtZW50YCxlW2UuU3RhdGljPTQwXT1gU3RhdGljYCxlW2UuRHluYW1pYz0yMF09YER5bmFtaWNgLGVbZS5Cb251c0N1c3RvbVJlZ0V4cD0xMF09YEJvbnVzQ3VzdG9tUmVnRXhwYCxlW2UuQm9udXNXaWxkY2FyZD0tNTBdPWBCb251c1dpbGRjYXJkYCxlW2UuQm9udXNSZXBlYXRhYmxlPS0yMF09YEJvbnVzUmVwZWF0YWJsZWAsZVtlLkJvbnVzT3B0aW9uYWw9LThdPWBCb251c09wdGlvbmFsYCxlW2UuQm9udXNTdHJpY3Q9LjcwMDAwMDAwMDAwMDAwMDFdPWBCb251c1N0cmljdGAsZVtlLkJvbnVzQ2FzZVNlbnNpdGl2ZT0uMjVdPWBCb251c0Nhc2VTZW5zaXRpdmVgLGV9KFNffHx7fSksQ189L1suKyo/XiR7fSgpW1xdL1xcXS9nO2Z1bmN0aW9uIHdfKGUsdCl7bGV0IG49USh7fSx4Xyx0KSxyPVtdLGk9bi5zdGFydD9gXmA6YGAsYT1bXTtmb3IobGV0IHQgb2YgZSl7bGV0IGU9dC5sZW5ndGg/W106W1NfLlJvb3RdO24uc3RyaWN0JiYhdC5sZW5ndGgmJihpKz1gL2ApO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtsZXQgbz10W3JdLHM9U18uU2VnbWVudCsobi5zZW5zaXRpdmU/U18uQm9udXNDYXNlU2Vuc2l0aXZlOjApO2lmKG8udHlwZT09PWhfLlN0YXRpYylyfHwoaSs9YC9gKSxpKz1vLnZhbHVlLnJlcGxhY2UoQ18sYFxcJCZgKSxzKz1TXy5TdGF0aWM7ZWxzZSBpZihvLnR5cGU9PT1oXy5QYXJhbSl7bGV0e3ZhbHVlOmUscmVwZWF0YWJsZTpuLG9wdGlvbmFsOmMscmVnZXhwOmx9PW87YS5wdXNoKHtuYW1lOmUscmVwZWF0YWJsZTpuLG9wdGlvbmFsOmN9KTtsZXQgdT1sfHxiXztpZih1IT09Yl8pe3MrPVNfLkJvbnVzQ3VzdG9tUmVnRXhwO3RyeXtgJHt1fWB9Y2F0Y2godCl7dGhyb3cgRXJyb3IoYEludmFsaWQgY3VzdG9tIFJlZ0V4cCBmb3IgcGFyYW0gIiR7ZX0iICgke3V9KTogYCt0Lm1lc3NhZ2UpfX1sZXQgZD1uP2AoKD86JHt1fSkoPzovKD86JHt1fSkpKilgOmAoJHt1fSlgO3J8fChkPWMmJnQubGVuZ3RoPDI/YCg/Oi8ke2R9KWA6YC9gK2QpLGMmJihkKz1gP2ApLGkrPWQscys9U18uRHluYW1pYyxjJiYocys9U18uQm9udXNPcHRpb25hbCksbiYmKHMrPVNfLkJvbnVzUmVwZWF0YWJsZSksdT09PWAuKmAmJihzKz1TXy5Cb251c1dpbGRjYXJkKX1lLnB1c2gocyl9ci5wdXNoKGUpfWlmKG4uc3RyaWN0JiZuLmVuZCl7bGV0IGU9ci5sZW5ndGgtMTtyW2VdW3JbZV0ubGVuZ3RoLTFdKz1TXy5Cb251c1N0cmljdH1uLnN0cmljdHx8KGkrPWAvP2ApLG4uZW5kP2krPWAkYDpuLnN0cmljdCYmIWkuZW5kc1dpdGgoYC9gKSYmKGkrPWAoPzovfCQpYCk7bGV0IG89bmV3IFJlZ0V4cChpLG4uc2Vuc2l0aXZlP2BgOmBpYCk7ZnVuY3Rpb24gcyhlKXtsZXQgdD1lLm1hdGNoKG8pLG49e307aWYoIXQpcmV0dXJuIG51bGw7Zm9yKGxldCBlPTE7ZTx0Lmxlbmd0aDtlKyspe2xldCByPXRbZV18fGBgLGk9YVtlLTFdO25baS5uYW1lXT1yJiZpLnJlcGVhdGFibGU/ci5zcGxpdChgL2ApOnJ9cmV0dXJuIG59ZnVuY3Rpb24gYyh0KXtsZXQgbj1gYCxyPSExO2ZvcihsZXQgaSBvZiBlKXsoIXJ8fCFuLmVuZHNXaXRoKGAvYCkpJiYobis9YC9gKSxyPSExO2ZvcihsZXQgZSBvZiBpKWlmKGUudHlwZT09PWhfLlN0YXRpYyluKz1lLnZhbHVlO2Vsc2UgaWYoZS50eXBlPT09aF8uUGFyYW0pe2xldHt2YWx1ZTphLHJlcGVhdGFibGU6byxvcHRpb25hbDpzfT1lLGM9YSBpbiB0P3RbYV06YGA7aWYoWmgoYykmJiFvKXRocm93IEVycm9yKGBQcm92aWRlZCBwYXJhbSAiJHthfSIgaXMgYW4gYXJyYXkgYnV0IGl0IGlzIG5vdCByZXBlYXRhYmxlICgqIG9yICsgbW9kaWZpZXJzKWApO2xldCBsPVpoKGMpP2Muam9pbihgL2ApOmM7aWYoIWwpaWYocylpLmxlbmd0aDwyJiYobi5lbmRzV2l0aChgL2ApP249bi5zbGljZSgwLC0xKTpyPSEwKTtlbHNlIHRocm93IEVycm9yKGBNaXNzaW5nIHJlcXVpcmVkIHBhcmFtICIke2F9ImApO24rPWx9fXJldHVybiBufHxgL2B9cmV0dXJue3JlOm8sc2NvcmU6cixrZXlzOmEscGFyc2U6cyxzdHJpbmdpZnk6Y319ZnVuY3Rpb24gVF8oZSx0KXtsZXQgbj0wO2Zvcig7bjxlLmxlbmd0aCYmbjx0Lmxlbmd0aDspe2xldCByPXRbbl0tZVtuXTtpZihyKXJldHVybiByO24rK31yZXR1cm4gZS5sZW5ndGg8dC5sZW5ndGg/ZS5sZW5ndGg9PT0xJiZlWzBdPT09U18uU3RhdGljK1NfLlNlZ21lbnQ/LTE6MTplLmxlbmd0aD50Lmxlbmd0aD90Lmxlbmd0aD09PTEmJnRbMF09PT1TXy5TdGF0aWMrU18uU2VnbWVudD8xOi0xOjB9ZnVuY3Rpb24gRV8oZSx0KXtsZXQgbj0wLHI9ZS5zY29yZSxpPXQuc2NvcmU7Zm9yKDtuPHIubGVuZ3RoJiZuPGkubGVuZ3RoOyl7bGV0IGU9VF8ocltuXSxpW25dKTtpZihlKXJldHVybiBlO24rK31pZihNYXRoLmFicyhpLmxlbmd0aC1yLmxlbmd0aCk9PT0xKXtpZihEXyhyKSlyZXR1cm4gMTtpZihEXyhpKSlyZXR1cm4tMX1yZXR1cm4gaS5sZW5ndGgtci5sZW5ndGh9ZnVuY3Rpb24gRF8oZSl7bGV0IHQ9ZVtlLmxlbmd0aC0xXTtyZXR1cm4gZS5sZW5ndGg+MCYmdFt0Lmxlbmd0aC0xXTwwfXZhciBPXz17c3RyaWN0OiExLGVuZDohMCxzZW5zaXRpdmU6ITF9O2Z1bmN0aW9uIGtfKGUsdCxuKXtsZXQgcj1RKHdfKHlfKGUucGF0aCksbikse3JlY29yZDplLHBhcmVudDp0LGNoaWxkcmVuOltdLGFsaWFzOltdfSk7cmV0dXJuIHQmJiFyLnJlY29yZC5hbGlhc09mPT0hdC5yZWNvcmQuYWxpYXNPZiYmdC5jaGlsZHJlbi5wdXNoKHIpLHJ9ZnVuY3Rpb24gQV8oZSx0KXtsZXQgbj1bXSxyPW5ldyBNYXA7dD1RaChPXyx0KTtmdW5jdGlvbiBpKGUpe3JldHVybiByLmdldChlKX1mdW5jdGlvbiBhKGUsbixyKXtsZXQgaT0hcixzPU1fKGUpO3MuYWxpYXNPZj1yJiZyLnJlY29yZDtsZXQgbD1RaCh0LGUpLHU9W3NdO2lmKGBhbGlhc2BpbiBlKXtsZXQgdD10eXBlb2YgZS5hbGlhcz09YHN0cmluZ2A/W2UuYWxpYXNdOmUuYWxpYXM7Zm9yKGxldCBlIG9mIHQpdS5wdXNoKE1fKFEoe30scyx7Y29tcG9uZW50czpyP3IucmVjb3JkLmNvbXBvbmVudHM6cy5jb21wb25lbnRzLHBhdGg6ZSxhbGlhc09mOnI/ci5yZWNvcmQ6c30pKSl9bGV0IGQsZjtmb3IobGV0IHQgb2YgdSl7bGV0e3BhdGg6dX09dDtpZihuJiZ1WzBdIT09YC9gKXtsZXQgZT1uLnJlY29yZC5wYXRoLHI9ZVtlLmxlbmd0aC0xXT09PWAvYD9gYDpgL2A7dC5wYXRoPW4ucmVjb3JkLnBhdGgrKHUmJnIrdSl9aWYoZD1rXyh0LG4sbCkscj9yLmFsaWFzLnB1c2goZCk6KGZ8fD1kLGYhPT1kJiZmLmFsaWFzLnB1c2goZCksaSYmZS5uYW1lJiYhUF8oZCkmJm8oZS5uYW1lKSksUl8oZCkmJmMoZCkscy5jaGlsZHJlbil7bGV0IGU9cy5jaGlsZHJlbjtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylhKGVbdF0sZCxyJiZyLmNoaWxkcmVuW3RdKX1yfHw9ZH1yZXR1cm4gZj8oKT0+e28oZil9OlhofWZ1bmN0aW9uIG8oZSl7aWYoR2coZSkpe2xldCB0PXIuZ2V0KGUpO3QmJihyLmRlbGV0ZShlKSxuLnNwbGljZShuLmluZGV4T2YodCksMSksdC5jaGlsZHJlbi5mb3JFYWNoKG8pLHQuYWxpYXMuZm9yRWFjaChvKSl9ZWxzZXtsZXQgdD1uLmluZGV4T2YoZSk7dD4tMSYmKG4uc3BsaWNlKHQsMSksZS5yZWNvcmQubmFtZSYmci5kZWxldGUoZS5yZWNvcmQubmFtZSksZS5jaGlsZHJlbi5mb3JFYWNoKG8pLGUuYWxpYXMuZm9yRWFjaChvKSl9fWZ1bmN0aW9uIHMoKXtyZXR1cm4gbn1mdW5jdGlvbiBjKGUpe2xldCB0PUlfKGUsbik7bi5zcGxpY2UodCwwLGUpLGUucmVjb3JkLm5hbWUmJiFQXyhlKSYmci5zZXQoZS5yZWNvcmQubmFtZSxlKX1mdW5jdGlvbiBsKGUsdCl7bGV0IGksYT17fSxvLHM7aWYoYG5hbWVgaW4gZSYmZS5uYW1lKXtpZihpPXIuZ2V0KGUubmFtZSksIWkpdGhyb3cgSmcoS2cuTUFUQ0hFUl9OT1RfRk9VTkQse2xvY2F0aW9uOmV9KTtzPWkucmVjb3JkLm5hbWUsYT1RKGpfKHQucGFyYW1zLGkua2V5cy5maWx0ZXIoZT0+IWUub3B0aW9uYWwpLmNvbmNhdChpLnBhcmVudD9pLnBhcmVudC5rZXlzLmZpbHRlcihlPT5lLm9wdGlvbmFsKTpbXSkubWFwKGU9PmUubmFtZSkpLGUucGFyYW1zJiZqXyhlLnBhcmFtcyxpLmtleXMubWFwKGU9PmUubmFtZSkpKSxvPWkuc3RyaW5naWZ5KGEpfWVsc2UgaWYoZS5wYXRoIT1udWxsKW89ZS5wYXRoLGk9bi5maW5kKGU9PmUucmUudGVzdChvKSksaSYmKGE9aS5wYXJzZShvKSxzPWkucmVjb3JkLm5hbWUpO2Vsc2V7aWYoaT10Lm5hbWU/ci5nZXQodC5uYW1lKTpuLmZpbmQoZT0+ZS5yZS50ZXN0KHQucGF0aCkpLCFpKXRocm93IEpnKEtnLk1BVENIRVJfTk9UX0ZPVU5ELHtsb2NhdGlvbjplLGN1cnJlbnRMb2NhdGlvbjp0fSk7cz1pLnJlY29yZC5uYW1lLGE9USh7fSx0LnBhcmFtcyxlLnBhcmFtcyksbz1pLnN0cmluZ2lmeShhKX1sZXQgYz1bXSxsPWk7Zm9yKDtsOyljLnVuc2hpZnQobC5yZWNvcmQpLGw9bC5wYXJlbnQ7cmV0dXJue25hbWU6cyxwYXRoOm8scGFyYW1zOmEsbWF0Y2hlZDpjLG1ldGE6Rl8oYyl9fWUuZm9yRWFjaChlPT5hKGUpKTtmdW5jdGlvbiB1KCl7bi5sZW5ndGg9MCxyLmNsZWFyKCl9cmV0dXJue2FkZFJvdXRlOmEscmVzb2x2ZTpsLHJlbW92ZVJvdXRlOm8sY2xlYXJSb3V0ZXM6dSxnZXRSb3V0ZXM6cyxnZXRSZWNvcmRNYXRjaGVyOml9fWZ1bmN0aW9uIGpfKGUsdCl7bGV0IG49e307Zm9yKGxldCByIG9mIHQpciBpbiBlJiYobltyXT1lW3JdKTtyZXR1cm4gbn1mdW5jdGlvbiBNXyhlKXtsZXQgdD17cGF0aDplLnBhdGgscmVkaXJlY3Q6ZS5yZWRpcmVjdCxuYW1lOmUubmFtZSxtZXRhOmUubWV0YXx8e30sYWxpYXNPZjplLmFsaWFzT2YsYmVmb3JlRW50ZXI6ZS5iZWZvcmVFbnRlcixwcm9wczpOXyhlKSxjaGlsZHJlbjplLmNoaWxkcmVufHxbXSxpbnN0YW5jZXM6e30sbGVhdmVHdWFyZHM6bmV3IFNldCx1cGRhdGVHdWFyZHM6bmV3IFNldCxlbnRlckNhbGxiYWNrczp7fSxjb21wb25lbnRzOmBjb21wb25lbnRzYGluIGU/ZS5jb21wb25lbnRzfHxudWxsOmUuY29tcG9uZW50JiZ7ZGVmYXVsdDplLmNvbXBvbmVudH19O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwibW9kcyIse3ZhbHVlOnt9fSksdH1mdW5jdGlvbiBOXyhlKXtsZXQgdD17fSxuPWUucHJvcHN8fCExO2lmKGBjb21wb25lbnRgaW4gZSl0LmRlZmF1bHQ9bjtlbHNlIGZvcihsZXQgciBpbiBlLmNvbXBvbmVudHMpdFtyXT10eXBlb2Ygbj09YG9iamVjdGA/bltyXTpuO3JldHVybiB0fWZ1bmN0aW9uIFBfKGUpe2Zvcig7ZTspe2lmKGUucmVjb3JkLmFsaWFzT2YpcmV0dXJuITA7ZT1lLnBhcmVudH1yZXR1cm4hMX1mdW5jdGlvbiBGXyhlKXtyZXR1cm4gZS5yZWR1Y2UoKGUsdCk9PlEoZSx0Lm1ldGEpLHt9KX1mdW5jdGlvbiBJXyhlLHQpe2xldCBuPTAscj10Lmxlbmd0aDtmb3IoO24hPT1yOyl7bGV0IGk9bityPj4xO0VfKGUsdFtpXSk8MD9yPWk6bj1pKzF9bGV0IGk9TF8oZSk7cmV0dXJuIGkmJihyPXQubGFzdEluZGV4T2YoaSxyLTEpKSxyfWZ1bmN0aW9uIExfKGUpe2xldCB0PWU7Zm9yKDt0PXQucGFyZW50OylpZihSXyh0KSYmRV8oZSx0KT09PTApcmV0dXJuIHR9ZnVuY3Rpb24gUl8oe3JlY29yZDplfSl7cmV0dXJuISEoZS5uYW1lfHxlLmNvbXBvbmVudHMmJk9iamVjdC5rZXlzKGUuY29tcG9uZW50cykubGVuZ3RofHxlLnJlZGlyZWN0KX1mdW5jdGlvbiB6XyhlKXtsZXQgdD13ZSh0Xyksbj13ZShuXykscj1OKCgpPT57bGV0IG49ZChlLnRvKTtyZXR1cm4gdC5yZXNvbHZlKG4pfSksaT1OKCgpPT57bGV0e21hdGNoZWQ6ZX09ci52YWx1ZSx7bGVuZ3RoOnR9PWUsaT1lW3QtMV0sYT1uLm1hdGNoZWQ7aWYoIWl8fCFhLmxlbmd0aClyZXR1cm4tMTtsZXQgbz1hLmZpbmRJbmRleChFZy5iaW5kKG51bGwsaSkpO2lmKG8+LTEpcmV0dXJuIG87bGV0IHM9V18oZVt0LTJdKTtyZXR1cm4gdD4xJiZXXyhpKT09PXMmJmFbYS5sZW5ndGgtMV0ucGF0aCE9PXM/YS5maW5kSW5kZXgoRWcuYmluZChudWxsLGVbdC0yXSkpOm99KSxhPU4oKCk9PmkudmFsdWU+LTEmJlVfKG4ucGFyYW1zLHIudmFsdWUucGFyYW1zKSksbz1OKCgpPT5pLnZhbHVlPi0xJiZpLnZhbHVlPT09bi5tYXRjaGVkLmxlbmd0aC0xJiZEZyhuLnBhcmFtcyxyLnZhbHVlLnBhcmFtcykpO2Z1bmN0aW9uIHMobj17fSl7aWYoSF8obikpe2xldCBuPXRbZChlLnJlcGxhY2UpP2ByZXBsYWNlYDpgcHVzaGBdKGQoZS50bykpLmNhdGNoKFhoKTtyZXR1cm4gZS52aWV3VHJhbnNpdGlvbiYmdHlwZW9mIGRvY3VtZW50PGB1YCYmYHN0YXJ0Vmlld1RyYW5zaXRpb25gaW4gZG9jdW1lbnQmJmRvY3VtZW50LnN0YXJ0Vmlld1RyYW5zaXRpb24oKCk9Pm4pLG59cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfXJldHVybntyb3V0ZTpyLGhyZWY6TigoKT0+ci52YWx1ZS5ocmVmKSxpc0FjdGl2ZTphLGlzRXhhY3RBY3RpdmU6byxuYXZpZ2F0ZTpzfX1mdW5jdGlvbiBCXyhlKXtyZXR1cm4gZS5sZW5ndGg9PT0xP2VbMF06ZX12YXIgVl89UCh7bmFtZTpgUm91dGVyTGlua2AsY29tcGF0Q29uZmlnOntNT0RFOjN9LHByb3BzOnt0bzp7dHlwZTpbU3RyaW5nLE9iamVjdF0scmVxdWlyZWQ6ITB9LHJlcGxhY2U6Qm9vbGVhbixhY3RpdmVDbGFzczpTdHJpbmcsZXhhY3RBY3RpdmVDbGFzczpTdHJpbmcsY3VzdG9tOkJvb2xlYW4sYXJpYUN1cnJlbnRWYWx1ZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpgcGFnZWB9LHZpZXdUcmFuc2l0aW9uOkJvb2xlYW59LHVzZUxpbms6el8sc2V0dXAoZSx7c2xvdHM6dH0pe2xldCBuPWMoel8oZSkpLHtvcHRpb25zOnJ9PXdlKHRfKSxpPU4oKCk9Pih7W0dfKGUuYWN0aXZlQ2xhc3Msci5saW5rQWN0aXZlQ2xhc3MsYHJvdXRlci1saW5rLWFjdGl2ZWApXTpuLmlzQWN0aXZlLFtHXyhlLmV4YWN0QWN0aXZlQ2xhc3Msci5saW5rRXhhY3RBY3RpdmVDbGFzcyxgcm91dGVyLWxpbmstZXhhY3QtYWN0aXZlYCldOm4uaXNFeGFjdEFjdGl2ZX0pKTtyZXR1cm4oKT0+e2xldCByPXQuZGVmYXVsdCYmQl8odC5kZWZhdWx0KG4pKTtyZXR1cm4gZS5jdXN0b20/cjprKGBhYCx7ImFyaWEtY3VycmVudCI6bi5pc0V4YWN0QWN0aXZlP2UuYXJpYUN1cnJlbnRWYWx1ZTpudWxsLGhyZWY6bi5ocmVmLG9uQ2xpY2s6bi5uYXZpZ2F0ZSxjbGFzczppLnZhbHVlfSxyKX19fSk7ZnVuY3Rpb24gSF8oZSl7aWYoIShlLm1ldGFLZXl8fGUuYWx0S2V5fHxlLmN0cmxLZXl8fGUuc2hpZnRLZXkpJiYhZS5kZWZhdWx0UHJldmVudGVkJiYhKGUuYnV0dG9uIT09dm9pZCAwJiZlLmJ1dHRvbiE9PTApKXtpZihlLmN1cnJlbnRUYXJnZXQmJmUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUpe2xldCB0PWUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoYHRhcmdldGApO2lmKC9cYl9ibGFua1xiL2kudGVzdCh0KSlyZXR1cm59cmV0dXJuIGUucHJldmVudERlZmF1bHQmJmUucHJldmVudERlZmF1bHQoKSwhMH19ZnVuY3Rpb24gVV8oZSx0KXtmb3IobGV0IG4gaW4gdCl7bGV0IHI9dFtuXSxpPWVbbl07aWYodHlwZW9mIHI9PWBzdHJpbmdgKXtpZihyIT09aSlyZXR1cm4hMX1lbHNlIGlmKCFaaChpKXx8aS5sZW5ndGghPT1yLmxlbmd0aHx8ci5zb21lKChlLHQpPT5lLnZhbHVlT2YoKSE9PWlbdF0udmFsdWVPZigpKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBXXyhlKXtyZXR1cm4gZT9lLmFsaWFzT2Y/ZS5hbGlhc09mLnBhdGg6ZS5wYXRoOmBgfXZhciBHXz0oZSx0LG4pPT5lPz90Pz9uLEtfPVAoe25hbWU6YFJvdXRlclZpZXdgLGluaGVyaXRBdHRyczohMSxwcm9wczp7bmFtZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpgZGVmYXVsdGB9LHJvdXRlOk9iamVjdH0sY29tcGF0Q29uZmlnOntNT0RFOjN9LHNldHVwKGUse2F0dHJzOnQsc2xvdHM6bn0pe2xldCByPXdlKHJfKSxpPU4oKCk9PmUucm91dGV8fHIudmFsdWUpLGE9d2UoZV8sMCksbz1OKCgpPT57bGV0IGU9ZChhKSx7bWF0Y2hlZDp0fT1pLnZhbHVlLG47Zm9yKDsobj10W2VdKSYmIW4uY29tcG9uZW50czspZSsrO3JldHVybiBlfSkscz1OKCgpPT5pLnZhbHVlLm1hdGNoZWRbby52YWx1ZV0pO20oZV8sTigoKT0+by52YWx1ZSsxKSksbSgkZyxzKSxtKHJfLGkpO2xldCBjPWIoKTtyZXR1cm4gZigoKT0+W2MudmFsdWUscy52YWx1ZSxlLm5hbWVdLChbZSx0LG5dLFtyLGksYV0pPT57dCYmKHQuaW5zdGFuY2VzW25dPWUsaSYmaSE9PXQmJmUmJmU9PT1yJiYodC5sZWF2ZUd1YXJkcy5zaXplfHwodC5sZWF2ZUd1YXJkcz1pLmxlYXZlR3VhcmRzKSx0LnVwZGF0ZUd1YXJkcy5zaXplfHwodC51cGRhdGVHdWFyZHM9aS51cGRhdGVHdWFyZHMpKSksZSYmdCYmKCFpfHwhRWcodCxpKXx8IXIpJiYodC5lbnRlckNhbGxiYWNrc1tuXXx8W10pLmZvckVhY2godD0+dChlKSl9LHtmbHVzaDpgcG9zdGB9KSwoKT0+e2xldCByPWkudmFsdWUsYT1lLm5hbWUsbz1zLnZhbHVlLGw9byYmby5jb21wb25lbnRzW2FdO2lmKCFsKXJldHVybiBxXyhuLmRlZmF1bHQse0NvbXBvbmVudDpsLHJvdXRlOnJ9KTtsZXQgdT1vLnByb3BzW2FdLGQ9ayhsLFEoe30sdT91PT09ITA/ci5wYXJhbXM6dHlwZW9mIHU9PWBmdW5jdGlvbmA/dShyKTp1Om51bGwsdCx7b25Wbm9kZVVubW91bnRlZDplPT57ZS5jb21wb25lbnQuaXNVbm1vdW50ZWQmJihvLmluc3RhbmNlc1thXT1udWxsKX0scmVmOmN9KSk7cmV0dXJuIHFfKG4uZGVmYXVsdCx7Q29tcG9uZW50OmQscm91dGU6cn0pfHxkfX19KTtmdW5jdGlvbiBxXyhlLHQpe2lmKCFlKXJldHVybiBudWxsO2xldCBuPWUodCk7cmV0dXJuIG4ubGVuZ3RoPT09MT9uWzBdOm59dmFyIEpfPUtfO2Z1bmN0aW9uIFlfKGUpe2xldCB0PUFfKGUucm91dGVzLGUpLG49ZS5wYXJzZVF1ZXJ5fHxYZyxyPWUuc3RyaW5naWZ5UXVlcnl8fFpnLGk9ZS5oaXN0b3J5LGE9aV8oKSxvPWlfKCksYz1pXygpLGw9cyhqZyksdT1qZztLaCYmZS5zY3JvbGxCZWhhdmlvciYmYHNjcm9sbFJlc3RvcmF0aW9uYGluIGhpc3RvcnkmJihoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uPWBtYW51YWxgKTtsZXQgZj1ZaC5iaW5kKG51bGwsZT0+YGArZSkscD1ZaC5iaW5kKG51bGwsdmcpLG09WWguYmluZChudWxsLHlnKTtmdW5jdGlvbiBoKGUsbil7bGV0IHIsaTtyZXR1cm4gR2coZSk/KHI9dC5nZXRSZWNvcmRNYXRjaGVyKGUpLGk9bik6aT1lLHQuYWRkUm91dGUoaSxyKX1mdW5jdGlvbiBnKGUpe2xldCBuPXQuZ2V0UmVjb3JkTWF0Y2hlcihlKTtuJiZ0LnJlbW92ZVJvdXRlKG4pfWZ1bmN0aW9uIF8oKXtyZXR1cm4gdC5nZXRSb3V0ZXMoKS5tYXAoZT0+ZS5yZWNvcmQpfWZ1bmN0aW9uIHYoZSl7cmV0dXJuISF0LmdldFJlY29yZE1hdGNoZXIoZSl9ZnVuY3Rpb24geShlLGEpe2lmKGE9USh7fSxhfHxsLnZhbHVlKSx0eXBlb2YgZT09YHN0cmluZ2Ape2xldCByPVNnKG4sZSxhLnBhdGgpLG89dC5yZXNvbHZlKHtwYXRoOnIucGF0aH0sYSkscz1pLmNyZWF0ZUhyZWYoci5mdWxsUGF0aCk7cmV0dXJuIFEocixvLHtwYXJhbXM6bShvLnBhcmFtcyksaGFzaDp5ZyhyLmhhc2gpLHJlZGlyZWN0ZWRGcm9tOnZvaWQgMCxocmVmOnN9KX1sZXQgbztpZihlLnBhdGghPW51bGwpbz1RKHt9LGUse3BhdGg6U2cobixlLnBhdGgsYS5wYXRoKS5wYXRofSk7ZWxzZXtsZXQgdD1RKHt9LGUucGFyYW1zKTtmb3IobGV0IGUgaW4gdCl0W2VdPz9kZWxldGUgdFtlXTtvPVEoe30sZSx7cGFyYW1zOnAodCl9KSxhLnBhcmFtcz1wKGEucGFyYW1zKX1sZXQgcz10LnJlc29sdmUobyxhKSxjPWUuaGFzaHx8YGA7cy5wYXJhbXM9ZihtKHMucGFyYW1zKSk7bGV0IHU9Q2cocixRKHt9LGUse2hhc2g6bWcoYykscGF0aDpzLnBhdGh9KSksZD1pLmNyZWF0ZUhyZWYodSk7cmV0dXJuIFEoe2Z1bGxQYXRoOnUsaGFzaDpjLHF1ZXJ5OnI9PT1aZz9RZyhlLnF1ZXJ5KTplLnF1ZXJ5fHx7fX0scyx7cmVkaXJlY3RlZEZyb206dm9pZCAwLGhyZWY6ZH0pfWZ1bmN0aW9uIGIoZSl7cmV0dXJuIHR5cGVvZiBlPT1gc3RyaW5nYD9TZyhuLGUsbC52YWx1ZS5wYXRoKTpRKHt9LGUpfWZ1bmN0aW9uIHgoZSx0KXtpZih1IT09ZSlyZXR1cm4gSmcoS2cuTkFWSUdBVElPTl9DQU5DRUxMRUQse2Zyb206dCx0bzplfSl9ZnVuY3Rpb24gQyhlKXtyZXR1cm4gRShlKX1mdW5jdGlvbiB3KGUpe3JldHVybiBDKFEoYihlKSx7cmVwbGFjZTohMH0pKX1mdW5jdGlvbiBUKGUsdCl7bGV0IG49ZS5tYXRjaGVkW2UubWF0Y2hlZC5sZW5ndGgtMV07aWYobiYmbi5yZWRpcmVjdCl7bGV0e3JlZGlyZWN0OnJ9PW4saT10eXBlb2Ygcj09YGZ1bmN0aW9uYD9yKGUsdCk6cjtyZXR1cm4gdHlwZW9mIGk9PWBzdHJpbmdgJiYoaT1pLmluY2x1ZGVzKGA/YCl8fGkuaW5jbHVkZXMoYCNgKT9pPWIoaSk6e3BhdGg6aX0saS5wYXJhbXM9e30pLFEoe3F1ZXJ5OmUucXVlcnksaGFzaDplLmhhc2gscGFyYW1zOmkucGF0aD09bnVsbD9lLnBhcmFtczp7fX0saSl9fWZ1bmN0aW9uIEUoZSx0KXtsZXQgbj11PXkoZSksaT1sLnZhbHVlLGE9ZS5zdGF0ZSxvPWUuZm9yY2Uscz1lLnJlcGxhY2U9PT0hMCxjPVQobixpKTtpZihjKXJldHVybiBFKFEoYihjKSx7c3RhdGU6dHlwZW9mIGM9PWBvYmplY3RgP1Eoe30sYSxjLnN0YXRlKTphLGZvcmNlOm8scmVwbGFjZTpzfSksdHx8bik7bGV0IGQ9bjtkLnJlZGlyZWN0ZWRGcm9tPXQ7bGV0IGY7cmV0dXJuIW8mJlRnKHIsaSxuKSYmKGY9SmcoS2cuTkFWSUdBVElPTl9EVVBMSUNBVEVELHt0bzpkLGZyb206aX0pLE0oaSxpLCEwLCExKSksKGY/UHJvbWlzZS5yZXNvbHZlKGYpOmsoZCxpKSkuY2F0Y2goZT0+WWcoZSk/WWcoZSxLZy5OQVZJR0FUSU9OX0dVQVJEX1JFRElSRUNUKT9lOnNlKGUpOmFlKGUsZCxpKSkudGhlbihlPT57aWYoZSl7aWYoWWcoZSxLZy5OQVZJR0FUSU9OX0dVQVJEX1JFRElSRUNUKSlyZXR1cm4gRShRKHtyZXBsYWNlOnN9LGIoZS50bykse3N0YXRlOnR5cGVvZiBlLnRvPT1gb2JqZWN0YD9RKHt9LGEsZS50by5zdGF0ZSk6YSxmb3JjZTpvfSksdHx8ZCl9ZWxzZSBlPWooZCxpLCEwLHMsYSk7cmV0dXJuIEEoZCxpLGUpLGV9KX1mdW5jdGlvbiBEKGUsdCl7bGV0IG49eChlLHQpO3JldHVybiBuP1Byb21pc2UucmVqZWN0KG4pOlByb21pc2UucmVzb2x2ZSgpfWZ1bmN0aW9uIE8oZSl7bGV0IHQ9bGUudmFsdWVzKCkubmV4dCgpLnZhbHVlO3JldHVybiB0JiZ0eXBlb2YgdC5ydW5XaXRoQ29udGV4dD09YGZ1bmN0aW9uYD90LnJ1bldpdGhDb250ZXh0KGUpOmUoKX1mdW5jdGlvbiBrKGUsdCl7bGV0IG4sW3IsaSxzXT1zXyhlLHQpO249b18oci5yZXZlcnNlKCksYGJlZm9yZVJvdXRlTGVhdmVgLGUsdCk7Zm9yKGxldCBpIG9mIHIpaS5sZWF2ZUd1YXJkcy5mb3JFYWNoKHI9PntuLnB1c2goYV8ocixlLHQpKX0pO2xldCBjPUQuYmluZChudWxsLGUsdCk7cmV0dXJuIG4ucHVzaChjKSxkZShuKS50aGVuKCgpPT57bj1bXTtmb3IobGV0IHIgb2YgYS5saXN0KCkpbi5wdXNoKGFfKHIsZSx0KSk7cmV0dXJuIG4ucHVzaChjKSxkZShuKX0pLnRoZW4oKCk9PntuPW9fKGksYGJlZm9yZVJvdXRlVXBkYXRlYCxlLHQpO2ZvcihsZXQgciBvZiBpKXIudXBkYXRlR3VhcmRzLmZvckVhY2gocj0+e24ucHVzaChhXyhyLGUsdCkpfSk7cmV0dXJuIG4ucHVzaChjKSxkZShuKX0pLnRoZW4oKCk9PntuPVtdO2ZvcihsZXQgciBvZiBzKWlmKHIuYmVmb3JlRW50ZXIpaWYoWmgoci5iZWZvcmVFbnRlcikpZm9yKGxldCBpIG9mIHIuYmVmb3JlRW50ZXIpbi5wdXNoKGFfKGksZSx0KSk7ZWxzZSBuLnB1c2goYV8oci5iZWZvcmVFbnRlcixlLHQpKTtyZXR1cm4gbi5wdXNoKGMpLGRlKG4pfSkudGhlbigoKT0+KGUubWF0Y2hlZC5mb3JFYWNoKGU9PmUuZW50ZXJDYWxsYmFja3M9e30pLG49b18ocyxgYmVmb3JlUm91dGVFbnRlcmAsZSx0LE8pLG4ucHVzaChjKSxkZShuKSkpLnRoZW4oKCk9PntuPVtdO2ZvcihsZXQgciBvZiBvLmxpc3QoKSluLnB1c2goYV8ocixlLHQpKTtyZXR1cm4gbi5wdXNoKGMpLGRlKG4pfSkuY2F0Y2goZT0+WWcoZSxLZy5OQVZJR0FUSU9OX0NBTkNFTExFRCk/ZTpQcm9taXNlLnJlamVjdChlKSl9ZnVuY3Rpb24gQShlLHQsbil7Yy5saXN0KCkuZm9yRWFjaChyPT5PKCgpPT5yKGUsdCxuKSkpfWZ1bmN0aW9uIGooZSx0LG4scixhKXtsZXQgbz14KGUsdCk7aWYobylyZXR1cm4gbztsZXQgcz10PT09amcsYz1LaD9oaXN0b3J5LnN0YXRlOnt9O24mJihyfHxzP2kucmVwbGFjZShlLmZ1bGxQYXRoLFEoe3Njcm9sbDpzJiZjJiZjLnNjcm9sbH0sYSkpOmkucHVzaChlLmZ1bGxQYXRoLGEpKSxsLnZhbHVlPWUsTShlLHQsbixzKSxzZSgpfWxldCBlZTtmdW5jdGlvbiB0ZSgpe2VlfHw9aS5saXN0ZW4oKGUsdCxuKT0+e2lmKCF1ZS5saXN0ZW5pbmcpcmV0dXJuO2xldCByPXkoZSksYT1UKHIsdWUuY3VycmVudFJvdXRlLnZhbHVlKTtpZihhKXtFKFEoYSx7cmVwbGFjZTohMCxmb3JjZTohMH0pLHIpLmNhdGNoKFhoKTtyZXR1cm59dT1yO2xldCBvPWwudmFsdWU7S2gmJkhnKEJnKG8uZnVsbFBhdGgsbi5kZWx0YSksUmcoKSksayhyLG8pLmNhdGNoKGU9PllnKGUsS2cuTkFWSUdBVElPTl9BQk9SVEVEfEtnLk5BVklHQVRJT05fQ0FOQ0VMTEVEKT9lOllnKGUsS2cuTkFWSUdBVElPTl9HVUFSRF9SRURJUkVDVCk/KEUoUShiKGUudG8pLHtmb3JjZTohMH0pLHIpLnRoZW4oZT0+e1lnKGUsS2cuTkFWSUdBVElPTl9BQk9SVEVEfEtnLk5BVklHQVRJT05fRFVQTElDQVRFRCkmJiFuLmRlbHRhJiZuLnR5cGU9PT1NZy5wb3AmJmkuZ28oLTEsITEpfSkuY2F0Y2goWGgpLFByb21pc2UucmVqZWN0KCkpOihuLmRlbHRhJiZpLmdvKC1uLmRlbHRhLCExKSxhZShlLHIsbykpKS50aGVuKGU9PntlfHw9aihyLG8sITEpLGUmJihuLmRlbHRhJiYhWWcoZSxLZy5OQVZJR0FUSU9OX0NBTkNFTExFRCk/aS5nbygtbi5kZWx0YSwhMSk6bi50eXBlPT09TWcucG9wJiZZZyhlLEtnLk5BVklHQVRJT05fQUJPUlRFRHxLZy5OQVZJR0FUSU9OX0RVUExJQ0FURUQpJiZpLmdvKC0xLCExKSksQShyLG8sZSl9KS5jYXRjaChYaCl9KX1sZXQgbmU9aV8oKSxyZT1pXygpLGllO2Z1bmN0aW9uIGFlKGUsdCxuKXtzZShlKTtsZXQgcj1yZS5saXN0KCk7cmV0dXJuIHIubGVuZ3RoP3IuZm9yRWFjaChyPT5yKGUsdCxuKSk6Y29uc29sZS5lcnJvcihlKSxQcm9taXNlLnJlamVjdChlKX1mdW5jdGlvbiBvZSgpe3JldHVybiBpZSYmbC52YWx1ZSE9PWpnP1Byb21pc2UucmVzb2x2ZSgpOm5ldyBQcm9taXNlKChlLHQpPT57bmUuYWRkKFtlLHRdKX0pfWZ1bmN0aW9uIHNlKGUpe3JldHVybiBpZXx8KGllPSFlLHRlKCksbmUubGlzdCgpLmZvckVhY2goKFt0LG5dKT0+ZT9uKGUpOnQoKSksbmUucmVzZXQoKSksZX1mdW5jdGlvbiBNKHQsbixyLGkpe2xldHtzY3JvbGxCZWhhdmlvcjphfT1lO2lmKCFLaHx8IWEpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2xldCBvPSFyJiZVZyhCZyh0LmZ1bGxQYXRoLDApKXx8KGl8fCFyKSYmaGlzdG9yeS5zdGF0ZSYmaGlzdG9yeS5zdGF0ZS5zY3JvbGx8fG51bGw7cmV0dXJuIEYoKS50aGVuKCgpPT5hKHQsbixvKSkudGhlbihlPT5lJiZ6ZyhlKSkuY2F0Y2goZT0+YWUoZSx0LG4pKX1sZXQgTj1lPT5pLmdvKGUpLGNlLGxlPW5ldyBTZXQsdWU9e2N1cnJlbnRSb3V0ZTpsLGxpc3RlbmluZzohMCxhZGRSb3V0ZTpoLHJlbW92ZVJvdXRlOmcsY2xlYXJSb3V0ZXM6dC5jbGVhclJvdXRlcyxoYXNSb3V0ZTp2LGdldFJvdXRlczpfLHJlc29sdmU6eSxvcHRpb25zOmUscHVzaDpDLHJlcGxhY2U6dyxnbzpOLGJhY2s6KCk9Pk4oLTEpLGZvcndhcmQ6KCk9Pk4oMSksYmVmb3JlRWFjaDphLmFkZCxiZWZvcmVSZXNvbHZlOm8uYWRkLGFmdGVyRWFjaDpjLmFkZCxvbkVycm9yOnJlLmFkZCxpc1JlYWR5Om9lLGluc3RhbGwoZSl7ZS5jb21wb25lbnQoYFJvdXRlckxpbmtgLFZfKSxlLmNvbXBvbmVudChgUm91dGVyVmlld2AsSl8pLGUuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMuJHJvdXRlcj11ZSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5jb25maWcuZ2xvYmFsUHJvcGVydGllcywiJHJvdXRlIix7ZW51bWVyYWJsZTohMCxnZXQ6KCk9PmQobCl9KSxLaCYmIWNlJiZsLnZhbHVlPT09amcmJihjZT0hMCxDKGkubG9jYXRpb24pLmNhdGNoKGU9Pnt9KSk7bGV0IHQ9e307Zm9yKGxldCBlIGluIGpnKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse2dldDooKT0+bC52YWx1ZVtlXSxlbnVtZXJhYmxlOiEwfSk7ZS5wcm92aWRlKHRfLHVlKSxlLnByb3ZpZGUobl8sUyh0KSksZS5wcm92aWRlKHJfLGwpO2xldCBuPWUudW5tb3VudDtsZS5hZGQoZSksZS51bm1vdW50PWZ1bmN0aW9uKCl7bGUuZGVsZXRlKGUpLGxlLnNpemU8MSYmKHU9amcsZWUmJmVlKCksZWU9bnVsbCxsLnZhbHVlPWpnLGNlPSExLGllPSExKSxuKCl9fX07ZnVuY3Rpb24gZGUoZSl7cmV0dXJuIGUucmVkdWNlKChlLHQpPT5lLnRoZW4oKCk9Pk8odCkpLFByb21pc2UucmVzb2x2ZSgpKX1yZXR1cm4gdWV9ZnVuY3Rpb24gWF8oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKXIhPT1gX19wcm90b19fYCYmKGVbcl09bltyXSl9cmV0dXJuIGV9dmFyIFpfPXtyZWFkOmZ1bmN0aW9uKGUpe3JldHVybiBlWzBdPT09YCJgJiYoZT1lLnNsaWNlKDEsLTEpKSxlLnJlcGxhY2UoLyglW1xkQS1GXXsyfSkrL2dpLGRlY29kZVVSSUNvbXBvbmVudCl9LHdyaXRlOmZ1bmN0aW9uKGUpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJSgyWzM0NkJGXXwzW0FDLUZdfDQwfDVbQkRFXXw2MHw3W0JDRF0pL2csZGVjb2RlVVJJQ29tcG9uZW50KX19O2Z1bmN0aW9uIFFfKGUsdCl7ZnVuY3Rpb24gbihuLHIsaSl7aWYoISh0eXBlb2YgZG9jdW1lbnQ+YHVgKSl7aT1YXyh7fSx0LGkpLHR5cGVvZiBpLmV4cGlyZXM9PWBudW1iZXJgJiYoaS5leHBpcmVzPW5ldyBEYXRlKERhdGUubm93KCkraS5leHBpcmVzKjg2NGU1KSksaS5leHBpcmVzJiY9aS5leHBpcmVzLnRvVVRDU3RyaW5nKCksbj1lbmNvZGVVUklDb21wb25lbnQobikucmVwbGFjZSgvJSgyWzM0NkJdfDVFfDYwfDdDKS9nLGRlY29kZVVSSUNvbXBvbmVudCkucmVwbGFjZSgvWygpXS9nLGVzY2FwZSk7dmFyIGE9YGA7Zm9yKHZhciBvIGluIGkpaVtvXSYmKGErPWA7IGArbyxpW29dIT09ITAmJihhKz1gPWAraVtvXS5zcGxpdChgO2ApWzBdKSk7cmV0dXJuIGRvY3VtZW50LmNvb2tpZT1uK2A9YCtlLndyaXRlKHIsbikrYX19ZnVuY3Rpb24gcih0KXtpZighKHR5cGVvZiBkb2N1bWVudD5gdWB8fGFyZ3VtZW50cy5sZW5ndGgmJiF0KSl7Zm9yKHZhciBuPWRvY3VtZW50LmNvb2tpZT9kb2N1bWVudC5jb29raWUuc3BsaXQoYDsgYCk6W10scj17fSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBhPW5baV0uc3BsaXQoYD1gKSxvPWEuc2xpY2UoMSkuam9pbihgPWApO3RyeXt2YXIgcz1kZWNvZGVVUklDb21wb25lbnQoYVswXSk7aWYocyBpbiByfHwocltzXT1lLnJlYWQobyxzKSksdD09PXMpYnJlYWt9Y2F0Y2h7fX1yZXR1cm4gdD9yW3RdOnJ9fXJldHVybiBPYmplY3QuY3JlYXRlKHtzZXQ6bixnZXQ6cixyZW1vdmU6ZnVuY3Rpb24oZSx0KXtuKGUsYGAsWF8oe30sdCx7ZXhwaXJlczotMX0pKX0sd2l0aEF0dHJpYnV0ZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIFFfKHRoaXMuY29udmVydGVyLFhfKHt9LHRoaXMuYXR0cmlidXRlcyxlKSl9LHdpdGhDb252ZXJ0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIFFfKFhfKHt9LHRoaXMuY29udmVydGVyLGUpLHRoaXMuYXR0cmlidXRlcyl9fSx7YXR0cmlidXRlczp7dmFsdWU6T2JqZWN0LmZyZWV6ZSh0KX0sY29udmVydGVyOnt2YWx1ZTpPYmplY3QuZnJlZXplKGUpfX0pfXZhciAkXz1RXyhaXyx7cGF0aDpgL2B9KTtmdW5jdGlvbiBldigpe3JldHVybiAkXy5nZXQoYHRva2VuYCl8fGxvY2FsU3RvcmFnZS5nZXRJdGVtKGB0b2tlbmApfHxgYH1mdW5jdGlvbiB0digpe3JldHVybiEhZXYoKX1mdW5jdGlvbiBudigpe3JldHVybiEhbG9jYWxTdG9yYWdlLmdldEl0ZW0oYGxvY2tgKX1mdW5jdGlvbiBydihlKXtyZXR1cm4gZT09PWAvbG9naW5gfHxlPT09YC9mb3JnZXRgfHxlPT09YC9yZWdgfHxlLnN0YXJ0c1dpdGgoYC9yZWcvYCl9dmFyIGl2PWBtb2R1bGVwcmVsb2FkYCxhdj1mdW5jdGlvbihlKXtyZXR1cm5gL2ArZX0sb3Y9e30sJD1mdW5jdGlvbihlLHQsbil7bGV0IHI9UHJvbWlzZS5yZXNvbHZlKCk7aWYodCYmdC5sZW5ndGg+MCl7bGV0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYGxpbmtgKSxpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1ldGFbcHJvcGVydHk9Y3NwLW5vbmNlXWApLGE9aT8ubm9uY2V8fGk/LmdldEF0dHJpYnV0ZShgbm9uY2VgKTtmdW5jdGlvbiBvKGUpe3JldHVybiBQcm9taXNlLmFsbChlLm1hcChlPT5Qcm9taXNlLnJlc29sdmUoZSkudGhlbihlPT4oe3N0YXR1czpgZnVsZmlsbGVkYCx2YWx1ZTplfSksZT0+KHtzdGF0dXM6YHJlamVjdGVkYCxyZWFzb246ZX0pKSkpfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIGltcG9ydC5tZXRhLnJlc29sdmU/aW1wb3J0Lm1ldGEucmVzb2x2ZShlKTpuZXcgVVJMKGUsbmV3IFVSTChgLi4vLi4vLi4vc3JjL25vZGUvcGx1Z2lucy9pbXBvcnRBbmFseXNpc0J1aWxkLnRzYCxpbXBvcnQubWV0YS51cmwpKS5ocmVmfXI9byh0Lm1hcCh0PT57aWYodD1hdih0LG4pLHQ9cyh0KSx0IGluIG92KXJldHVybjtvdlt0XT0hMDtsZXQgcj10LmVuZHNXaXRoKGAuY3NzYCk7Zm9yKGxldCBuPWUubGVuZ3RoLTE7bj49MDtuLS0pe2xldCBpPWVbbl07aWYoaS5ocmVmPT09dCYmKCFyfHxpLnJlbD09PWBzdHlsZXNoZWV0YCkpcmV0dXJufWxldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYGxpbmtgKTtpZihpLnJlbD1yP2BzdHlsZXNoZWV0YDppdixyfHwoaS5hcz1gc2NyaXB0YCksaS5jcm9zc09yaWdpbj1gYCxpLmhyZWY9dCxhJiZpLnNldEF0dHJpYnV0ZShgbm9uY2VgLGEpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoaSkscilyZXR1cm4gbmV3IFByb21pc2UoKGUsbik9PntpLmFkZEV2ZW50TGlzdGVuZXIoYGxvYWRgLGUpLGkuYWRkRXZlbnRMaXN0ZW5lcihgZXJyb3JgLCgpPT5uKEVycm9yKGBVbmFibGUgdG8gcHJlbG9hZCBDU1MgZm9yICR7dH1gKSkpfSl9KSl9ZnVuY3Rpb24gaShlKXtsZXQgdD1uZXcgRXZlbnQoYHZpdGU6cHJlbG9hZEVycm9yYCx7Y2FuY2VsYWJsZTohMH0pO2lmKHQucGF5bG9hZD1lLHdpbmRvdy5kaXNwYXRjaEV2ZW50KHQpLCF0LmRlZmF1bHRQcmV2ZW50ZWQpdGhyb3cgZX1yZXR1cm4gci50aGVuKHQ9Pntmb3IobGV0IGUgb2YgdHx8W10pZS5zdGF0dXM9PT1gcmVqZWN0ZWRgJiZpKGUucmVhc29uKTtyZXR1cm4gZSgpLmNhdGNoKGkpfSl9LHN2PXtUYWJiYXJTaG93OiEwfSxjdj1be3BhdGg6YC9gLHJlZGlyZWN0OmAvaG9tZWB9LHtwYXRoOmAvaG9tZWAsbmFtZTpgSG9tZWAsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vaG9tZS1CdnZhZ1VtLS5qc2ApLF9fdml0ZV9fbWFwRGVwcyhbMCwxLDIsM10pKSxtZXRhOnsuLi5zdix0aXRsZTpg6aaW6aG1YH19LHtwYXRoOmAvcmVjaGFyZ2VgLG5hbWU6YHJlY2hhcmdlYCxjb21wb25lbnQ6KCk9PiQoKCk9PmltcG9ydChgLi9yZWNoYXJnZS1ESVlZWml0Uy5qc2ApLF9fdml0ZV9fbWFwRGVwcyhbNCwxLDIsNV0pKSxtZXRhOnsuLi5zdix0aXRsZTpg5YWF5YC8YH19LHtwYXRoOmAvd2l0aGRyYXdhbGAsbmFtZTpgd2l0aGRyYXdhbGAsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vd2l0aGRyYXdhbC1DbWZPMGgyby5qc2ApLF9fdml0ZV9fbWFwRGVwcyhbNiwxLDIsNyw4XSkpLG1ldGE6e3RpdGxlOmDmj5DnjrBgfX0se3BhdGg6YC9ncmFiYCxuYW1lOmBncmFiYCxjb21wb25lbnQ6KCk9PiQoKCk9PmltcG9ydChgLi9ncmFiLUJnQWg2QzVuLmpzYCksX192aXRlX19tYXBEZXBzKFs5LDEsMiw3LDEwXSkpLG1ldGE6ey4uLnN2LHRpdGxlOmBHcmFiYH19LHtwYXRoOmAvb3JkZXJgLG5hbWU6YG9yZGVyYCxjb21wb25lbnQ6KCk9PiQoKCk9PmltcG9ydChgLi9vcmRlci12eVZDMTA1eS5qc2ApLF9fdml0ZV9fbWFwRGVwcyhbMTEsMSwyLDEyXSkpLG1ldGE6ey4uLnN2LHRpdGxlOmDorqLljZVgfX0se3BhdGg6YC9hY2NvdW50YCxuYW1lOmBhY2NvdW50YCxjb21wb25lbnQ6KCk9PiQoKCk9PmltcG9ydChgLi9hY2NvdW50LUI5QzNoSFJrLmpzYCksX192aXRlX19tYXBEZXBzKFsxMywxLDIsMTRdKSksbWV0YTp7Li4uc3YsdGl0bGU6YOi0puaIt2B9fSx7cGF0aDpgL2ludml0YXRpb25gLG5hbWU6YGludml0YXRpb25gLGNvbXBvbmVudDooKT0+JCgoKT0+aW1wb3J0KGAuL2ludml0YXRpb24tQjJZMl9TZkEuanNgKSxfX3ZpdGVfX21hcERlcHMoWzE1LDIsMTZdKSksbWV0YTp7dGl0bGU6YOmCgOivt2B9fSx7cGF0aDpgL2Fib3V0X3VzYCxuYW1lOmBhYm91dF91c2AsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vYWJvdXRfdXMtQkVTTXRBaFguanNgKSxfX3ZpdGVfX21hcERlcHMoWzE3LDIsMThdKSksbWV0YTp7dGl0bGU6YEFib3V0IFVzYH19LHtwYXRoOmAvYWJvdXRfaW52aXRhdGlvbmAsbmFtZTpgYWJvdXRfaW52aXRhdGlvbmAsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vYWJvdXRfaW52aXRhdGlvbi1oWWgtQ1lCSS5qc2ApLF9fdml0ZV9fbWFwRGVwcyhbMTksMiwyMF0pKSxtZXRhOnt0aXRsZTpgQWJvdXQgSW52aXRhdGlvbmB9fSx7cGF0aDpgL2Fib3V0X3dpdGhkcmF3YWxgLG5hbWU6YGFib3V0X3dpdGhkcmF3YWxgLGNvbXBvbmVudDooKT0+JCgoKT0+aW1wb3J0KGAuL2Fib3V0X3dpdGhkcmF3YWwtYTJ6dFNwQlouanNgKSxfX3ZpdGVfX21hcERlcHMoWzIxLDIsMjJdKSksbWV0YTp7dGl0bGU6YEFib3V0IFdpdGhkcmF3YWxgfX0se3BhdGg6YC9hYm91dF9pbnZlc3RtZW50X2luY29tZWAsbmFtZTpgYWJvdXRfaW52ZXN0bWVudF9pbmNvbWVgLGNvbXBvbmVudDooKT0+JCgoKT0+aW1wb3J0KGAuL2Fib3V0X2ludmVzdG1lbnRfaW5jb21lLURDYk1fZG1RLmpzYCksX192aXRlX19tYXBEZXBzKFsyMywyLDI0XSkpLG1ldGE6e3RpdGxlOmBBYm91dCBPcmRlcmB9fSx7cGF0aDpgL2xvZ2luYCxuYW1lOmBsb2dpbmAsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vbG9naW4taC1rTVRXWUcuanNgKSxfX3ZpdGVfX21hcERlcHMoWzI1LDEsMiw3LDI2XSkpLG1ldGE6e3RpdGxlOmDnmbvlvZVgfX0se3BhdGg6YC9mb3JnZXRgLG5hbWU6YGZvcmdldGAsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vZm9yZ2V0LUIxdEhBcXZFLmpzYCksX192aXRlX19tYXBEZXBzKFsyNywyLDI4XSkpLG1ldGE6e3RpdGxlOmDlv5jorrDlr4bnoIFgfX0se3BhdGg6YC9yZWdgLG5hbWU6YHJlZ2AsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vcmVnLUMyWFJzV05BLmpzYCksX192aXRlX19tYXBEZXBzKFsyOSwxLDIsNywzMF0pKSxtZXRhOnt0aXRsZTpg5rOo5YaMYH19LHtwYXRoOmAvcmVnLzppbnZpdGVgLG5hbWU6YHJlZ0ludml0ZWAsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vcmVnLUMyWFJzV05BLmpzYCksX192aXRlX19tYXBEZXBzKFsyOSwxLDIsNywzMF0pKSxtZXRhOnt0aXRsZTpg5rOo5YaMYH19LHtwYXRoOmAvY2FyZGAsbmFtZTpgY2FyZGAsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vY2FyZC1EWFBETW5pRi5qc2ApLF9fdml0ZV9fbWFwRGVwcyhbMzEsMSwyLDcsMzJdKSksbWV0YTp7dGl0bGU6YOmTtuihjOWNoWB9fSx7cGF0aDpgL3JlY2hhcmdlX29mZmxpbmUvOm1vbmV5YCxuYW1lOmByZWNoYXJnZV9vZmZsaW5lYCxjb21wb25lbnQ6KCk9PiQoKCk9PmltcG9ydChgLi9yZWNoYXJnZV9vZmZsaW5lLUJtWDFGc19BLmpzYCksX192aXRlX19tYXBEZXBzKFszMywxLDIsMzRdKSksbWV0YTp7dGl0bGU6YOe6v+S4i+WFheWAvGB9fSx7cGF0aDpgL29yZGVyX2RldGFpbC86b3JkZXJpZGAsbmFtZTpgb3JkZXJfZGV0YWlsYCxjb21wb25lbnQ6KCk9PiQoKCk9PmltcG9ydChgLi9vcmRlcl9kZXRhaWwtQzNfX2NTWGguanNgKSxfX3ZpdGVfX21hcERlcHMoWzM1LDEsMiw3LDM2XSkpLG1ldGE6e3RpdGxlOmDorqLljZXor6bmg4VgfX0se3BhdGg6YC9kZXRhaWxzYCxuYW1lOmBkZXRhaWxzYCxjb21wb25lbnQ6KCk9PiQoKCk9PmltcG9ydChgLi9kZXRhaWxzLUJyMWc4ckZoLmpzYCksX192aXRlX19tYXBEZXBzKFszNywxLDIsMzhdKSksbWV0YTp7dGl0bGU6YOi0puWNleaYjue7hmB9fSx7cGF0aDpgL2ZyZWV6ZWAsbmFtZTpgZnJlZXplYCxjb21wb25lbnQ6KCk9PiQoKCk9PmltcG9ydChgLi9mcmVlemUtQlA4YjB4SzUuanNgKSxfX3ZpdGVfX21hcERlcHMoWzM5LDIsNDBdKSksbWV0YTp7dGl0bGU6YOWGu+e7k+i1hOmHkWB9fSx7cGF0aDpgL3BlcnNvbmFsYCxuYW1lOmBwZXJzb25hbGAsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vcGVyc29uYWwtMldoVGdlWXUuanNgKSxfX3ZpdGVfX21hcERlcHMoWzQxLDEsMiw0Ml0pKSxtZXRhOnt0aXRsZTpg5Liq5Lq66LWE5paZYH19LHtwYXRoOmAvdGVhbWAsbmFtZTpgdGVhbWAsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vdGVhbS1Edk9VbVZRcC5qc2ApLF9fdml0ZV9fbWFwRGVwcyhbNDMsMiw0NF0pKSxtZXRhOnt0aXRsZTpg5Zui6Zif5oql6KGoYH19LHtwYXRoOmAvbWVzc2FnZWAsbmFtZTpgbWVzc2FnZWAsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vbWVzc2FnZS1CZmdncE9IbS5qc2ApLF9fdml0ZV9fbWFwRGVwcyhbNDUsMiw0Nl0pKSxtZXRhOnt0aXRsZTpg5raI5oGvYH19LHtwYXRoOmAvYWRkcmVzc2AsbmFtZTpgYWRkcmVzc2AsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vYWRkcmVzcy1ldXB6WWJfby5qc2ApLF9fdml0ZV9fbWFwRGVwcyhbNDcsMSwyLDcsNDhdKSksbWV0YTp7dGl0bGU6YOWcsOWdgOeuoeeQhmB9fSx7cGF0aDpgL2ludml0ZV90YXNrYCxuYW1lOmBpbnZpdGVfdGFza2AsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vaW52aXRlX3Rhc2stQjhvTUxDUjEuanNgKSxfX3ZpdGVfX21hcERlcHMoWzQ5LDIsNTBdKSksbWV0YTp7dGl0bGU6YOmCgOivt+S7u+WKoWB9fSx7cGF0aDpgL3NhZmVgLG5hbWU6YHNhZmVgLGNvbXBvbmVudDooKT0+JCgoKT0+aW1wb3J0KGAuL3NhZmUtRHdJMXR6NDkuanNgKSxfX3ZpdGVfX21hcERlcHMoWzUxLDIsNTJdKSksbWV0YTp7dGl0bGU6YOWuieWFqOeuoeeQhmB9fSx7cGF0aDpgL3Bhc3N3b3JkYCxuYW1lOmBwYXNzd29yZGAsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vcGFzc3dvcmQtQ044MHRsUHEuanNgKSxfX3ZpdGVfX21hcERlcHMoWzUzLDEsMiw3LDU0XSkpLG1ldGE6e3RpdGxlOmDnmbvlvZXlr4bnoIFgfX0se3BhdGg6YC9wYXNzd29yZF9wYXlgLG5hbWU6YHBhc3N3b3JkX3BheWAsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vcGFzc3dvcmRfcGF5LUJ0X0ZZeFlMLmpzYCksX192aXRlX19tYXBEZXBzKFs1NSwxLDIsNyw1Nl0pKSxtZXRhOnt0aXRsZTpg5pSv5LuY5a+G56CBYH19LHtwYXRoOmAvbG9ja2AsbmFtZTpgbG9ja2AsY29tcG9uZW50OigpPT4kKCgpPT5pbXBvcnQoYC4vbG9jay1CUTBibVhvUC5qc2ApLF9fdml0ZV9fbWFwRGVwcyhbNTcsMSwyLDU4XSkpLG1ldGE6e3RpdGxlOmDns7vnu5/lvILluLhgfX1dLGx2PVlfKHtoaXN0b3J5Om1fKCkscm91dGVzOmN2fSk7bHYuYmVmb3JlRWFjaCgoZSx0LG4pPT57aWYobnYoKSl7ZS5wYXRoPT09YC9sb2NrYD9uKCk6bih7cGF0aDpgL2xvY2tgfSk7cmV0dXJufWlmKHR2KCkpe2UucGF0aD09PWAvbG9naW5gP24oe3BhdGg6YC9ob21lYH0pOm4oKTtyZXR1cm59cnYoZS5wYXRoKT9uKCk6bih7cGF0aDpgL2xvZ2luYH0pfSk7dmFyIHV2PXtkYXRhKCl7cmV0dXJue2FjdGl2ZTpgaG9tZWB9fSx3YXRjaDp7IiRyb3V0ZS5wYXRoIjp7aW1tZWRpYXRlOiEwLGhhbmRsZXIoZSl7ZT09PWAvaG9tZWB8fGU9PT1gL2A/dGhpcy5hY3RpdmU9YGhvbWVgOmU9PT1gL3JlY2hhcmdlYD90aGlzLmFjdGl2ZT1gcmVjaGFyZ2VgOmU9PT1gL29yZGVyYD90aGlzLmFjdGl2ZT1gb3JkZXJgOmU9PT1gL2dyYWJgP3RoaXMuYWN0aXZlPWBncmFiYDplPT09YC9hY2NvdW50YHx8ZT09PWAvaW52aXRhdGlvbmA/dGhpcy5hY3RpdmU9YGFjY291bnRgOmU9PT1gL3dpdGhkcmF3YWxgJiYodGhpcy5hY3RpdmU9YGApfX19LG1ldGhvZHM6e2hhbmRsZUNoYW5nZShlKXt0aGlzLmFjdGl2ZT1lfX19LGR2PXtjbGFzczpgdGFiYmFyYH07ZnVuY3Rpb24gZnYoZSx0LG4scixpLGEpe2xldCBzPW8oYHZhbi10YWJiYXItaXRlbWApLGM9byhgdmFuLXRhYmJhcmApO3JldHVybiBwKCksbWUoYGRpdmAsZHYsW0UoYyx7bW9kZWxWYWx1ZTppLmFjdGl2ZSwib25VcGRhdGU6bW9kZWxWYWx1ZSI6dFswXXx8PWU9PmkuYWN0aXZlPWUsb25DaGFuZ2U6YS5oYW5kbGVDaGFuZ2V9LHtkZWZhdWx0OkVlKCgpPT5bRShzLHtuYW1lOmBob21lYCx0bzpgL2hvbWVgfSx7aWNvbjpFZSgoe2FjdGl2ZTplfSk9PltTZShgaWAse2NsYXNzOmooW2BpY29uZm9udCBpY29uLXNob3V5ZS1mYCx7Y29sb3I6ZSxjb2xvcnM6IWV9XSl9LG51bGwsMildKSxkZWZhdWx0OkVlKCgpPT5bdFsxXXx8PVNlKGBzcGFuYCxudWxsLGBIb21lYCwtMSldKSxfOjF9KSxFKHMse25hbWU6YHJlY2hhcmdlYCx0bzpgL3JlY2hhcmdlYH0se2ljb246RWUoKHthY3RpdmU6ZX0pPT5bU2UoYGlgLHtjbGFzczpqKFtgaWNvbmZvbnQgaWNvbi1jaG9uZ3poaWppYW9mZWlgLHtjb2xvcjplLGNvbG9yczohZX1dKX0sbnVsbCwyKV0pLGRlZmF1bHQ6RWUoKCk9Plt0WzJdfHw9U2UoYHNwYW5gLG51bGwsYFJlY2hhcmVgLC0xKV0pLF86MX0pLEUocyx7bmFtZTpgZ3JhYmAsdG86YC9ncmFiYH0se2ljb246RWUoKHthY3RpdmU6ZX0pPT5bU2UoYGlgLHtjbGFzczpqKFtgaWNvbmZvbnQgaWNvbi10ZWRpYW5zaGFuZGlhbmZhaHVvIGNvbG9yMmAse2NvbG9yOmUsY29sb3JzOiFlfV0pfSxudWxsLDIpXSksZGVmYXVsdDpFZSgoKT0+W3RbM118fD1TZShgc3BhbmAsbnVsbCxgR3JhYmAsLTEpXSksXzoxfSksRShzLHtuYW1lOmBvcmRlcmAsdG86YC9vcmRlcmB9LHtpY29uOkVlKCh7YWN0aXZlOmV9KT0+W1NlKGBpYCx7Y2xhc3M6aihbYGljb25mb250IGljb24tZGluZ2RhbmppYW55aW5nYCx7Y29sb3I6ZSxjb2xvcnM6IWV9XSl9LG51bGwsMildKSxkZWZhdWx0OkVlKCgpPT5bdFs0XXx8PVNlKGBzcGFuYCxudWxsLGBPcmRlcmAsLTEpXSksXzoxfSksRShzLHtuYW1lOmBhY2NvdW50YCx0bzpgL2FjY291bnRgfSx7aWNvbjpFZSgoe2FjdGl2ZTplfSk9PltTZShgaWAse2NsYXNzOmooW2BpY29uZm9udCBpY29uLWljb25faWNvbi1kZW5nbHUteW9uZ2h1bWluZ2Ase2NvbG9yOmUsY29sb3JzOiFlfV0pfSxudWxsLDIpXSksZGVmYXVsdDpFZSgoKT0+W3RbNV18fD1TZShgc3BhbmAsbnVsbCxgQWNjb3VudGAsLTEpXSksXzoxfSldKSxfOjF9LDgsW2Btb2RlbFZhbHVlYCxgb25DaGFuZ2VgXSldKX12YXIgcHY9e2NvbXBvbmVudHM6e1RhYmJhcjpiZSh1dixbW2ByZW5kZXJgLGZ2XSxbYF9fc2NvcGVJZGAsYGRhdGEtdi03YmNjMThhZWBdXSl9fTtmdW5jdGlvbiBtdihlLHQsbixyLGksYSl7bGV0IHM9byhgcm91dGVyLXZpZXdgKSxjPW8oYFRhYmJhcmApO3JldHVybiBwKCksbWUoRCxudWxsLFtFKHMpLGUuJHJvdXRlLm1ldGEuVGFiYmFyU2hvdz8ocCgpLGVlKGMse2tleTowfSkpOm5lKGBgLCEwKV0sNjQpfXZhciBodj1iZShwdixbW2ByZW5kZXJgLG12XV0pLGd2PXtGb3JtYXRDdXJyZW5jeShlKXtpZihlPT1udWxsKXJldHVybmAwLjBgO2U9ZS50b1N0cmluZygpLnJlcGxhY2UoL1wkfFwsL2csYGApLGlzTmFOKGUpJiYoZT1gMGApO2xldCB0PWU9PShlPU1hdGguYWJzKGUpKTtlPU1hdGguZmxvb3IoZSoxMDArLjUwMDAwMDAwMDAxKTtsZXQgbj1lJTEwMDtlPU1hdGguZmxvb3IoZS8xMDApLnRvU3RyaW5nKCksbjwxMCYmKG49YDBgK24pO2Zvcih2YXIgcj0wO3I8TWF0aC5mbG9vcigoZS5sZW5ndGgtKDErcikpLzMpO3IrKyllPWUuc3Vic3RyaW5nKDAsZS5sZW5ndGgtKDQqciszKSkrYCxgK2Uuc3Vic3RyaW5nKGUubGVuZ3RoLSg0KnIrMykpO3JldHVybih0P2BgOmAtYCkrZStgLmArbn0sRm9ybWF0U3RhdHVzKGUpe2lmKGU9PTApcmV0dXJuYFBlbmRpbmdgO2lmKGU9PTEpcmV0dXJuYEZpbmlzaGA7aWYoZT09MilyZXR1cm5gU2V0dGxlbWVudGA7aWYoZT09MylyZXR1cm5gTWVyY2hhbnQgcHJvY2Vzc2luZ2B9LEZvcm1hdFN0YXR1czIoZSl7aWYoZT09MClyZXR1cm5gUGVuZGluZ2A7aWYoZT09MSlyZXR1cm5gUGFpZGA7aWYoZT09MilyZXR1cm5gU2V0dGxlbWVudGA7aWYoZT09MylyZXR1cm5gTWVyY2hhbnQgcHJvY2Vzc2luZ2B9LGlzTnVtYmVyKGUpe3JldHVybiFpc05hTihOdW1iZXIoZSwxMCkpfSxnZXRVcmxQYXJhbShlKXtsZXQgdD13aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdChgP2ApO2lmKHQubGVuZ3RoPT0xKXJldHVybmBgO2xldCBuPXRbMV0uc3BsaXQoYCZgKSxyPXt9O3JldHVybiBuLmZvckVhY2goZT0+e2xldCB0PWUuc3BsaXQoYD1gKTtyW3RbMF1dPXRbMV19KSxyW2VdPT1udWxsP2BgOnJbZV19fTtFci51c2UoYGVuLVVTYCxHaCk7dmFyIF92PXF0KGh2KTtfdi5jb25maWcuZ2xvYmFsUHJvcGVydGllcy5jb21tb249Z3YsX3YudXNlKFdoKS51c2UobHYpLm1vdW50KGAjYXBwYCk7ZXhwb3J0e2NzIGFzIGEsaXMgYXMgYyxWdCBhcyBkLGxzIGFzIGksUnQgYXMgbCwkXyBhcyBuLG9zIGFzIG8sX3UgYXMgcixzcyBhcyBzLGd2IGFzIHQsaXQgYXMgdX07"}},"time_used":557,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":557,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"ultradns","sensor_type":"DNS","title":"DigiCert UltraDNS","description":"DigiCert UltraDNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://vercara.digicert.com/ultra-dns-public","meta":null},{"sensor_name":"cloudflare_dns","sensor_type":"DNS","title":"Cloudflare DNS","description":"Cloudflare DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cloudflare.com/application-services/products/dns/","meta":null},{"sensor_name":"cira_dns","sensor_type":"DNS","title":"CIRA Canadian Shield DNS","description":"CIRA Canadian Shield DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cira.ca/en/canadian-shield/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"amazonenterprise3.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":[{"sensor_name":"urlquery","alert":"Phishing - Amazon","verdict":"phishing","severity":"medium","comment":"Resource associated with Amazon phishing","tags":["amazon","phishing"],"meta":null}]}},{"url":{"schema":"https","addr":"amazonenterprise3.com/assets/_plugin-vue_export-helper-CCRSHpwL.js","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://amazonenterprise3.com/","date":"2026-07-27T14:02:22.635Z","timestamp":1785160942635,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"amazonenterprise3.com","organization":""},"issuer":{"commonName":"LiteSSL RSA CA 2025","organization":"TrustAsia Technologies, Inc."},"validity":{"start":"Mon, 20 Jul 2026 11:00:00 GMT","end":"Sun, 18 Oct 2026 10:59:59 GMT"},"fingerprint":{"sha1":"4A:8A:66:B3:B0:81:D6:26:E2:8C:1F:FF:74:BC:A3:71:A3:81:C0:42","sha256":"E4:66:EB:64:6C:32:49:49:72:14:0B:E8:64:1D:03:F1:C0:70:AF:96:1E:F3:BF:6A:58:42:F7:06:1F:E0:51:A0"}}},"request":{"raw":"GET /assets/_plugin-vue_export-helper-CCRSHpwL.js HTTP/1.1\r\nHost: amazonenterprise3.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://amazonenterprise3.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\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 14:02:22 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Tue, 21 Jul 2026 18:45:13 GMT\r\nvary: Accept-Encoding\r\netag: W/\"6a5fbe39-f21b\"\r\nexpires: Tue, 28 Jul 2026 02:02:22 GMT\r\ncache-control: max-age=43200\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\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":61979,"size_decoded":24695,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (61979), with no line terminators","md5":"8205f79a932125824ffc885204da978e","sha1":"d9e7b8de1e753c55cc6ab94cec2f7d3d24db94c7","sha256":"384fe3da5652d80b9dc9e54eeecf6e9ad7b8cb0889920649c87b9ffb53ecbf1a","sha512":"1cc8d8645a256c5877b70be36399a46db9dc4423e9d7460e9ca4b19c424dc16a123879eabc4b92b223681a501f58f6e61ef9e59f93011d7da4ee683b694101ac","ssdeep":"768:+/tMA9J/6NHFnFGs0X2/EKeF/t5r1Na5bv8yYoi/lAa4n7+kQMYO:Ca4J/6NC2c33rCTayyo","tlshash":"cf5308f93386b57293ee12f7407b4402f3aa289a2c0d052cf195a99f397580991fbf75","first_seen":"2026-07-27T12:42:47.693267Z","last_seen":"2026-07-27T14:03:28.939314Z","times_seen":3,"resource_available":true,"data":"ZnVuY3Rpb24gZShlKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgbiBvZiBlLnNwbGl0KGAsYCkpdFtuXT0xO3JldHVybiBlPT5lIGluIHR9dmFyIHQ9e30sbj1bXSxyPSgpPT57fSxpPSgpPT4hMSxhPWU9PmUuY2hhckNvZGVBdCgwKT09PTExMSYmZS5jaGFyQ29kZUF0KDEpPT09MTEwJiYoZS5jaGFyQ29kZUF0KDIpPjEyMnx8ZS5jaGFyQ29kZUF0KDIpPDk3KSxvPWU9PmUuc3RhcnRzV2l0aChgb25VcGRhdGU6YCkscz1PYmplY3QuYXNzaWduLGM9KGUsdCk9PntsZXQgbj1lLmluZGV4T2YodCk7bj4tMSYmZS5zcGxpY2UobiwxKX0sbD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHU9KGUsdCk9PmwuY2FsbChlLHQpLGQ9QXJyYXkuaXNBcnJheSxmPWU9PngoZSk9PT1gW29iamVjdCBNYXBdYCxwPWU9PngoZSk9PT1gW29iamVjdCBTZXRdYCxtPWU9PngoZSk9PT1gW29iamVjdCBEYXRlXWAsaD1lPT50eXBlb2YgZT09YGZ1bmN0aW9uYCxnPWU9PnR5cGVvZiBlPT1gc3RyaW5nYCxfPWU9PnR5cGVvZiBlPT1gc3ltYm9sYCx2PWU9PnR5cGVvZiBlPT1gb2JqZWN0YCYmISFlLHk9ZT0+KHYoZSl8fGgoZSkpJiZoKGUudGhlbikmJmgoZS5jYXRjaCksYj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLHg9ZT0+Yi5jYWxsKGUpLFM9ZT0+eChlKS5zbGljZSg4LC0xKSxDPWU9PngoZSk9PT1gW29iamVjdCBPYmplY3RdYCx3PWU9PmcoZSkmJmUhPT1gTmFOYCYmZVswXSE9PWAtYCYmYGArcGFyc2VJbnQoZSwxMCk9PT1lLFQ9ZShgLGtleSxyZWYscmVmX2ZvcixyZWZfa2V5LG9uVm5vZGVCZWZvcmVNb3VudCxvblZub2RlTW91bnRlZCxvblZub2RlQmVmb3JlVXBkYXRlLG9uVm5vZGVVcGRhdGVkLG9uVm5vZGVCZWZvcmVVbm1vdW50LG9uVm5vZGVVbm1vdW50ZWRgKSxlZT1lPT57bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4obj0+dFtuXXx8KHRbbl09ZShuKSkpfSx0ZT0vLVx3L2csRT1lZShlPT5lLnJlcGxhY2UodGUsZT0+ZS5zbGljZSgxKS50b1VwcGVyQ2FzZSgpKSksbmU9L1xCKFtBLVpdKS9nLEQ9ZWUoZT0+ZS5yZXBsYWNlKG5lLGAtJDFgKS50b0xvd2VyQ2FzZSgpKSxyZT1lZShlPT5lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSkpLGllPWVlKGU9PmU/YG9uJHtyZShlKX1gOmBgKSxPPShlLHQpPT4hT2JqZWN0LmlzKGUsdCksYWU9KGUsLi4udCk9Pntmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyllW25dKC4uLnQpfSxrPShlLHQsbixyPSExKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOnIsdmFsdWU6bn0pfSxvZT1lPT57bGV0IHQ9cGFyc2VGbG9hdChlKTtyZXR1cm4gaXNOYU4odCk/ZTp0fSxzZT1lPT57bGV0IHQ9ZyhlKT9OdW1iZXIoZSk6TmFOO3JldHVybiBpc05hTih0KT9lOnR9LGNlLGxlPSgpPT5jZXx8PXR5cGVvZiBnbG9iYWxUaGlzPGB1YD9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPGB1YD9zZWxmOnR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6e307ZnVuY3Rpb24gdWUoZSl7aWYoZChlKSl7bGV0IHQ9e307Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2xldCByPWVbbl0saT1nKHIpP21lKHIpOnVlKHIpO2lmKGkpZm9yKGxldCBlIGluIGkpdFtlXT1pW2VdfXJldHVybiB0fWVsc2UgaWYoZyhlKXx8dihlKSlyZXR1cm4gZX12YXIgZGU9LzsoPyFbXihdKlwpKS9nLGZlPS86KFteXSspLyxwZT0vXC9cKlteXSo/XCpcLy9nO2Z1bmN0aW9uIG1lKGUpe2xldCB0PXt9O3JldHVybiBlLnJlcGxhY2UocGUsYGApLnNwbGl0KGRlKS5mb3JFYWNoKGU9PntpZihlKXtsZXQgbj1lLnNwbGl0KGZlKTtuLmxlbmd0aD4xJiYodFtuWzBdLnRyaW0oKV09blsxXS50cmltKCkpfX0pLHR9ZnVuY3Rpb24gaGUoZSl7aWYoIWUpcmV0dXJuYGA7aWYoZyhlKSlyZXR1cm4gZTtsZXQgdD1gYDtmb3IobGV0IG4gaW4gZSl7bGV0IHI9ZVtuXTtpZihnKHIpfHx0eXBlb2Ygcj09YG51bWJlcmApe2xldCBlPW4uc3RhcnRzV2l0aChgLS1gKT9uOkQobik7dCs9YCR7ZX06JHtyfTtgfX1yZXR1cm4gdH1mdW5jdGlvbiBnZShlKXtsZXQgdD1gYDtpZihnKGUpKXQ9ZTtlbHNlIGlmKGQoZSkpZm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2xldCByPWdlKGVbbl0pO3ImJih0Kz1yK2AgYCl9ZWxzZSBpZih2KGUpKWZvcihsZXQgbiBpbiBlKWVbbl0mJih0Kz1uK2AgYCk7cmV0dXJuIHQudHJpbSgpfXZhciBfZT1gaXRlbXNjb3BlLGFsbG93ZnVsbHNjcmVlbixmb3Jtbm92YWxpZGF0ZSxpc21hcCxub21vZHVsZSxub3ZhbGlkYXRlLHJlYWRvbmx5YCx2ZT1lKF9lKTtfZStgYDtmdW5jdGlvbiB5ZShlKXtyZXR1cm4hIWV8fGU9PT1gYH1mdW5jdGlvbiBiZShlLHQpe2lmKGUubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7bGV0IG49ITA7Zm9yKGxldCByPTA7biYmcjxlLmxlbmd0aDtyKyspbj14ZShlW3JdLHRbcl0pO3JldHVybiBufWZ1bmN0aW9uIHhlKGUsdCl7aWYoZT09PXQpcmV0dXJuITA7bGV0IG49bShlKSxyPW0odCk7aWYobnx8cilyZXR1cm4gbiYmcj9lLmdldFRpbWUoKT09PXQuZ2V0VGltZSgpOiExO2lmKG49XyhlKSxyPV8odCksbnx8cilyZXR1cm4gZT09PXQ7aWYobj1kKGUpLHI9ZCh0KSxufHxyKXJldHVybiBuJiZyP2JlKGUsdCk6ITE7aWYobj12KGUpLHI9dih0KSxufHxyKXtpZighbnx8IXJ8fE9iamVjdC5rZXlzKGUpLmxlbmd0aCE9PU9iamVjdC5rZXlzKHQpLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IG4gaW4gZSl7bGV0IHI9ZS5oYXNPd25Qcm9wZXJ0eShuKSxpPXQuaGFzT3duUHJvcGVydHkobik7aWYociYmIWl8fCFyJiZpfHwheGUoZVtuXSx0W25dKSlyZXR1cm4hMX19cmV0dXJuIFN0cmluZyhlKT09PVN0cmluZyh0KX12YXIgU2U9ZT0+ISEoZSYmZS5fX3ZfaXNSZWY9PT0hMCksQ2U9ZT0+ZyhlKT9lOmU9PW51bGw/YGA6ZChlKXx8dihlKSYmKGUudG9TdHJpbmc9PT1ifHwhaChlLnRvU3RyaW5nKSk/U2UoZSk/Q2UoZS52YWx1ZSk6SlNPTi5zdHJpbmdpZnkoZSx3ZSwyKTpTdHJpbmcoZSksd2U9KGUsdCk9PlNlKHQpP3dlKGUsdC52YWx1ZSk6Zih0KT97W2BNYXAoJHt0LnNpemV9KWBdOlsuLi50LmVudHJpZXMoKV0ucmVkdWNlKChlLFt0LG5dLHIpPT4oZVtUZSh0LHIpK2AgPT5gXT1uLGUpLHt9KX06cCh0KT97W2BTZXQoJHt0LnNpemV9KWBdOlsuLi50LnZhbHVlcygpXS5tYXAoZT0+VGUoZSkpfTpfKHQpP1RlKHQpOnYodCkmJiFkKHQpJiYhQyh0KT9TdHJpbmcodCk6dCxUZT0oZSx0PWBgKT0+XyhlKT9gU3ltYm9sKCR7ZS5kZXNjcmlwdGlvbj8/dH0pYDplLEEsRWU9Y2xhc3N7Y29uc3RydWN0b3IoZT0hMSl7dGhpcy5kZXRhY2hlZD1lLHRoaXMuX2FjdGl2ZT0hMCx0aGlzLl9vbj0wLHRoaXMuZWZmZWN0cz1bXSx0aGlzLmNsZWFudXBzPVtdLHRoaXMuX2lzUGF1c2VkPSExLHRoaXMuX3dhcm5PblJ1bj0hMCx0aGlzLl9fdl9za2lwPSEwLCFlJiZBJiYoQS5hY3RpdmU/KHRoaXMucGFyZW50PUEsdGhpcy5pbmRleD0oQS5zY29wZXN8fD1bXSkucHVzaCh0aGlzKS0xKToodGhpcy5fYWN0aXZlPSExLHRoaXMuX3dhcm5PblJ1bj0hMSkpfWdldCBhY3RpdmUoKXtyZXR1cm4gdGhpcy5fYWN0aXZlfXBhdXNlKCl7aWYodGhpcy5fYWN0aXZlKXt0aGlzLl9pc1BhdXNlZD0hMDtsZXQgZSx0O2lmKHRoaXMuc2NvcGVzKWZvcihlPTAsdD10aGlzLnNjb3Blcy5sZW5ndGg7ZTx0O2UrKyl0aGlzLnNjb3Blc1tlXS5wYXVzZSgpO2ZvcihlPTAsdD10aGlzLmVmZmVjdHMubGVuZ3RoO2U8dDtlKyspdGhpcy5lZmZlY3RzW2VdLnBhdXNlKCl9fXJlc3VtZSgpe2lmKHRoaXMuX2FjdGl2ZSYmdGhpcy5faXNQYXVzZWQpe3RoaXMuX2lzUGF1c2VkPSExO2xldCBlLHQ7aWYodGhpcy5zY29wZXMpZm9yKGU9MCx0PXRoaXMuc2NvcGVzLmxlbmd0aDtlPHQ7ZSsrKXRoaXMuc2NvcGVzW2VdLnJlc3VtZSgpO2ZvcihlPTAsdD10aGlzLmVmZmVjdHMubGVuZ3RoO2U8dDtlKyspdGhpcy5lZmZlY3RzW2VdLnJlc3VtZSgpfX1ydW4oZSl7aWYodGhpcy5fYWN0aXZlKXtsZXQgdD1BO3RyeXtyZXR1cm4gQT10aGlzLGUoKX1maW5hbGx5e0E9dH19fW9uKCl7Kyt0aGlzLl9vbj09PTEmJih0aGlzLnByZXZTY29wZT1BLEE9dGhpcyl9b2ZmKCl7aWYodGhpcy5fb24+MCYmLS10aGlzLl9vbj09PTApe2lmKEE9PT10aGlzKUE9dGhpcy5wcmV2U2NvcGU7ZWxzZXtsZXQgZT1BO2Zvcig7ZTspe2lmKGUucHJldlNjb3BlPT09dGhpcyl7ZS5wcmV2U2NvcGU9dGhpcy5wcmV2U2NvcGU7YnJlYWt9ZT1lLnByZXZTY29wZX19dGhpcy5wcmV2U2NvcGU9dm9pZCAwfX1zdG9wKGUpe2lmKHRoaXMuX2FjdGl2ZSl7dGhpcy5fYWN0aXZlPSExO2xldCB0LG47Zm9yKHQ9MCxuPXRoaXMuZWZmZWN0cy5sZW5ndGg7dDxuO3QrKyl0aGlzLmVmZmVjdHNbdF0uc3RvcCgpO2Zvcih0aGlzLmVmZmVjdHMubGVuZ3RoPTAsdD0wLG49dGhpcy5jbGVhbnVwcy5sZW5ndGg7dDxuO3QrKyl0aGlzLmNsZWFudXBzW3RdKCk7aWYodGhpcy5jbGVhbnVwcy5sZW5ndGg9MCx0aGlzLnNjb3Blcyl7Zm9yKHQ9MCxuPXRoaXMuc2NvcGVzLmxlbmd0aDt0PG47dCsrKXRoaXMuc2NvcGVzW3RdLnN0b3AoITApO3RoaXMuc2NvcGVzLmxlbmd0aD0wfWlmKCF0aGlzLmRldGFjaGVkJiZ0aGlzLnBhcmVudCYmIWUpe2xldCBlPXRoaXMucGFyZW50LnNjb3Blcy5wb3AoKTtlJiZlIT09dGhpcyYmKHRoaXMucGFyZW50LnNjb3Blc1t0aGlzLmluZGV4XT1lLGUuaW5kZXg9dGhpcy5pbmRleCl9dGhpcy5wYXJlbnQ9dm9pZCAwfX19O2Z1bmN0aW9uIERlKCl7cmV0dXJuIEF9dmFyIGosT2U9bmV3IFdlYWtTZXQsa2U9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5mbj1lLHRoaXMuZGVwcz12b2lkIDAsdGhpcy5kZXBzVGFpbD12b2lkIDAsdGhpcy5mbGFncz01LHRoaXMubmV4dD12b2lkIDAsdGhpcy5jbGVhbnVwPXZvaWQgMCx0aGlzLnNjaGVkdWxlcj12b2lkIDAsQSYmKEEuYWN0aXZlP0EuZWZmZWN0cy5wdXNoKHRoaXMpOnRoaXMuZmxhZ3MmPS0yKX1wYXVzZSgpe3RoaXMuZmxhZ3N8PTY0fXJlc3VtZSgpe3RoaXMuZmxhZ3MmNjQmJih0aGlzLmZsYWdzJj0tNjUsT2UuaGFzKHRoaXMpJiYoT2UuZGVsZXRlKHRoaXMpLHRoaXMudHJpZ2dlcigpKSl9bm90aWZ5KCl7dGhpcy5mbGFncyYyJiYhKHRoaXMuZmxhZ3MmMzIpfHx0aGlzLmZsYWdzJjh8fE5lKHRoaXMpfXJ1bigpe2lmKCEodGhpcy5mbGFncyYxKSlyZXR1cm4gdGhpcy5mbigpO3RoaXMuZmxhZ3N8PTIsVWUodGhpcyksSWUodGhpcyk7bGV0IGU9aix0PU07aj10aGlzLE09ITA7dHJ5e3JldHVybiB0aGlzLmZuKCl9ZmluYWxseXtMZSh0aGlzKSxqPWUsTT10LHRoaXMuZmxhZ3MmPS0zfX1zdG9wKCl7aWYodGhpcy5mbGFncyYxKXtmb3IobGV0IGU9dGhpcy5kZXBzO2U7ZT1lLm5leHREZXApQmUoZSk7dGhpcy5kZXBzPXRoaXMuZGVwc1RhaWw9dm9pZCAwLFVlKHRoaXMpLHRoaXMub25TdG9wJiZ0aGlzLm9uU3RvcCgpLHRoaXMuZmxhZ3MmPS0yfX10cmlnZ2VyKCl7dGhpcy5mbGFncyY2ND9PZS5hZGQodGhpcyk6dGhpcy5zY2hlZHVsZXI/dGhpcy5zY2hlZHVsZXIoKTp0aGlzLnJ1bklmRGlydHkoKX1ydW5JZkRpcnR5KCl7UmUodGhpcykmJnRoaXMucnVuKCl9Z2V0IGRpcnR5KCl7cmV0dXJuIFJlKHRoaXMpfX0sQWU9MCxqZSxNZTtmdW5jdGlvbiBOZShlLHQ9ITEpe2lmKGUuZmxhZ3N8PTgsdCl7ZS5uZXh0PU1lLE1lPWU7cmV0dXJufWUubmV4dD1qZSxqZT1lfWZ1bmN0aW9uIFBlKCl7QWUrK31mdW5jdGlvbiBGZSgpe2lmKC0tQWU+MClyZXR1cm47aWYoTWUpe2xldCBlPU1lO2ZvcihNZT12b2lkIDA7ZTspe2xldCB0PWUubmV4dDtlLm5leHQ9dm9pZCAwLGUuZmxhZ3MmPS05LGU9dH19bGV0IGU7Zm9yKDtqZTspe2xldCB0PWplO2ZvcihqZT12b2lkIDA7dDspe2xldCBuPXQubmV4dDtpZih0Lm5leHQ9dm9pZCAwLHQuZmxhZ3MmPS05LHQuZmxhZ3MmMSl0cnl7dC50cmlnZ2VyKCl9Y2F0Y2godCl7ZXx8PXR9dD1ufX1pZihlKXRocm93IGV9ZnVuY3Rpb24gSWUoZSl7Zm9yKGxldCB0PWUuZGVwczt0O3Q9dC5uZXh0RGVwKXQudmVyc2lvbj0tMSx0LnByZXZBY3RpdmVMaW5rPXQuZGVwLmFjdGl2ZUxpbmssdC5kZXAuYWN0aXZlTGluaz10fWZ1bmN0aW9uIExlKGUpe2xldCB0LG49ZS5kZXBzVGFpbCxyPW47Zm9yKDtyOyl7bGV0IGU9ci5wcmV2RGVwO3IudmVyc2lvbj09PS0xPyhyPT09biYmKG49ZSksQmUociksVmUocikpOnQ9cixyLmRlcC5hY3RpdmVMaW5rPXIucHJldkFjdGl2ZUxpbmssci5wcmV2QWN0aXZlTGluaz12b2lkIDAscj1lfWUuZGVwcz10LGUuZGVwc1RhaWw9bn1mdW5jdGlvbiBSZShlKXtmb3IobGV0IHQ9ZS5kZXBzO3Q7dD10Lm5leHREZXApaWYodC5kZXAudmVyc2lvbiE9PXQudmVyc2lvbnx8dC5kZXAuY29tcHV0ZWQmJih6ZSh0LmRlcC5jb21wdXRlZCl8fHQuZGVwLnZlcnNpb24hPT10LnZlcnNpb24pKXJldHVybiEwO3JldHVybiEhZS5fZGlydHl9ZnVuY3Rpb24gemUoZSl7aWYoZS5mbGFncyY0JiYhKGUuZmxhZ3MmMTYpfHwoZS5mbGFncyY9LTE3LGUuZ2xvYmFsVmVyc2lvbj09PVdlKXx8KGUuZ2xvYmFsVmVyc2lvbj1XZSwhZS5pc1NTUiYmZS5mbGFncyYxMjgmJighZS5kZXBzJiYhZS5fZGlydHl8fCFSZShlKSkpKXJldHVybjtlLmZsYWdzfD0yO2xldCB0PWUuZGVwLG49aixyPU07aj1lLE09ITA7dHJ5e0llKGUpO2xldCBuPWUuZm4oZS5fdmFsdWUpOyh0LnZlcnNpb249PT0wfHxPKG4sZS5fdmFsdWUpKSYmKGUuZmxhZ3N8PTEyOCxlLl92YWx1ZT1uLHQudmVyc2lvbisrKX1jYXRjaChlKXt0aHJvdyB0LnZlcnNpb24rKyxlfWZpbmFsbHl7aj1uLE09cixMZShlKSxlLmZsYWdzJj0tM319ZnVuY3Rpb24gQmUoZSx0PSExKXtsZXR7ZGVwOm4scHJldlN1YjpyLG5leHRTdWI6aX09ZTtpZihyJiYoci5uZXh0U3ViPWksZS5wcmV2U3ViPXZvaWQgMCksaSYmKGkucHJldlN1Yj1yLGUubmV4dFN1Yj12b2lkIDApLG4uc3Vicz09PWUmJihuLnN1YnM9ciwhciYmbi5jb21wdXRlZCkpe24uY29tcHV0ZWQuZmxhZ3MmPS01O2ZvcihsZXQgZT1uLmNvbXB1dGVkLmRlcHM7ZTtlPWUubmV4dERlcClCZShlLCEwKX0hdCYmIS0tbi5zYyYmbi5tYXAmJm4ubWFwLmRlbGV0ZShuLmtleSl9ZnVuY3Rpb24gVmUoZSl7bGV0e3ByZXZEZXA6dCxuZXh0RGVwOm59PWU7dCYmKHQubmV4dERlcD1uLGUucHJldkRlcD12b2lkIDApLG4mJihuLnByZXZEZXA9dCxlLm5leHREZXA9dm9pZCAwKX12YXIgTT0hMCxIZT1bXTtmdW5jdGlvbiBOKCl7SGUucHVzaChNKSxNPSExfWZ1bmN0aW9uIFAoKXtsZXQgZT1IZS5wb3AoKTtNPWU9PT12b2lkIDA/ITA6ZX1mdW5jdGlvbiBVZShlKXtsZXR7Y2xlYW51cDp0fT1lO2lmKGUuY2xlYW51cD12b2lkIDAsdCl7bGV0IGU9ajtqPXZvaWQgMDt0cnl7dCgpfWZpbmFsbHl7aj1lfX19dmFyIFdlPTAsR2U9Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnN1Yj1lLHRoaXMuZGVwPXQsdGhpcy52ZXJzaW9uPXQudmVyc2lvbix0aGlzLm5leHREZXA9dGhpcy5wcmV2RGVwPXRoaXMubmV4dFN1Yj10aGlzLnByZXZTdWI9dGhpcy5wcmV2QWN0aXZlTGluaz12b2lkIDB9fSxLZT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXB1dGVkPWUsdGhpcy52ZXJzaW9uPTAsdGhpcy5hY3RpdmVMaW5rPXZvaWQgMCx0aGlzLnN1YnM9dm9pZCAwLHRoaXMubWFwPXZvaWQgMCx0aGlzLmtleT12b2lkIDAsdGhpcy5zYz0wLHRoaXMuX192X3NraXA9ITB9dHJhY2soZSl7aWYoIWp8fCFNfHxqPT09dGhpcy5jb21wdXRlZClyZXR1cm47bGV0IHQ9dGhpcy5hY3RpdmVMaW5rO2lmKHQ9PT12b2lkIDB8fHQuc3ViIT09ail0PXRoaXMuYWN0aXZlTGluaz1uZXcgR2Uoaix0aGlzKSxqLmRlcHM/KHQucHJldkRlcD1qLmRlcHNUYWlsLGouZGVwc1RhaWwubmV4dERlcD10LGouZGVwc1RhaWw9dCk6ai5kZXBzPWouZGVwc1RhaWw9dCxxZSh0KTtlbHNlIGlmKHQudmVyc2lvbj09PS0xJiYodC52ZXJzaW9uPXRoaXMudmVyc2lvbix0Lm5leHREZXApKXtsZXQgZT10Lm5leHREZXA7ZS5wcmV2RGVwPXQucHJldkRlcCx0LnByZXZEZXAmJih0LnByZXZEZXAubmV4dERlcD1lKSx0LnByZXZEZXA9ai5kZXBzVGFpbCx0Lm5leHREZXA9dm9pZCAwLGouZGVwc1RhaWwubmV4dERlcD10LGouZGVwc1RhaWw9dCxqLmRlcHM9PT10JiYoai5kZXBzPWUpfXJldHVybiB0fXRyaWdnZXIoZSl7dGhpcy52ZXJzaW9uKyssV2UrKyx0aGlzLm5vdGlmeShlKX1ub3RpZnkoZSl7UGUoKTt0cnl7Zm9yKGxldCBlPXRoaXMuc3VicztlO2U9ZS5wcmV2U3ViKWUuc3ViLm5vdGlmeSgpJiZlLnN1Yi5kZXAubm90aWZ5KCl9ZmluYWxseXtGZSgpfX19O2Z1bmN0aW9uIHFlKGUpe2lmKGUuZGVwLnNjKyssZS5zdWIuZmxhZ3MmNCl7bGV0IHQ9ZS5kZXAuY29tcHV0ZWQ7aWYodCYmIWUuZGVwLnN1YnMpe3QuZmxhZ3N8PTIwO2ZvcihsZXQgZT10LmRlcHM7ZTtlPWUubmV4dERlcClxZShlKX1sZXQgbj1lLmRlcC5zdWJzO24hPT1lJiYoZS5wcmV2U3ViPW4sbiYmKG4ubmV4dFN1Yj1lKSksZS5kZXAuc3Vicz1lfX12YXIgSmU9bmV3IFdlYWtNYXAsWWU9U3ltYm9sKGBgKSxYZT1TeW1ib2woYGApLFplPVN5bWJvbChgYCk7ZnVuY3Rpb24gRihlLHQsbil7aWYoTSYmail7bGV0IHQ9SmUuZ2V0KGUpO3R8fEplLnNldChlLHQ9bmV3IE1hcCk7bGV0IHI9dC5nZXQobik7cnx8KHQuc2V0KG4scj1uZXcgS2UpLHIubWFwPXQsci5rZXk9biksci50cmFjaygpfX1mdW5jdGlvbiBRZShlLHQsbixyLGksYSl7bGV0IG89SmUuZ2V0KGUpO2lmKCFvKXtXZSsrO3JldHVybn1sZXQgcz1lPT57ZSYmZS50cmlnZ2VyKCl9O2lmKFBlKCksdD09PWBjbGVhcmApby5mb3JFYWNoKHMpO2Vsc2V7bGV0IGk9ZChlKSxhPWkmJncobik7aWYoaSYmbj09PWBsZW5ndGhgKXtsZXQgZT1OdW1iZXIocik7by5mb3JFYWNoKCh0LG4pPT57KG49PT1gbGVuZ3RoYHx8bj09PVplfHwhXyhuKSYmbj49ZSkmJnModCl9KX1lbHNlIHN3aXRjaCgobiE9PXZvaWQgMHx8by5oYXModm9pZCAwKSkmJnMoby5nZXQobikpLGEmJnMoby5nZXQoWmUpKSx0KXtjYXNlYGFkZGA6aT9hJiZzKG8uZ2V0KGBsZW5ndGhgKSk6KHMoby5nZXQoWWUpKSxmKGUpJiZzKG8uZ2V0KFhlKSkpO2JyZWFrO2Nhc2VgZGVsZXRlYDppfHwocyhvLmdldChZZSkpLGYoZSkmJnMoby5nZXQoWGUpKSk7YnJlYWs7Y2FzZWBzZXRgOmYoZSkmJnMoby5nZXQoWWUpKTticmVha319RmUoKX1mdW5jdGlvbiAkZShlKXtsZXQgdD1SKGUpO3JldHVybiB0PT09ZT90OihGKHQsYGl0ZXJhdGVgLFplKSxMKGUpP3Q6dC5tYXAoeikpfWZ1bmN0aW9uIGV0KGUpe3JldHVybiBGKGU9UihlKSxgaXRlcmF0ZWAsWmUpLGV9ZnVuY3Rpb24gSShlLHQpe3JldHVybiBJdChlKT96dChGdChlKT96KHQpOnQpOnoodCl9dmFyIHR0PXtfX3Byb3RvX186bnVsbCxbU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBudCh0aGlzLFN5bWJvbC5pdGVyYXRvcixlPT5JKHRoaXMsZSkpfSxjb25jYXQoLi4uZSl7cmV0dXJuICRlKHRoaXMpLmNvbmNhdCguLi5lLm1hcChlPT5kKGUpPyRlKGUpOmUpKX0sZW50cmllcygpe3JldHVybiBudCh0aGlzLGBlbnRyaWVzYCxlPT4oZVsxXT1JKHRoaXMsZVsxXSksZSkpfSxldmVyeShlLHQpe3JldHVybiBpdCh0aGlzLGBldmVyeWAsZSx0LHZvaWQgMCxhcmd1bWVudHMpfSxmaWx0ZXIoZSx0KXtyZXR1cm4gaXQodGhpcyxgZmlsdGVyYCxlLHQsZT0+ZS5tYXAoZT0+SSh0aGlzLGUpKSxhcmd1bWVudHMpfSxmaW5kKGUsdCl7cmV0dXJuIGl0KHRoaXMsYGZpbmRgLGUsdCxlPT5JKHRoaXMsZSksYXJndW1lbnRzKX0sZmluZEluZGV4KGUsdCl7cmV0dXJuIGl0KHRoaXMsYGZpbmRJbmRleGAsZSx0LHZvaWQgMCxhcmd1bWVudHMpfSxmaW5kTGFzdChlLHQpe3JldHVybiBpdCh0aGlzLGBmaW5kTGFzdGAsZSx0LGU9PkkodGhpcyxlKSxhcmd1bWVudHMpfSxmaW5kTGFzdEluZGV4KGUsdCl7cmV0dXJuIGl0KHRoaXMsYGZpbmRMYXN0SW5kZXhgLGUsdCx2b2lkIDAsYXJndW1lbnRzKX0sZm9yRWFjaChlLHQpe3JldHVybiBpdCh0aGlzLGBmb3JFYWNoYCxlLHQsdm9pZCAwLGFyZ3VtZW50cyl9LGluY2x1ZGVzKC4uLmUpe3JldHVybiBvdCh0aGlzLGBpbmNsdWRlc2AsZSl9LGluZGV4T2YoLi4uZSl7cmV0dXJuIG90KHRoaXMsYGluZGV4T2ZgLGUpfSxqb2luKGUpe3JldHVybiAkZSh0aGlzKS5qb2luKGUpfSxsYXN0SW5kZXhPZiguLi5lKXtyZXR1cm4gb3QodGhpcyxgbGFzdEluZGV4T2ZgLGUpfSxtYXAoZSx0KXtyZXR1cm4gaXQodGhpcyxgbWFwYCxlLHQsdm9pZCAwLGFyZ3VtZW50cyl9LHBvcCgpe3JldHVybiBzdCh0aGlzLGBwb3BgKX0scHVzaCguLi5lKXtyZXR1cm4gc3QodGhpcyxgcHVzaGAsZSl9LHJlZHVjZShlLC4uLnQpe3JldHVybiBhdCh0aGlzLGByZWR1Y2VgLGUsdCl9LHJlZHVjZVJpZ2h0KGUsLi4udCl7cmV0dXJuIGF0KHRoaXMsYHJlZHVjZVJpZ2h0YCxlLHQpfSxzaGlmdCgpe3JldHVybiBzdCh0aGlzLGBzaGlmdGApfSxzb21lKGUsdCl7cmV0dXJuIGl0KHRoaXMsYHNvbWVgLGUsdCx2b2lkIDAsYXJndW1lbnRzKX0sc3BsaWNlKC4uLmUpe3JldHVybiBzdCh0aGlzLGBzcGxpY2VgLGUpfSx0b1JldmVyc2VkKCl7cmV0dXJuICRlKHRoaXMpLnRvUmV2ZXJzZWQoKX0sdG9Tb3J0ZWQoZSl7cmV0dXJuICRlKHRoaXMpLnRvU29ydGVkKGUpfSx0b1NwbGljZWQoLi4uZSl7cmV0dXJuICRlKHRoaXMpLnRvU3BsaWNlZCguLi5lKX0sdW5zaGlmdCguLi5lKXtyZXR1cm4gc3QodGhpcyxgdW5zaGlmdGAsZSl9LHZhbHVlcygpe3JldHVybiBudCh0aGlzLGB2YWx1ZXNgLGU9PkkodGhpcyxlKSl9fTtmdW5jdGlvbiBudChlLHQsbil7bGV0IHI9ZXQoZSksaT1yW3RdKCk7cmV0dXJuIHIhPT1lJiYhTChlKSYmKGkuX25leHQ9aS5uZXh0LGkubmV4dD0oKT0+e2xldCBlPWkuX25leHQoKTtyZXR1cm4gZS5kb25lfHwoZS52YWx1ZT1uKGUudmFsdWUpKSxlfSksaX12YXIgcnQ9QXJyYXkucHJvdG90eXBlO2Z1bmN0aW9uIGl0KGUsdCxuLHIsaSxhKXtsZXQgbz1ldChlKSxzPW8hPT1lJiYhTChlKSxjPW9bdF07aWYoYyE9PXJ0W3RdKXtsZXQgdD1jLmFwcGx5KGUsYSk7cmV0dXJuIHM/eih0KTp0fWxldCBsPW47byE9PWUmJihzP2w9ZnVuY3Rpb24odCxyKXtyZXR1cm4gbi5jYWxsKHRoaXMsSShlLHQpLHIsZSl9Om4ubGVuZ3RoPjImJihsPWZ1bmN0aW9uKHQscil7cmV0dXJuIG4uY2FsbCh0aGlzLHQscixlKX0pKTtsZXQgdT1jLmNhbGwobyxsLHIpO3JldHVybiBzJiZpP2kodSk6dX1mdW5jdGlvbiBhdChlLHQsbixyKXtsZXQgaT1ldChlKSxhPWkhPT1lJiYhTChlKSxvPW4scz0hMTtpIT09ZSYmKGE/KHM9ci5sZW5ndGg9PT0wLG89ZnVuY3Rpb24odCxyLGkpe3JldHVybiBzJiYocz0hMSx0PUkoZSx0KSksbi5jYWxsKHRoaXMsdCxJKGUsciksaSxlKX0pOm4ubGVuZ3RoPjMmJihvPWZ1bmN0aW9uKHQscixpKXtyZXR1cm4gbi5jYWxsKHRoaXMsdCxyLGksZSl9KSk7bGV0IGM9aVt0XShvLC4uLnIpO3JldHVybiBzP0koZSxjKTpjfWZ1bmN0aW9uIG90KGUsdCxuKXtsZXQgcj1SKGUpO0YocixgaXRlcmF0ZWAsWmUpO2xldCBpPXJbdF0oLi4ubik7cmV0dXJuKGk9PT0tMXx8aT09PSExKSYmTHQoblswXSk/KG5bMF09UihuWzBdKSxyW3RdKC4uLm4pKTppfWZ1bmN0aW9uIHN0KGUsdCxuPVtdKXtOKCksUGUoKTtsZXQgcj1SKGUpW3RdLmFwcGx5KGUsbik7cmV0dXJuIEZlKCksUCgpLHJ9dmFyIGN0PWUoYF9fcHJvdG9fXyxfX3ZfaXNSZWYsX19pc1Z1ZWApLGx0PW5ldyBTZXQoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoU3ltYm9sKS5maWx0ZXIoZT0+ZSE9PWBhcmd1bWVudHNgJiZlIT09YGNhbGxlcmApLm1hcChlPT5TeW1ib2xbZV0pLmZpbHRlcihfKSk7ZnVuY3Rpb24gdXQoZSl7XyhlKXx8KGU9U3RyaW5nKGUpKTtsZXQgdD1SKHRoaXMpO3JldHVybiBGKHQsYGhhc2AsZSksdC5oYXNPd25Qcm9wZXJ0eShlKX12YXIgZHQ9Y2xhc3N7Y29uc3RydWN0b3IoZT0hMSx0PSExKXt0aGlzLl9pc1JlYWRvbmx5PWUsdGhpcy5faXNTaGFsbG93PXR9Z2V0KGUsdCxuKXtpZih0PT09YF9fdl9za2lwYClyZXR1cm4gZS5fX3Zfc2tpcDtsZXQgcj10aGlzLl9pc1JlYWRvbmx5LGk9dGhpcy5faXNTaGFsbG93O2lmKHQ9PT1gX192X2lzUmVhY3RpdmVgKXJldHVybiFyO2lmKHQ9PT1gX192X2lzUmVhZG9ubHlgKXJldHVybiByO2lmKHQ9PT1gX192X2lzU2hhbGxvd2ApcmV0dXJuIGk7aWYodD09PWBfX3ZfcmF3YClyZXR1cm4gbj09PShyP2k/a3Q6T3Q6aT9EdDpFdCkuZ2V0KGUpfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1PYmplY3QuZ2V0UHJvdG90eXBlT2Yobik/ZTp2b2lkIDA7bGV0IGE9ZChlKTtpZighcil7bGV0IGU7aWYoYSYmKGU9dHRbdF0pKXJldHVybiBlO2lmKHQ9PT1gaGFzT3duUHJvcGVydHlgKXJldHVybiB1dH1sZXQgbz1SZWZsZWN0LmdldChlLHQsQihlKT9lOm4pO2lmKChfKHQpP2x0Lmhhcyh0KTpjdCh0KSl8fChyfHxGKGUsYGdldGAsdCksaSkpcmV0dXJuIG87aWYoQihvKSl7bGV0IGU9YSYmdyh0KT9vOm8udmFsdWU7cmV0dXJuIHImJnYoZSk/TnQoZSk6ZX1yZXR1cm4gdihvKT9yP050KG8pOmp0KG8pOm99fSxmdD1jbGFzcyBleHRlbmRzIGR0e2NvbnN0cnVjdG9yKGU9ITEpe3N1cGVyKCExLGUpfXNldChlLHQsbixyKXtsZXQgaT1lW3RdLGE9ZChlKSYmdyh0KTtpZighdGhpcy5faXNTaGFsbG93KXtsZXQgZT1JdChpKTtpZighTChuKSYmIUl0KG4pJiYoaT1SKGkpLG49UihuKSksIWEmJkIoaSkmJiFCKG4pKXJldHVybiBlfHwoaS52YWx1ZT1uKSwhMH1sZXQgbz1hP051bWJlcih0KTxlLmxlbmd0aDp1KGUsdCkscz1SZWZsZWN0LnNldChlLHQsbixCKGUpP2U6cik7cmV0dXJuIGU9PT1SKHIpJiZzJiYobz9PKG4saSkmJlFlKGUsYHNldGAsdCxuLGkpOlFlKGUsYGFkZGAsdCxuKSksc31kZWxldGVQcm9wZXJ0eShlLHQpe2xldCBuPXUoZSx0KSxyPWVbdF0saT1SZWZsZWN0LmRlbGV0ZVByb3BlcnR5KGUsdCk7cmV0dXJuIGkmJm4mJlFlKGUsYGRlbGV0ZWAsdCx2b2lkIDAsciksaX1oYXMoZSx0KXtsZXQgbj1SZWZsZWN0LmhhcyhlLHQpO3JldHVybighXyh0KXx8IWx0Lmhhcyh0KSkmJkYoZSxgaGFzYCx0KSxufW93bktleXMoZSl7cmV0dXJuIEYoZSxgaXRlcmF0ZWAsZChlKT9gbGVuZ3RoYDpZZSksUmVmbGVjdC5vd25LZXlzKGUpfX0scHQ9Y2xhc3MgZXh0ZW5kcyBkdHtjb25zdHJ1Y3RvcihlPSExKXtzdXBlcighMCxlKX1zZXQoZSx0KXtyZXR1cm4hMH1kZWxldGVQcm9wZXJ0eShlLHQpe3JldHVybiEwfX0sbXQ9bmV3IGZ0LGh0PW5ldyBwdCxndD1uZXcgZnQoITApLF90PWU9PmUsdnQ9ZT0+UmVmbGVjdC5nZXRQcm90b3R5cGVPZihlKTtmdW5jdGlvbiB5dChlLHQsbil7cmV0dXJuIGZ1bmN0aW9uKC4uLnIpe2xldCBpPXRoaXMuX192X3JhdyxhPVIoaSksbz1mKGEpLGM9ZT09PWBlbnRyaWVzYHx8ZT09PVN5bWJvbC5pdGVyYXRvciYmbyxsPWU9PT1ga2V5c2AmJm8sdT1pW2VdKC4uLnIpLGQ9bj9fdDp0P3p0Ono7cmV0dXJuIXQmJkYoYSxgaXRlcmF0ZWAsbD9YZTpZZSkscyhPYmplY3QuY3JlYXRlKHUpLHtuZXh0KCl7bGV0e3ZhbHVlOmUsZG9uZTp0fT11Lm5leHQoKTtyZXR1cm4gdD97dmFsdWU6ZSxkb25lOnR9Ont2YWx1ZTpjP1tkKGVbMF0pLGQoZVsxXSldOmQoZSksZG9uZTp0fX19KX19ZnVuY3Rpb24gYnQoZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe3JldHVybiBlPT09YGRlbGV0ZWA/ITE6ZT09PWBjbGVhcmA/dm9pZCAwOnRoaXN9fWZ1bmN0aW9uIHh0KGUsdCl7bGV0IG49e2dldChuKXtsZXQgcj10aGlzLl9fdl9yYXcsaT1SKHIpLGE9UihuKTtlfHwoTyhuLGEpJiZGKGksYGdldGAsbiksRihpLGBnZXRgLGEpKTtsZXR7aGFzOm99PXZ0KGkpLHM9dD9fdDplP3p0Ono7aWYoby5jYWxsKGksbikpcmV0dXJuIHMoci5nZXQobikpO2lmKG8uY2FsbChpLGEpKXJldHVybiBzKHIuZ2V0KGEpKTtyIT09aSYmci5nZXQobil9LGdldCBzaXplKCl7bGV0IHQ9dGhpcy5fX3ZfcmF3O3JldHVybiFlJiZGKFIodCksYGl0ZXJhdGVgLFllKSx0LnNpemV9LGhhcyh0KXtsZXQgbj10aGlzLl9fdl9yYXcscj1SKG4pLGk9Uih0KTtyZXR1cm4gZXx8KE8odCxpKSYmRihyLGBoYXNgLHQpLEYocixgaGFzYCxpKSksdD09PWk/bi5oYXModCk6bi5oYXModCl8fG4uaGFzKGkpfSxmb3JFYWNoKG4scil7bGV0IGk9dGhpcyxhPWkuX192X3JhdyxvPVIoYSkscz10P190OmU/enQ6ejtyZXR1cm4hZSYmRihvLGBpdGVyYXRlYCxZZSksYS5mb3JFYWNoKChlLHQpPT5uLmNhbGwocixzKGUpLHModCksaSkpfX07cmV0dXJuIHMobixlP3thZGQ6YnQoYGFkZGApLHNldDpidChgc2V0YCksZGVsZXRlOmJ0KGBkZWxldGVgKSxjbGVhcjpidChgY2xlYXJgKX06e2FkZChlKXtsZXQgbj1SKHRoaXMpLHI9dnQobiksaT1SKGUpLGE9IXQmJiFMKGUpJiYhSXQoZSk/aTplO3JldHVybiByLmhhcy5jYWxsKG4sYSl8fE8oZSxhKSYmci5oYXMuY2FsbChuLGUpfHxPKGksYSkmJnIuaGFzLmNhbGwobixpKXx8KG4uYWRkKGEpLFFlKG4sYGFkZGAsYSxhKSksdGhpc30sc2V0KGUsbil7IXQmJiFMKG4pJiYhSXQobikmJihuPVIobikpO2xldCByPVIodGhpcykse2hhczppLGdldDphfT12dChyKSxvPWkuY2FsbChyLGUpO298fD0oZT1SKGUpLGkuY2FsbChyLGUpKTtsZXQgcz1hLmNhbGwocixlKTtyZXR1cm4gci5zZXQoZSxuKSxvP08obixzKSYmUWUocixgc2V0YCxlLG4scyk6UWUocixgYWRkYCxlLG4pLHRoaXN9LGRlbGV0ZShlKXtsZXQgdD1SKHRoaXMpLHtoYXM6bixnZXQ6cn09dnQodCksaT1uLmNhbGwodCxlKTtpfHw9KGU9UihlKSxuLmNhbGwodCxlKSk7bGV0IGE9cj9yLmNhbGwodCxlKTp2b2lkIDAsbz10LmRlbGV0ZShlKTtyZXR1cm4gaSYmUWUodCxgZGVsZXRlYCxlLHZvaWQgMCxhKSxvfSxjbGVhcigpe2xldCBlPVIodGhpcyksdD1lLnNpemUhPT0wLG49ZS5jbGVhcigpO3JldHVybiB0JiZRZShlLGBjbGVhcmAsdm9pZCAwLHZvaWQgMCx2b2lkIDApLG59fSksW2BrZXlzYCxgdmFsdWVzYCxgZW50cmllc2AsU3ltYm9sLml0ZXJhdG9yXS5mb3JFYWNoKHI9PntuW3JdPXl0KHIsZSx0KX0pLG59ZnVuY3Rpb24gU3QoZSx0KXtsZXQgbj14dChlLHQpO3JldHVybih0LHIsaSk9PnI9PT1gX192X2lzUmVhY3RpdmVgPyFlOnI9PT1gX192X2lzUmVhZG9ubHlgP2U6cj09PWBfX3ZfcmF3YD90OlJlZmxlY3QuZ2V0KHUobixyKSYmciBpbiB0P246dCxyLGkpfXZhciBDdD17Z2V0OlN0KCExLCExKX0sd3Q9e2dldDpTdCghMSwhMCl9LFR0PXtnZXQ6U3QoITAsITEpfSxFdD1uZXcgV2Vha01hcCxEdD1uZXcgV2Vha01hcCxPdD1uZXcgV2Vha01hcCxrdD1uZXcgV2Vha01hcDtmdW5jdGlvbiBBdChlKXtzd2l0Y2goZSl7Y2FzZWBPYmplY3RgOmNhc2VgQXJyYXlgOnJldHVybiAxO2Nhc2VgTWFwYDpjYXNlYFNldGA6Y2FzZWBXZWFrTWFwYDpjYXNlYFdlYWtTZXRgOnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9fWZ1bmN0aW9uIGp0KGUpe3JldHVybiBJdChlKT9lOlB0KGUsITEsbXQsQ3QsRXQpfWZ1bmN0aW9uIE10KGUpe3JldHVybiBQdChlLCExLGd0LHd0LER0KX1mdW5jdGlvbiBOdChlKXtyZXR1cm4gUHQoZSwhMCxodCxUdCxPdCl9ZnVuY3Rpb24gUHQoZSx0LG4scixpKXtpZighdihlKXx8ZS5fX3ZfcmF3JiYhKHQmJmUuX192X2lzUmVhY3RpdmUpfHxlLl9fdl9za2lwfHwhT2JqZWN0LmlzRXh0ZW5zaWJsZShlKSlyZXR1cm4gZTtsZXQgYT1pLmdldChlKTtpZihhKXJldHVybiBhO2xldCBvPUF0KFMoZSkpO2lmKG89PT0wKXJldHVybiBlO2xldCBzPW5ldyBQcm94eShlLG89PT0yP3I6bik7cmV0dXJuIGkuc2V0KGUscyksc31mdW5jdGlvbiBGdChlKXtyZXR1cm4gSXQoZSk/RnQoZS5fX3ZfcmF3KTohIShlJiZlLl9fdl9pc1JlYWN0aXZlKX1mdW5jdGlvbiBJdChlKXtyZXR1cm4hIShlJiZlLl9fdl9pc1JlYWRvbmx5KX1mdW5jdGlvbiBMKGUpe3JldHVybiEhKGUmJmUuX192X2lzU2hhbGxvdyl9ZnVuY3Rpb24gTHQoZSl7cmV0dXJuIGU/ISFlLl9fdl9yYXc6ITF9ZnVuY3Rpb24gUihlKXtsZXQgdD1lJiZlLl9fdl9yYXc7cmV0dXJuIHQ/Uih0KTplfWZ1bmN0aW9uIFJ0KGUpe3JldHVybiF1KGUsYF9fdl9za2lwYCkmJk9iamVjdC5pc0V4dGVuc2libGUoZSkmJmsoZSxgX192X3NraXBgLCEwKSxlfXZhciB6PWU9PnYoZSk/anQoZSk6ZSx6dD1lPT52KGUpP050KGUpOmU7ZnVuY3Rpb24gQihlKXtyZXR1cm4gZT9lLl9fdl9pc1JlZj09PSEwOiExfWZ1bmN0aW9uIEJ0KGUpe3JldHVybiBIdChlLCExKX1mdW5jdGlvbiBWdChlKXtyZXR1cm4gSHQoZSwhMCl9ZnVuY3Rpb24gSHQoZSx0KXtyZXR1cm4gQihlKT9lOm5ldyBVdChlLHQpfXZhciBVdD1jbGFzc3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMuZGVwPW5ldyBLZSx0aGlzLl9fdl9pc1JlZj0hMCx0aGlzLl9fdl9pc1NoYWxsb3c9ITEsdGhpcy5fcmF3VmFsdWU9dD9lOlIoZSksdGhpcy5fdmFsdWU9dD9lOnooZSksdGhpcy5fX3ZfaXNTaGFsbG93PXR9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuZGVwLnRyYWNrKCksdGhpcy5fdmFsdWV9c2V0IHZhbHVlKGUpe2xldCB0PXRoaXMuX3Jhd1ZhbHVlLG49dGhpcy5fX3ZfaXNTaGFsbG93fHxMKGUpfHxJdChlKTtlPW4/ZTpSKGUpLE8oZSx0KSYmKHRoaXMuX3Jhd1ZhbHVlPWUsdGhpcy5fdmFsdWU9bj9lOnooZSksdGhpcy5kZXAudHJpZ2dlcigpKX19O2Z1bmN0aW9uIFd0KGUpe3JldHVybiBCKGUpP2UudmFsdWU6ZX12YXIgR3Q9e2dldDooZSx0LG4pPT50PT09YF9fdl9yYXdgP2U6V3QoUmVmbGVjdC5nZXQoZSx0LG4pKSxzZXQ6KGUsdCxuLHIpPT57bGV0IGk9ZVt0XTtyZXR1cm4gQihpKSYmIUIobik/KGkudmFsdWU9biwhMCk6UmVmbGVjdC5zZXQoZSx0LG4scil9fTtmdW5jdGlvbiBLdChlKXtyZXR1cm4gRnQoZSk/ZTpuZXcgUHJveHkoZSxHdCl9dmFyIHF0PWNsYXNze2NvbnN0cnVjdG9yKGUsdCxuKXt0aGlzLmZuPWUsdGhpcy5zZXR0ZXI9dCx0aGlzLl92YWx1ZT12b2lkIDAsdGhpcy5kZXA9bmV3IEtlKHRoaXMpLHRoaXMuX192X2lzUmVmPSEwLHRoaXMuZGVwcz12b2lkIDAsdGhpcy5kZXBzVGFpbD12b2lkIDAsdGhpcy5mbGFncz0xNix0aGlzLmdsb2JhbFZlcnNpb249V2UtMSx0aGlzLm5leHQ9dm9pZCAwLHRoaXMuZWZmZWN0PXRoaXMsdGhpcy5fX3ZfaXNSZWFkb25seT0hdCx0aGlzLmlzU1NSPW59bm90aWZ5KCl7aWYodGhpcy5mbGFnc3w9MTYsISh0aGlzLmZsYWdzJjgpJiZqIT09dGhpcylyZXR1cm4gTmUodGhpcywhMCksITB9Z2V0IHZhbHVlKCl7bGV0IGU9dGhpcy5kZXAudHJhY2soKTtyZXR1cm4gemUodGhpcyksZSYmKGUudmVyc2lvbj10aGlzLmRlcC52ZXJzaW9uKSx0aGlzLl92YWx1ZX1zZXQgdmFsdWUoZSl7dGhpcy5zZXR0ZXImJnRoaXMuc2V0dGVyKGUpfX07ZnVuY3Rpb24gSnQoZSx0LG49ITEpe2xldCByLGk7cmV0dXJuIGgoZSk/cj1lOihyPWUuZ2V0LGk9ZS5zZXQpLG5ldyBxdChyLGksbil9dmFyIFl0PXt9LFh0PW5ldyBXZWFrTWFwLFp0PXZvaWQgMDtmdW5jdGlvbiBRdChlLHQ9ITEsbj1adCl7aWYobil7bGV0IHQ9WHQuZ2V0KG4pO3R8fFh0LnNldChuLHQ9W10pLHQucHVzaChlKX19ZnVuY3Rpb24gJHQoZSxuLGk9dCl7bGV0e2ltbWVkaWF0ZTphLGRlZXA6byxvbmNlOnMsc2NoZWR1bGVyOmwsYXVnbWVudEpvYjp1LGNhbGw6Zn09aSxwPWU9Pm8/ZTpMKGUpfHxvPT09ITF8fG89PT0wP2VuKGUsMSk6ZW4oZSksbSxnLF8sdix5PSExLGI9ITE7aWYoQihlKT8oZz0oKT0+ZS52YWx1ZSx5PUwoZSkpOkZ0KGUpPyhnPSgpPT5wKGUpLHk9ITApOmQoZSk/KGI9ITAseT1lLnNvbWUoZT0+RnQoZSl8fEwoZSkpLGc9KCk9PmUubWFwKGU9PntpZihCKGUpKXJldHVybiBlLnZhbHVlO2lmKEZ0KGUpKXJldHVybiBwKGUpO2lmKGgoZSkpcmV0dXJuIGY/ZihlLDIpOmUoKX0pKTpnPWgoZSk/bj9mPygpPT5mKGUsMik6ZTooKT0+e2lmKF8pe04oKTt0cnl7XygpfWZpbmFsbHl7UCgpfX1sZXQgdD1adDtadD1tO3RyeXtyZXR1cm4gZj9mKGUsMyxbdl0pOmUodil9ZmluYWxseXtadD10fX06cixuJiZvKXtsZXQgZT1nLHQ9bz09PSEwPzEvMDpvO2c9KCk9PmVuKGUoKSx0KX1sZXQgeD1EZSgpLFM9KCk9PnttLnN0b3AoKSx4JiZ4LmFjdGl2ZSYmYyh4LmVmZmVjdHMsbSl9O2lmKHMmJm4pe2xldCBlPW47bj0oLi4udCk9PntsZXQgbj1lKC4uLnQpO3JldHVybiBTKCksbn19bGV0IEM9Yj9BcnJheShlLmxlbmd0aCkuZmlsbChZdCk6WXQsdz1lPT57aWYoISghKG0uZmxhZ3MmMSl8fCFtLmRpcnR5JiYhZSkpaWYobil7bGV0IHQ9bS5ydW4oKTtpZihlfHxvfHx5fHwoYj90LnNvbWUoKGUsdCk9Pk8oZSxDW3RdKSk6Tyh0LEMpKSl7XyYmXygpO2xldCBlPVp0O1p0PW07dHJ5e2xldCBlPVt0LEM9PT1ZdD92b2lkIDA6YiYmQ1swXT09PVl0P1tdOkMsdl07Qz10LGY/ZihuLDMsZSk6biguLi5lKX1maW5hbGx5e1p0PWV9fX1lbHNlIG0ucnVuKCl9O3JldHVybiB1JiZ1KHcpLG09bmV3IGtlKGcpLG0uc2NoZWR1bGVyPWw/KCk9PmwodywhMSk6dyx2PWU9PlF0KGUsITEsbSksXz1tLm9uU3RvcD0oKT0+e2xldCBlPVh0LmdldChtKTtpZihlKXtpZihmKWYoZSw0KTtlbHNlIGZvcihsZXQgdCBvZiBlKXQoKTtYdC5kZWxldGUobSl9fSxuP2E/dyghMCk6Qz1tLnJ1bigpOmw/bCh3LmJpbmQobnVsbCwhMCksITApOm0ucnVuKCksUy5wYXVzZT1tLnBhdXNlLmJpbmQobSksUy5yZXN1bWU9bS5yZXN1bWUuYmluZChtKSxTLnN0b3A9UyxTfWZ1bmN0aW9uIGVuKGUsdD0xLzAsbil7aWYodDw9MHx8IXYoZSl8fGUuX192X3NraXB8fChufHw9bmV3IE1hcCwobi5nZXQoZSl8fDApPj10KSlyZXR1cm4gZTtpZihuLnNldChlLHQpLHQtLSxCKGUpKWVuKGUudmFsdWUsdCxuKTtlbHNlIGlmKGQoZSkpZm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspZW4oZVtyXSx0LG4pO2Vsc2UgaWYocChlKXx8ZihlKSllLmZvckVhY2goZT0+e2VuKGUsdCxuKX0pO2Vsc2UgaWYoQyhlKSl7Zm9yKGxldCByIGluIGUpZW4oZVtyXSx0LG4pO2ZvcihsZXQgciBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpKU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHIpJiZlbihlW3JdLHQsbil9cmV0dXJuIGV9ZnVuY3Rpb24gdG4oZSx0LG4scil7dHJ5e3JldHVybiByP2UoLi4ucik6ZSgpfWNhdGNoKGUpe25uKGUsdCxuKX19ZnVuY3Rpb24gVihlLHQsbixyKXtpZihoKGUpKXtsZXQgaT10bihlLHQsbixyKTtyZXR1cm4gaSYmeShpKSYmaS5jYXRjaChlPT57bm4oZSx0LG4pfSksaX1pZihkKGUpKXtsZXQgaT1bXTtmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErKylpLnB1c2goVihlW2FdLHQsbixyKSk7cmV0dXJuIGl9fWZ1bmN0aW9uIG5uKGUsbixyLGk9ITApe2xldCBhPW4/bi52bm9kZTpudWxsLHtlcnJvckhhbmRsZXI6byx0aHJvd1VuaGFuZGxlZEVycm9ySW5Qcm9kdWN0aW9uOnN9PW4mJm4uYXBwQ29udGV4dC5jb25maWd8fHQ7aWYobil7bGV0IHQ9bi5wYXJlbnQsaT1uLnByb3h5LGE9YGh0dHBzOi8vdnVlanMub3JnL2Vycm9yLXJlZmVyZW5jZS8jcnVudGltZS0ke3J9YDtmb3IoO3Q7KXtsZXQgbj10LmVjO2lmKG4pe2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKWlmKG5bdF0oZSxpLGEpPT09ITEpcmV0dXJufXQ9dC5wYXJlbnR9aWYobyl7TigpLHRuKG8sbnVsbCwxMCxbZSxpLGFdKSxQKCk7cmV0dXJufX1ybihlLHIsYSxpLHMpfWZ1bmN0aW9uIHJuKGUsdCxuLHI9ITAsaT0hMSl7aWYoaSl0aHJvdyBlO2NvbnNvbGUuZXJyb3IoZSl9dmFyIEg9W10sVT0tMSxhbj1bXSxvbj1udWxsLHNuPTAsY249UHJvbWlzZS5yZXNvbHZlKCksbG49bnVsbDtmdW5jdGlvbiB1bihlKXtsZXQgdD1sbnx8Y247cmV0dXJuIGU/dC50aGVuKHRoaXM/ZS5iaW5kKHRoaXMpOmUpOnR9ZnVuY3Rpb24gZG4oZSl7bGV0IHQ9VSsxLG49SC5sZW5ndGg7Zm9yKDt0PG47KXtsZXQgcj10K24+Pj4xLGk9SFtyXSxhPV9uKGkpO2E8ZXx8YT09PWUmJmkuZmxhZ3MmMj90PXIrMTpuPXJ9cmV0dXJuIHR9ZnVuY3Rpb24gZm4oZSl7aWYoIShlLmZsYWdzJjEpKXtsZXQgdD1fbihlKSxuPUhbSC5sZW5ndGgtMV07IW58fCEoZS5mbGFncyYyKSYmdD49X24obik/SC5wdXNoKGUpOkguc3BsaWNlKGRuKHQpLDAsZSksZS5mbGFnc3w9MSxwbigpfX1mdW5jdGlvbiBwbigpe2xufHw9Y24udGhlbih2bil9ZnVuY3Rpb24gbW4oZSl7ZChlKT9hbi5wdXNoKC4uLmUpOm9uJiZlLmlkPT09LTE/b24uc3BsaWNlKHNuKzEsMCxlKTplLmZsYWdzJjF8fChhbi5wdXNoKGUpLGUuZmxhZ3N8PTEpLHBuKCl9ZnVuY3Rpb24gaG4oZSx0LG49VSsxKXtmb3IoO248SC5sZW5ndGg7bisrKXtsZXQgdD1IW25dO2lmKHQmJnQuZmxhZ3MmMil7aWYoZSYmdC5pZCE9PWUudWlkKWNvbnRpbnVlO0guc3BsaWNlKG4sMSksbi0tLHQuZmxhZ3MmNCYmKHQuZmxhZ3MmPS0yKSx0KCksdC5mbGFncyY0fHwodC5mbGFncyY9LTIpfX19ZnVuY3Rpb24gZ24oZSl7aWYoYW4ubGVuZ3RoKXtsZXQgZT1bLi4ubmV3IFNldChhbildLnNvcnQoKGUsdCk9Pl9uKGUpLV9uKHQpKTtpZihhbi5sZW5ndGg9MCxvbil7b24ucHVzaCguLi5lKTtyZXR1cm59Zm9yKG9uPWUsc249MDtzbjxvbi5sZW5ndGg7c24rKyl7bGV0IGU9b25bc25dO2UuZmxhZ3MmNCYmKGUuZmxhZ3MmPS0yKSxlLmZsYWdzJjh8fGUoKSxlLmZsYWdzJj0tMn1vbj1udWxsLHNuPTB9fXZhciBfbj1lPT5lLmlkPT1udWxsP2UuZmxhZ3MmMj8tMToxLzA6ZS5pZDtmdW5jdGlvbiB2bihlKXt0cnl7Zm9yKFU9MDtVPEgubGVuZ3RoO1UrKyl7bGV0IGU9SFtVXTtlJiYhKGUuZmxhZ3MmOCkmJihlLmZsYWdzJjQmJihlLmZsYWdzJj0tMiksdG4oZSxlLmksZS5pPzE1OjE0KSxlLmZsYWdzJjR8fChlLmZsYWdzJj0tMikpfX1maW5hbGx5e2Zvcig7VTxILmxlbmd0aDtVKyspe2xldCBlPUhbVV07ZSYmKGUuZmxhZ3MmPS0yKX1VPS0xLEgubGVuZ3RoPTAsZ24oZSksbG49bnVsbCwoSC5sZW5ndGh8fGFuLmxlbmd0aCkmJnZuKGUpfX12YXIgVz1udWxsLHluPW51bGw7ZnVuY3Rpb24gYm4oZSl7bGV0IHQ9VztyZXR1cm4gVz1lLHluPWUmJmUudHlwZS5fX3Njb3BlSWR8fG51bGwsdH1mdW5jdGlvbiB4bihlLHQ9VyxuKXtpZighdHx8ZS5fbilyZXR1cm4gZTtsZXQgcj0oLi4ubik9PntyLl9kJiZ0YSgtMSk7bGV0IGk9Ym4odCksYTt0cnl7YT1lKC4uLm4pfWZpbmFsbHl7Ym4oaSksci5fZCYmdGEoMSl9cmV0dXJuIGF9O3JldHVybiByLl9uPSEwLHIuX2M9ITAsci5fZD0hMCxyfWZ1bmN0aW9uIFNuKGUsbil7aWYoVz09PW51bGwpcmV0dXJuIGU7bGV0IHI9emEoVyksaT1lLmRpcnN8fD1bXTtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKyl7bGV0W2EsbyxzLGM9dF09bltlXTthJiYoaChhKSYmKGE9e21vdW50ZWQ6YSx1cGRhdGVkOmF9KSxhLmRlZXAmJmVuKG8pLGkucHVzaCh7ZGlyOmEsaW5zdGFuY2U6cix2YWx1ZTpvLG9sZFZhbHVlOnZvaWQgMCxhcmc6cyxtb2RpZmllcnM6Y30pKX1yZXR1cm4gZX1mdW5jdGlvbiBDbihlLHQsbixyKXtsZXQgaT1lLmRpcnMsYT10JiZ0LmRpcnM7Zm9yKGxldCBvPTA7bzxpLmxlbmd0aDtvKyspe2xldCBzPWlbb107YSYmKHMub2xkVmFsdWU9YVtvXS52YWx1ZSk7bGV0IGM9cy5kaXJbcl07YyYmKE4oKSxWKGMsbiw4LFtlLmVsLHMsZSx0XSksUCgpKX19ZnVuY3Rpb24gd24oZSx0KXtpZigkKXtsZXQgbj0kLnByb3ZpZGVzLHI9JC5wYXJlbnQmJiQucGFyZW50LnByb3ZpZGVzO3I9PT1uJiYobj0kLnByb3ZpZGVzPU9iamVjdC5jcmVhdGUocikpLG5bZV09dH19ZnVuY3Rpb24gVG4oZSx0LG49ITEpe2xldCByPXdhKCk7aWYocnx8b2kpe2xldCBpPW9pP29pLl9jb250ZXh0LnByb3ZpZGVzOnI/ci5wYXJlbnQ9PW51bGx8fHIuY2U/ci52bm9kZS5hcHBDb250ZXh0JiZyLnZub2RlLmFwcENvbnRleHQucHJvdmlkZXM6ci5wYXJlbnQucHJvdmlkZXM6dm9pZCAwO2lmKGkmJmUgaW4gaSlyZXR1cm4gaVtlXTtpZihhcmd1bWVudHMubGVuZ3RoPjEpcmV0dXJuIG4mJmgodCk/dC5jYWxsKHImJnIucHJveHkpOnR9fXZhciBFbj1TeW1ib2wuZm9yKGB2LXNjeGApLERuPSgpPT5UbihFbik7ZnVuY3Rpb24gT24oZSx0KXtyZXR1cm4gQW4oZSxudWxsLHQpfWZ1bmN0aW9uIGtuKGUsdCxuKXtyZXR1cm4gQW4oZSx0LG4pfWZ1bmN0aW9uIEFuKGUsbixpPXQpe2xldHtpbW1lZGlhdGU6YSxkZWVwOm8sZmx1c2g6YyxvbmNlOmx9PWksdT1zKHt9LGkpLGQ9biYmYXx8IW4mJmMhPT1gcG9zdGAsZjtpZihBYSl7aWYoYz09PWBzeW5jYCl7bGV0IGU9RG4oKTtmPWUuX193YXRjaGVySGFuZGxlc3x8PVtdfWVsc2UgaWYoIWQpe2xldCBlPSgpPT57fTtyZXR1cm4gZS5zdG9wPXIsZS5yZXN1bWU9cixlLnBhdXNlPXIsZX19bGV0IHA9JDt1LmNhbGw9KGUsdCxuKT0+VihlLHAsdCxuKTtsZXQgbT0hMTtjPT09YHBvc3RgP3Uuc2NoZWR1bGVyPWU9PntKKGUscCYmcC5zdXNwZW5zZSl9OmMhPT1gc3luY2AmJihtPSEwLHUuc2NoZWR1bGVyPShlLHQpPT57dD9lKCk6Zm4oZSl9KSx1LmF1Z21lbnRKb2I9ZT0+e24mJihlLmZsYWdzfD00KSxtJiYoZS5mbGFnc3w9MixwJiYoZS5pZD1wLnVpZCxlLmk9cCkpfTtsZXQgaD0kdChlLG4sdSk7cmV0dXJuIEFhJiYoZj9mLnB1c2goaCk6ZCYmaCgpKSxofWZ1bmN0aW9uIGpuKGUsdCxuKXtsZXQgcj10aGlzLnByb3h5LGk9ZyhlKT9lLmluY2x1ZGVzKGAuYCk/TW4ocixlKTooKT0+cltlXTplLmJpbmQocixyKSxhO2godCk/YT10OihhPXQuaGFuZGxlcixuPXQpO2xldCBvPURhKHRoaXMpLHM9QW4oaSxhLmJpbmQociksbik7cmV0dXJuIG8oKSxzfWZ1bmN0aW9uIE1uKGUsdCl7bGV0IG49dC5zcGxpdChgLmApO3JldHVybigpPT57bGV0IHQ9ZTtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoJiZ0O2UrKyl0PXRbbltlXV07cmV0dXJuIHR9fXZhciBObj1uZXcgV2Vha01hcCxQbj1TeW1ib2woYF92dGVgKSxGbj1lPT5lLl9faXNUZWxlcG9ydCxJbj1lPT5lJiYoZS5kaXNhYmxlZHx8ZS5kaXNhYmxlZD09PWBgKSxMbj1lPT5lJiYoZS5kZWZlcnx8ZS5kZWZlcj09PWBgKSxSbj1lPT50eXBlb2YgU1ZHRWxlbWVudDxgdWAmJmUgaW5zdGFuY2VvZiBTVkdFbGVtZW50LHpuPWU9PnR5cGVvZiBNYXRoTUxFbGVtZW50PT1gZnVuY3Rpb25gJiZlIGluc3RhbmNlb2YgTWF0aE1MRWxlbWVudCxCbj0oZSx0KT0+e2xldCBuPWUmJmUudG87cmV0dXJuIGcobik/dD90KG4pOm51bGw6bn0sVm49e25hbWU6YFRlbGVwb3J0YCxfX2lzVGVsZXBvcnQ6ITAscHJvY2VzcyhlLHQsbixyLGksYSxvLHMsYyxsKXtsZXR7bWM6dSxwYzpkLHBiYzpmLG86e2luc2VydDpwLHF1ZXJ5U2VsZWN0b3I6bSxjcmVhdGVUZXh0OmgsY3JlYXRlQ29tbWVudDpnLHBhcmVudE5vZGU6X319PWwsdj1Jbih0LnByb3BzKSx7ZHluYW1pY0NoaWxkcmVuOnl9PXQsYj0oZSx0LG4pPT57ZS5zaGFwZUZsYWcmMTYmJnUoZS5jaGlsZHJlbix0LG4saSxhLG8scyxjKX0seD0oZT10KT0+e2xldCBuPUluKGUucHJvcHMpLHI9ZS50YXJnZXQ9Qm4oZS5wcm9wcyxtKSxhPUtuKHIsZSxoLHApO3ImJihvIT09YHN2Z2AmJlJuKHIpP289YHN2Z2A6byE9PWBtYXRobWxgJiZ6bihyKSYmKG89YG1hdGhtbGApLGkmJmkuaXNDRSYmKGkuY2UuX3RlbGVwb3J0VGFyZ2V0c3x8KGkuY2UuX3RlbGVwb3J0VGFyZ2V0cz1uZXcgU2V0KSkuYWRkKHIpLG58fChiKGUscixhKSxHbihlLCExKSkpfSxTPWU9PntsZXQgdD0oKT0+e05uLmdldChlKT09PXQmJihObi5kZWxldGUoZSksSW4oZS5wcm9wcykmJihiKGUsXyhlLmVsKXx8bixlLmFuY2hvciksR24oZSwhMCkpLHgoZSkpfTtObi5zZXQoZSx0KSxKKHQsYSl9O2lmKGU9PW51bGwpe2xldCBlPXQuZWw9aChgYCksaT10LmFuY2hvcj1oKGBgKTtpZihwKGUsbixyKSxwKGksbixyKSxMbih0LnByb3BzKXx8YSYmYS5wZW5kaW5nQnJhbmNoKXtTKHQpO3JldHVybn12JiYoYih0LG4saSksR24odCwhMCkpLHgoKX1lbHNle3QuZWw9ZS5lbDtsZXQgcj10LmFuY2hvcj1lLmFuY2hvcix1PU5uLmdldChlKTtpZih1KXt1LmZsYWdzfD04LE5uLmRlbGV0ZShlKSxTKHQpO3JldHVybn10LnRhcmdldFN0YXJ0PWUudGFyZ2V0U3RhcnQ7bGV0IHA9dC50YXJnZXQ9ZS50YXJnZXQsaD10LnRhcmdldEFuY2hvcj1lLnRhcmdldEFuY2hvcixnPUluKGUucHJvcHMpLF89Zz9uOnAsYj1nP3I6aDtpZihvPT09YHN2Z2B8fFJuKHApP289YHN2Z2A6KG89PT1gbWF0aG1sYHx8em4ocCkpJiYobz1gbWF0aG1sYCkseT8oZihlLmR5bmFtaWNDaGlsZHJlbix5LF8saSxhLG8scyksSGkoZSx0LCEwKSk6Y3x8ZChlLHQsXyxiLGksYSxvLHMsITEpLHYpZz90LnByb3BzJiZlLnByb3BzJiZ0LnByb3BzLnRvIT09ZS5wcm9wcy50byYmKHQucHJvcHMudG89ZS5wcm9wcy50byk6SG4odCxuLHIsbCwxKTtlbHNlIGlmKCh0LnByb3BzJiZ0LnByb3BzLnRvKSE9PShlLnByb3BzJiZlLnByb3BzLnRvKSl7bGV0IGU9Qm4odC5wcm9wcyxtKTtlJiYodC50YXJnZXQ9ZSxIbih0LGUsbnVsbCxsLDApKX1lbHNlIGcmJkhuKHQscCxoLGwsMSk7R24odCx2KX19LHJlbW92ZShlLHQsbix7dW06cixvOntyZW1vdmU6aX19LGEpe2xldHtzaGFwZUZsYWc6byxjaGlsZHJlbjpzLGFuY2hvcjpjLHRhcmdldFN0YXJ0OmwsdGFyZ2V0QW5jaG9yOnUsdGFyZ2V0OmQscHJvcHM6Zn09ZSxwPUluKGYpLG09YXx8IXAsaD1Obi5nZXQoZSk7aWYoaCYmKGguZmxhZ3N8PTgsTm4uZGVsZXRlKGUpKSxkJiYoaShsKSxpKHUpKSxhJiZpKGMpLCFoJiYocHx8ZCkmJm8mMTYpZm9yKGxldCBlPTA7ZTxzLmxlbmd0aDtlKyspe2xldCBpPXNbZV07cihpLHQsbixtLCEhaS5keW5hbWljQ2hpbGRyZW4pfX0sbW92ZTpIbixoeWRyYXRlOlVufTtmdW5jdGlvbiBIbihlLHQsbix7bzp7aW5zZXJ0OnJ9LG06aX0sYT0yKXthPT09MCYmcihlLnRhcmdldEFuY2hvcix0LG4pO2xldHtlbDpvLGFuY2hvcjpzLHNoYXBlRmxhZzpjLGNoaWxkcmVuOmwscHJvcHM6dX09ZSxkPWE9PT0yO2lmKGQmJnIobyx0LG4pLCFObi5oYXMoZSkmJighZHx8SW4odSkpJiZjJjE2KWZvcihsZXQgZT0wO2U8bC5sZW5ndGg7ZSsrKWkobFtlXSx0LG4sMik7ZCYmcihzLHQsbil9ZnVuY3Rpb24gVW4oZSx0LG4scixpLGEse286e25leHRTaWJsaW5nOm8scGFyZW50Tm9kZTpzLHF1ZXJ5U2VsZWN0b3I6YyxpbnNlcnQ6bCxjcmVhdGVUZXh0OnV9fSxkKXtmdW5jdGlvbiBmKGUsbil7bGV0IHI9bjtmb3IoO3I7KXtpZihyJiZyLm5vZGVUeXBlPT09OCl7aWYoci5kYXRhPT09YHRlbGVwb3J0IHN0YXJ0IGFuY2hvcmApdC50YXJnZXRTdGFydD1yO2Vsc2UgaWYoci5kYXRhPT09YHRlbGVwb3J0IGFuY2hvcmApe3QudGFyZ2V0QW5jaG9yPXIsZS5fbHBhPXQudGFyZ2V0QW5jaG9yJiZvKHQudGFyZ2V0QW5jaG9yKTticmVha319cj1vKHIpfX1mdW5jdGlvbiBwKGUsdCl7dC5hbmNob3I9ZChvKGUpLHQscyhlKSxuLHIsaSxhKX1sZXQgbT10LnRhcmdldD1Cbih0LnByb3BzLGMpLGg9SW4odC5wcm9wcyk7aWYobSl7bGV0IGM9bS5fbHBhfHxtLmZpcnN0Q2hpbGQ7dC5zaGFwZUZsYWcmMTYmJihoPyhwKGUsdCksZihtLGMpLHQudGFyZ2V0QW5jaG9yfHxLbihtLHQsdSxsLHMoZSk9PT1tP2U6bnVsbCkpOih0LmFuY2hvcj1vKGUpLGYobSxjKSx0LnRhcmdldEFuY2hvcnx8S24obSx0LHUsbCksZChjJiZvKGMpLHQsbSxuLHIsaSxhKSkpLEduKHQsaCl9ZWxzZSBoJiZ0LnNoYXBlRmxhZyYxNiYmKHAoZSx0KSx0LnRhcmdldFN0YXJ0PWUsdC50YXJnZXRBbmNob3I9byhlKSk7cmV0dXJuIHQuYW5jaG9yJiZvKHQuYW5jaG9yKX12YXIgV249Vm47ZnVuY3Rpb24gR24oZSx0KXtsZXQgbj1lLmN0eDtpZihuJiZuLnV0KXtsZXQgcixpO2Zvcih0PyhyPWUuZWwsaT1lLmFuY2hvcik6KHI9ZS50YXJnZXRTdGFydCxpPWUudGFyZ2V0QW5jaG9yKTtyJiZyIT09aTspci5ub2RlVHlwZT09PTEmJnIuc2V0QXR0cmlidXRlKGBkYXRhLXYtb3duZXJgLG4udWlkKSxyPXIubmV4dFNpYmxpbmc7bi51dCgpfX1mdW5jdGlvbiBLbihlLHQsbixyLGk9bnVsbCl7bGV0IGE9dC50YXJnZXRTdGFydD1uKGBgKSxvPXQudGFyZ2V0QW5jaG9yPW4oYGApO3JldHVybiBhW1BuXT1vLGUmJihyKGEsZSxpKSxyKG8sZSxpKSksb312YXIgRz1TeW1ib2woYF9sZWF2ZUNiYCkscW49U3ltYm9sKGBfZW50ZXJDYmApO2Z1bmN0aW9uIEpuKCl7bGV0IGU9e2lzTW91bnRlZDohMSxpc0xlYXZpbmc6ITEsaXNVbm1vdW50aW5nOiExLGxlYXZpbmdWTm9kZXM6bmV3IE1hcH07cmV0dXJuIHhyKCgpPT57ZS5pc01vdW50ZWQ9ITB9KSx3cigoKT0+e2UuaXNVbm1vdW50aW5nPSEwfSksZX12YXIgSz1bRnVuY3Rpb24sQXJyYXldLFluPXttb2RlOlN0cmluZyxhcHBlYXI6Qm9vbGVhbixwZXJzaXN0ZWQ6Qm9vbGVhbixvbkJlZm9yZUVudGVyOkssb25FbnRlcjpLLG9uQWZ0ZXJFbnRlcjpLLG9uRW50ZXJDYW5jZWxsZWQ6SyxvbkJlZm9yZUxlYXZlOkssb25MZWF2ZTpLLG9uQWZ0ZXJMZWF2ZTpLLG9uTGVhdmVDYW5jZWxsZWQ6SyxvbkJlZm9yZUFwcGVhcjpLLG9uQXBwZWFyOkssb25BZnRlckFwcGVhcjpLLG9uQXBwZWFyQ2FuY2VsbGVkOkt9LFhuPWU9PntsZXQgdD1lLnN1YlRyZWU7cmV0dXJuIHQuY29tcG9uZW50P1huKHQuY29tcG9uZW50KTp0fSxabj17bmFtZTpgQmFzZVRyYW5zaXRpb25gLHByb3BzOlluLHNldHVwKGUse3Nsb3RzOnR9KXtsZXQgbj13YSgpLHI9Sm4oKTtyZXR1cm4oKT0+e2xldCBpPXQuZGVmYXVsdCYmYXIodC5kZWZhdWx0KCksITApLGE9aSYmaS5sZW5ndGg/UW4oaSk6bi5zdWJUcmVlP2hhKCk6dm9pZCAwO2lmKCFhKXJldHVybjtsZXQgbz1SKGUpLHttb2RlOnN9PW87aWYoci5pc0xlYXZpbmcpcmV0dXJuIG5yKGEpO2xldCBjPXJyKGEpO2lmKCFjKXJldHVybiBucihhKTtsZXQgbD10cihjLG8scixuLGU9Pmw9ZSk7Yy50eXBlIT09WCYmaXIoYyxsKTtsZXQgdT1uLnN1YlRyZWUmJnJyKG4uc3ViVHJlZSk7aWYodSYmdS50eXBlIT09WCYmIW9hKHUsYykmJlhuKG4pLnR5cGUhPT1YKXtsZXQgZT10cih1LG8scixuKTtpZihpcih1LGUpLHM9PT1gb3V0LWluYCYmYy50eXBlIT09WClyZXR1cm4gci5pc0xlYXZpbmc9ITAsZS5hZnRlckxlYXZlPSgpPT57ci5pc0xlYXZpbmc9ITEsbi5qb2IuZmxhZ3MmOHx8bi51cGRhdGUoKSxkZWxldGUgZS5hZnRlckxlYXZlLHU9dm9pZCAwfSxucihhKTtzPT09YGluLW91dGAmJmMudHlwZSE9PVg/ZS5kZWxheUxlYXZlPShlLHQsbik9PntsZXQgaT1lcihyLHUpO2lbU3RyaW5nKHUua2V5KV09dSxlW0ddPSgpPT57dCgpLGVbR109dm9pZCAwLGRlbGV0ZSBsLmRlbGF5ZWRMZWF2ZSx1PXZvaWQgMH0sbC5kZWxheWVkTGVhdmU9KCk9PntuKCksZGVsZXRlIGwuZGVsYXllZExlYXZlLHU9dm9pZCAwfX06dT12b2lkIDB9ZWxzZSB1JiY9dm9pZCAwO3JldHVybiBhfX19O2Z1bmN0aW9uIFFuKGUpe2xldCB0PWVbMF07aWYoZS5sZW5ndGg+MSl7Zm9yKGxldCBuIG9mIGUpaWYobi50eXBlIT09WCl7dD1uO2JyZWFrfX1yZXR1cm4gdH12YXIgJG49Wm47ZnVuY3Rpb24gZXIoZSx0KXtsZXR7bGVhdmluZ1ZOb2RlczpufT1lLHI9bi5nZXQodC50eXBlKTtyZXR1cm4gcnx8KHI9T2JqZWN0LmNyZWF0ZShudWxsKSxuLnNldCh0LnR5cGUscikpLHJ9ZnVuY3Rpb24gdHIoZSx0LG4scixpKXtsZXR7YXBwZWFyOmEsbW9kZTpvLHBlcnNpc3RlZDpzPSExLG9uQmVmb3JlRW50ZXI6YyxvbkVudGVyOmwsb25BZnRlckVudGVyOnUsb25FbnRlckNhbmNlbGxlZDpmLG9uQmVmb3JlTGVhdmU6cCxvbkxlYXZlOm0sb25BZnRlckxlYXZlOmgsb25MZWF2ZUNhbmNlbGxlZDpnLG9uQmVmb3JlQXBwZWFyOl8sb25BcHBlYXI6dixvbkFmdGVyQXBwZWFyOnksb25BcHBlYXJDYW5jZWxsZWQ6Yn09dCx4PVN0cmluZyhlLmtleSksUz1lcihuLGUpLEM9KGUsdCk9PntlJiZWKGUsciw5LHQpfSx3PShlLHQpPT57bGV0IG49dFsxXTtDKGUsdCksZChlKT9lLmV2ZXJ5KGU9PmUubGVuZ3RoPD0xKSYmbigpOmUubGVuZ3RoPD0xJiZuKCl9LFQ9e21vZGU6byxwZXJzaXN0ZWQ6cyxiZWZvcmVFbnRlcih0KXtsZXQgcj1jO2lmKCFuLmlzTW91bnRlZClpZihhKXI9X3x8YztlbHNlIHJldHVybjt0W0ddJiZ0W0ddKCEwKTtsZXQgaT1TW3hdO2kmJm9hKGUsaSkmJmkuZWxbR10mJmkuZWxbR10oKSxDKHIsW3RdKX0sZW50ZXIodCl7aWYoU1t4XT09PWUpcmV0dXJuO2xldCByPWwsaT11LG89ZjtpZighbi5pc01vdW50ZWQpaWYoYSlyPXZ8fGwsaT15fHx1LG89Ynx8ZjtlbHNlIHJldHVybjtsZXQgcz0hMTt0W3FuXT1lPT57c3x8KHM9ITAsQyhlP286aSxbdF0pLFQuZGVsYXllZExlYXZlJiZULmRlbGF5ZWRMZWF2ZSgpLHRbcW5dPXZvaWQgMCl9O2xldCBjPXRbcW5dLmJpbmQobnVsbCwhMSk7cj93KHIsW3QsY10pOmMoKX0sbGVhdmUodCxyKXtsZXQgaT1TdHJpbmcoZS5rZXkpO2lmKHRbcW5dJiZ0W3FuXSghMCksbi5pc1VubW91bnRpbmcpcmV0dXJuIHIoKTtDKHAsW3RdKTtsZXQgYT0hMTt0W0ddPW49PnthfHwoYT0hMCxyKCksQyhuP2c6aCxbdF0pLHRbR109dm9pZCAwLFNbaV09PT1lJiZkZWxldGUgU1tpXSl9O2xldCBvPXRbR10uYmluZChudWxsLCExKTtTW2ldPWUsbT93KG0sW3Qsb10pOm8oKX0sY2xvbmUoZSl7bGV0IGE9dHIoZSx0LG4scixpKTtyZXR1cm4gaSYmaShhKSxhfX07cmV0dXJuIFR9ZnVuY3Rpb24gbnIoZSl7aWYocHIoZSkpcmV0dXJuIGU9ZmEoZSksZS5jaGlsZHJlbj1udWxsLGV9ZnVuY3Rpb24gcnIoZSl7aWYoIXByKGUpKXJldHVybiBGbihlLnR5cGUpJiZlLmNoaWxkcmVuP1FuKGUuY2hpbGRyZW4pOmU7aWYoZS5jb21wb25lbnQpcmV0dXJuIGUuY29tcG9uZW50LnN1YlRyZWU7bGV0e3NoYXBlRmxhZzp0LGNoaWxkcmVuOm59PWU7aWYobil7aWYodCYxNilyZXR1cm4gblswXTtpZih0JjMyJiZoKG4uZGVmYXVsdCkpcmV0dXJuIG4uZGVmYXVsdCgpfX1mdW5jdGlvbiBpcihlLHQpe2Uuc2hhcGVGbGFnJjYmJmUuY29tcG9uZW50PyhlLnRyYW5zaXRpb249dCxpcihlLmNvbXBvbmVudC5zdWJUcmVlLHQpKTplLnNoYXBlRmxhZyYxMjg/KGUuc3NDb250ZW50LnRyYW5zaXRpb249dC5jbG9uZShlLnNzQ29udGVudCksZS5zc0ZhbGxiYWNrLnRyYW5zaXRpb249dC5jbG9uZShlLnNzRmFsbGJhY2spKTplLnRyYW5zaXRpb249dH1mdW5jdGlvbiBhcihlLHQ9ITEsbil7bGV0IHI9W10saT0wO2ZvcihsZXQgYT0wO2E8ZS5sZW5ndGg7YSsrKXtsZXQgbz1lW2FdLHM9bj09bnVsbD9vLmtleTpTdHJpbmcobikrU3RyaW5nKG8ua2V5PT1udWxsP2E6by5rZXkpO28udHlwZT09PVk/KG8ucGF0Y2hGbGFnJjEyOCYmaSsrLHI9ci5jb25jYXQoYXIoby5jaGlsZHJlbix0LHMpKSk6KHR8fG8udHlwZSE9PVgpJiZyLnB1c2gocz09bnVsbD9vOmZhKG8se2tleTpzfSkpfWlmKGk+MSlmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrKylyW2VdLnBhdGNoRmxhZz0tMjtyZXR1cm4gcn1mdW5jdGlvbiBvcihlLHQpe3JldHVybiBoKGUpP3Moe25hbWU6ZS5uYW1lfSx0LHtzZXR1cDplfSk6ZX1mdW5jdGlvbiBzcihlKXtlLmlkcz1bZS5pZHNbMF0rZS5pZHNbMl0rKytgLWAsMCwwXX1mdW5jdGlvbiBjcihlLHQpe2xldCBuO3JldHVybiEhKChuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KSkmJiFuLmNvbmZpZ3VyYWJsZSl9dmFyIGxyPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHVyKGUsbixyLGEsbz0hMSl7aWYoZChlKSl7ZS5mb3JFYWNoKChlLHQpPT51cihlLG4mJihkKG4pP25bdF06bikscixhLG8pKTtyZXR1cm59aWYoZnIoYSkmJiFvKXthLnNoYXBlRmxhZyY1MTImJmEudHlwZS5fX2FzeW5jUmVzb2x2ZWQmJmEuY29tcG9uZW50LnN1YlRyZWUuY29tcG9uZW50JiZ1cihlLG4scixhLmNvbXBvbmVudC5zdWJUcmVlKTtyZXR1cm59bGV0IHM9YS5zaGFwZUZsYWcmND96YShhLmNvbXBvbmVudCk6YS5lbCxsPW8/bnVsbDpzLHtpOmYscjpwfT1lLG09biYmbi5yLF89Zi5yZWZzPT09dD9mLnJlZnM9e306Zi5yZWZzLHY9Zi5zZXR1cFN0YXRlLHk9Uih2KSxiPXY9PT10P2k6ZT0+Y3IoXyxlKT8hMTp1KHksZSkseD0oZSx0KT0+ISh0JiZjcihfLHQpKTtpZihtIT1udWxsJiZtIT09cCl7aWYoZHIobiksZyhtKSlfW21dPW51bGwsYihtKSYmKHZbbV09bnVsbCk7ZWxzZSBpZihCKG0pKXtsZXQgZT1uO3gobSxlLmspJiYobS52YWx1ZT1udWxsKSxlLmsmJihfW2Uua109bnVsbCl9fWlmKGgocCkpe04oKTt0cnl7dG4ocCxmLDEyLFtsLF9dKX1maW5hbGx5e1AoKX19ZWxzZXtsZXQgdD1nKHApLG49QihwKTtpZih0fHxuKXtsZXQgaT0oKT0+e2lmKGUuZil7bGV0IG49dD9iKHApP3ZbcF06X1twXTp4KHApfHwhZS5rP3AudmFsdWU6X1tlLmtdO2lmKG8pZChuKSYmYyhuLHMpO2Vsc2UgaWYoZChuKSluLmluY2x1ZGVzKHMpfHxuLnB1c2gocyk7ZWxzZSBpZih0KV9bcF09W3NdLGIocCkmJih2W3BdPV9bcF0pO2Vsc2V7bGV0IHQ9W3NdO3gocCxlLmspJiYocC52YWx1ZT10KSxlLmsmJihfW2Uua109dCl9fWVsc2UgdD8oX1twXT1sLGIocCkmJih2W3BdPWwpKTpuJiYoeChwLGUuaykmJihwLnZhbHVlPWwpLGUuayYmKF9bZS5rXT1sKSl9O2lmKGwpe2xldCB0PSgpPT57aSgpLGxyLmRlbGV0ZShlKX07dC5pZD0tMSxsci5zZXQoZSx0KSxKKHQscil9ZWxzZSBkcihlKSxpKCl9fX1mdW5jdGlvbiBkcihlKXtsZXQgdD1sci5nZXQoZSk7dCYmKHQuZmxhZ3N8PTgsbHIuZGVsZXRlKGUpKX1sZSgpLnJlcXVlc3RJZGxlQ2FsbGJhY2ssbGUoKS5jYW5jZWxJZGxlQ2FsbGJhY2s7dmFyIGZyPWU9PiEhZS50eXBlLl9fYXN5bmNMb2FkZXIscHI9ZT0+ZS50eXBlLl9faXNLZWVwQWxpdmU7ZnVuY3Rpb24gbXIoZSx0KXtncihlLGBhYCx0KX1mdW5jdGlvbiBocihlLHQpe2dyKGUsYGRhYCx0KX1mdW5jdGlvbiBncihlLHQsbj0kKXtsZXQgcj1lLl9fd2RjfHw9KCk9PntsZXQgdD1uO2Zvcig7dDspe2lmKHQuaXNEZWFjdGl2YXRlZClyZXR1cm47dD10LnBhcmVudH1yZXR1cm4gZSgpfTtpZih2cih0LHIsbiksbil7bGV0IGU9bi5wYXJlbnQ7Zm9yKDtlJiZlLnBhcmVudDspcHIoZS5wYXJlbnQudm5vZGUpJiZfcihyLHQsbixlKSxlPWUucGFyZW50fX1mdW5jdGlvbiBfcihlLHQsbixyKXtsZXQgaT12cih0LGUsciwhMCk7VHIoKCk9PntjKHJbdF0saSl9LG4pfWZ1bmN0aW9uIHZyKGUsdCxuPSQscj0hMSl7aWYobil7bGV0IGk9bltlXXx8KG5bZV09W10pLGE9dC5fX3dlaHx8PSguLi5yKT0+e04oKTtsZXQgaT1EYShuKSxhPVYodCxuLGUscik7cmV0dXJuIGkoKSxQKCksYX07cmV0dXJuIHI/aS51bnNoaWZ0KGEpOmkucHVzaChhKSxhfX12YXIgeXI9ZT0+KHQsbj0kKT0+eyghQWF8fGU9PT1gc3BgKSYmdnIoZSwoLi4uZSk9PnQoLi4uZSksbil9LGJyPXlyKGBibWApLHhyPXlyKGBtYCksU3I9eXIoYGJ1YCksQ3I9eXIoYHVgKSx3cj15cihgYnVtYCksVHI9eXIoYHVtYCksRXI9eXIoYHNwYCksRHI9eXIoYHJ0Z2ApLE9yPXlyKGBydGNgKTtmdW5jdGlvbiBrcihlLHQ9JCl7dnIoYGVjYCxlLHQpfXZhciBBcj1gY29tcG9uZW50c2AsanI9YGRpcmVjdGl2ZXNgO2Z1bmN0aW9uIE1yKGUsdCl7cmV0dXJuIEZyKEFyLGUsITAsdCl8fGV9dmFyIE5yPVN5bWJvbC5mb3IoYHYtbmRjYCk7ZnVuY3Rpb24gUHIoZSl7cmV0dXJuIEZyKGpyLGUpfWZ1bmN0aW9uIEZyKGUsdCxuPSEwLHI9ITEpe2xldCBpPVd8fCQ7aWYoaSl7bGV0IG49aS50eXBlO2lmKGU9PT1Bcil7bGV0IGU9QmEobiwhMSk7aWYoZSYmKGU9PT10fHxlPT09RSh0KXx8ZT09PXJlKEUodCkpKSlyZXR1cm4gbn1sZXQgYT1JcihpW2VdfHxuW2VdLHQpfHxJcihpLmFwcENvbnRleHRbZV0sdCk7cmV0dXJuIWEmJnI/bjphfX1mdW5jdGlvbiBJcihlLHQpe3JldHVybiBlJiYoZVt0XXx8ZVtFKHQpXXx8ZVtyZShFKHQpKV0pfWZ1bmN0aW9uIExyKGUsdCxuLHIpe2xldCBpLGE9biYmbltyXSxvPWQoZSk7aWYob3x8ZyhlKSl7bGV0IG49byYmRnQoZSkscj0hMSxzPSExO24mJihyPSFMKGUpLHM9SXQoZSksZT1ldChlKSksaT1BcnJheShlLmxlbmd0aCk7Zm9yKGxldCBuPTAsbz1lLmxlbmd0aDtuPG87bisrKWlbbl09dChyP3M/enQoeihlW25dKSk6eihlW25dKTplW25dLG4sdm9pZCAwLGEmJmFbbl0pfWVsc2UgaWYodHlwZW9mIGU9PWBudW1iZXJgKXtpPUFycmF5KGUpO2ZvcihsZXQgbj0wO248ZTtuKyspaVtuXT10KG4rMSxuLHZvaWQgMCxhJiZhW25dKX1lbHNlIGlmKHYoZSkpaWYoZVtTeW1ib2wuaXRlcmF0b3JdKWk9QXJyYXkuZnJvbShlLChlLG4pPT50KGUsbix2b2lkIDAsYSYmYVtuXSkpO2Vsc2V7bGV0IG49T2JqZWN0LmtleXMoZSk7aT1BcnJheShuLmxlbmd0aCk7Zm9yKGxldCByPTAsbz1uLmxlbmd0aDtyPG87cisrKXtsZXQgbz1uW3JdO2lbcl09dChlW29dLG8scixhJiZhW3JdKX19ZWxzZSBpPVtdO3JldHVybiBuJiYobltyXT1pKSxpfXZhciBScj1lPT5lP2thKGUpP3phKGUpOlJyKGUucGFyZW50KTpudWxsLHpyPXMoT2JqZWN0LmNyZWF0ZShudWxsKSx7JDplPT5lLCRlbDplPT5lLnZub2RlLmVsLCRkYXRhOmU9PmUuZGF0YSwkcHJvcHM6ZT0+ZS5wcm9wcywkYXR0cnM6ZT0+ZS5hdHRycywkc2xvdHM6ZT0+ZS5zbG90cywkcmVmczplPT5lLnJlZnMsJHBhcmVudDplPT5ScihlLnBhcmVudCksJHJvb3Q6ZT0+UnIoZS5yb290KSwkaG9zdDplPT5lLmNlLCRlbWl0OmU9PmUuZW1pdCwkb3B0aW9uczplPT5KcihlKSwkZm9yY2VVcGRhdGU6ZT0+ZS5mfHw9KCk9PntmbihlLnVwZGF0ZSl9LCRuZXh0VGljazplPT5lLm58fD11bi5iaW5kKGUucHJveHkpLCR3YXRjaDplPT5qbi5iaW5kKGUpfSksQnI9KGUsbik9PmUhPT10JiYhZS5fX2lzU2NyaXB0U2V0dXAmJnUoZSxuKSxWcj17Z2V0KHtfOmV9LG4pe2lmKG49PT1gX192X3NraXBgKXJldHVybiEwO2xldHtjdHg6cixzZXR1cFN0YXRlOmksZGF0YTphLHByb3BzOm8sYWNjZXNzQ2FjaGU6cyx0eXBlOmMsYXBwQ29udGV4dDpsfT1lO2lmKG5bMF0hPT1gJGApe2xldCBlPXNbbl07aWYoZSE9PXZvaWQgMClzd2l0Y2goZSl7Y2FzZSAxOnJldHVybiBpW25dO2Nhc2UgMjpyZXR1cm4gYVtuXTtjYXNlIDQ6cmV0dXJuIHJbbl07Y2FzZSAzOnJldHVybiBvW25dfWVsc2UgaWYoQnIoaSxuKSlyZXR1cm4gc1tuXT0xLGlbbl07ZWxzZSBpZihhIT09dCYmdShhLG4pKXJldHVybiBzW25dPTIsYVtuXTtlbHNlIGlmKHUobyxuKSlyZXR1cm4gc1tuXT0zLG9bbl07ZWxzZSBpZihyIT09dCYmdShyLG4pKXJldHVybiBzW25dPTQscltuXTtlbHNlIFVyJiYoc1tuXT0wKX1sZXQgZD16cltuXSxmLHA7aWYoZClyZXR1cm4gbj09PWAkYXR0cnNgJiZGKGUuYXR0cnMsYGdldGAsYGApLGQoZSk7aWYoKGY9Yy5fX2Nzc01vZHVsZXMpJiYoZj1mW25dKSlyZXR1cm4gZjtpZihyIT09dCYmdShyLG4pKXJldHVybiBzW25dPTQscltuXTtpZihwPWwuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMsdShwLG4pKXJldHVybiBwW25dfSxzZXQoe186ZX0sbixyKXtsZXR7ZGF0YTppLHNldHVwU3RhdGU6YSxjdHg6b309ZTtyZXR1cm4gQnIoYSxuKT8oYVtuXT1yLCEwKTppIT09dCYmdShpLG4pPyhpW25dPXIsITApOnUoZS5wcm9wcyxuKXx8blswXT09PWAkYCYmbi5zbGljZSgxKWluIGU/ITE6KG9bbl09ciwhMCl9LGhhcyh7Xzp7ZGF0YTplLHNldHVwU3RhdGU6bixhY2Nlc3NDYWNoZTpyLGN0eDppLGFwcENvbnRleHQ6YSxwcm9wczpvLHR5cGU6c319LGMpe2xldCBsO3JldHVybiEhKHJbY118fGUhPT10JiZjWzBdIT09YCRgJiZ1KGUsYyl8fEJyKG4sYyl8fHUobyxjKXx8dShpLGMpfHx1KHpyLGMpfHx1KGEuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMsYyl8fChsPXMuX19jc3NNb2R1bGVzKSYmbFtjXSl9LGRlZmluZVByb3BlcnR5KGUsdCxuKXtyZXR1cm4gbi5nZXQ9PW51bGw/dShuLGB2YWx1ZWApJiZ0aGlzLnNldChlLHQsbi52YWx1ZSxudWxsKTplLl8uYWNjZXNzQ2FjaGVbdF09MCxSZWZsZWN0LmRlZmluZVByb3BlcnR5KGUsdCxuKX19O2Z1bmN0aW9uIEhyKGUpe3JldHVybiBkKGUpP2UucmVkdWNlKChlLHQpPT4oZVt0XT1udWxsLGUpLHt9KTplfXZhciBVcj0hMDtmdW5jdGlvbiBXcihlKXtsZXQgdD1KcihlKSxuPWUucHJveHksaT1lLmN0eDtVcj0hMSx0LmJlZm9yZUNyZWF0ZSYmS3IodC5iZWZvcmVDcmVhdGUsZSxgYmNgKTtsZXR7ZGF0YTphLGNvbXB1dGVkOm8sbWV0aG9kczpzLHdhdGNoOmMscHJvdmlkZTpsLGluamVjdDp1LGNyZWF0ZWQ6ZixiZWZvcmVNb3VudDpwLG1vdW50ZWQ6bSxiZWZvcmVVcGRhdGU6Zyx1cGRhdGVkOl8sYWN0aXZhdGVkOnksZGVhY3RpdmF0ZWQ6YixiZWZvcmVEZXN0cm95OngsYmVmb3JlVW5tb3VudDpTLGRlc3Ryb3llZDpDLHVubW91bnRlZDp3LHJlbmRlcjpULHJlbmRlclRyYWNrZWQ6ZWUscmVuZGVyVHJpZ2dlcmVkOnRlLGVycm9yQ2FwdHVyZWQ6RSxzZXJ2ZXJQcmVmZXRjaDpuZSxleHBvc2U6RCxpbmhlcml0QXR0cnM6cmUsY29tcG9uZW50czppZSxkaXJlY3RpdmVzOk8sZmlsdGVyczphZX09dDtpZih1JiZHcih1LGksbnVsbCkscylmb3IobGV0IGUgaW4gcyl7bGV0IHQ9c1tlXTtoKHQpJiYoaVtlXT10LmJpbmQobikpfWlmKGEpe2xldCB0PWEuY2FsbChuLG4pO3YodCkmJihlLmRhdGE9anQodCkpfWlmKFVyPSEwLG8pZm9yKGxldCBlIGluIG8pe2xldCB0PW9bZV0sYT1IYSh7Z2V0OmgodCk/dC5iaW5kKG4sbik6aCh0LmdldCk/dC5nZXQuYmluZChuLG4pOnIsc2V0OiFoKHQpJiZoKHQuc2V0KT90LnNldC5iaW5kKG4pOnJ9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6KCk9PmEudmFsdWUsc2V0OmU9PmEudmFsdWU9ZX0pfWlmKGMpZm9yKGxldCBlIGluIGMpcXIoY1tlXSxpLG4sZSk7aWYobCl7bGV0IGU9aChsKT9sLmNhbGwobik6bDtSZWZsZWN0Lm93bktleXMoZSkuZm9yRWFjaCh0PT57d24odCxlW3RdKX0pfWYmJktyKGYsZSxgY2ApO2Z1bmN0aW9uIGsoZSx0KXtkKHQpP3QuZm9yRWFjaCh0PT5lKHQuYmluZChuKSkpOnQmJmUodC5iaW5kKG4pKX1pZihrKGJyLHApLGsoeHIsbSksayhTcixnKSxrKENyLF8pLGsobXIseSksayhocixiKSxrKGtyLEUpLGsoT3IsZWUpLGsoRHIsdGUpLGsod3IsUyksayhUcix3KSxrKEVyLG5lKSxkKEQpKWlmKEQubGVuZ3RoKXtsZXQgdD1lLmV4cG9zZWR8fD17fTtELmZvckVhY2goZT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse2dldDooKT0+bltlXSxzZXQ6dD0+bltlXT10LGVudW1lcmFibGU6ITB9KX0pfWVsc2UgZS5leHBvc2VkfHw9e307VCYmZS5yZW5kZXI9PT1yJiYoZS5yZW5kZXI9VCkscmUhPW51bGwmJihlLmluaGVyaXRBdHRycz1yZSksaWUmJihlLmNvbXBvbmVudHM9aWUpLE8mJihlLmRpcmVjdGl2ZXM9TyksbmUmJnNyKGUpfWZ1bmN0aW9uIEdyKGUsdCxuPXIpe2QoZSkmJihlPSRyKGUpKTtmb3IobGV0IG4gaW4gZSl7bGV0IHI9ZVtuXSxpO2k9dihyKT9gZGVmYXVsdGBpbiByP1RuKHIuZnJvbXx8bixyLmRlZmF1bHQsITApOlRuKHIuZnJvbXx8bik6VG4ociksQihpKT9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxuLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6KCk9PmkudmFsdWUsc2V0OmU9PmkudmFsdWU9ZX0pOnRbbl09aX19ZnVuY3Rpb24gS3IoZSx0LG4pe1YoZChlKT9lLm1hcChlPT5lLmJpbmQodC5wcm94eSkpOmUuYmluZCh0LnByb3h5KSx0LG4pfWZ1bmN0aW9uIHFyKGUsdCxuLHIpe2xldCBpPXIuaW5jbHVkZXMoYC5gKT9NbihuLHIpOigpPT5uW3JdO2lmKGcoZSkpe2xldCBuPXRbZV07aChuKSYma24oaSxuKX1lbHNlIGlmKGgoZSkpa24oaSxlLmJpbmQobikpO2Vsc2UgaWYodihlKSlpZihkKGUpKWUuZm9yRWFjaChlPT5xcihlLHQsbixyKSk7ZWxzZXtsZXQgcj1oKGUuaGFuZGxlcik/ZS5oYW5kbGVyLmJpbmQobik6dFtlLmhhbmRsZXJdO2gocikmJmtuKGkscixlKX19ZnVuY3Rpb24gSnIoZSl7bGV0IHQ9ZS50eXBlLHttaXhpbnM6bixleHRlbmRzOnJ9PXQse21peGluczppLG9wdGlvbnNDYWNoZTphLGNvbmZpZzp7b3B0aW9uTWVyZ2VTdHJhdGVnaWVzOm99fT1lLmFwcENvbnRleHQscz1hLmdldCh0KSxjO3JldHVybiBzP2M9czohaS5sZW5ndGgmJiFuJiYhcj9jPXQ6KGM9e30saS5sZW5ndGgmJmkuZm9yRWFjaChlPT5ZcihjLGUsbywhMCkpLFlyKGMsdCxvKSksdih0KSYmYS5zZXQodCxjKSxjfWZ1bmN0aW9uIFlyKGUsdCxuLHI9ITEpe2xldHttaXhpbnM6aSxleHRlbmRzOmF9PXQ7YSYmWXIoZSxhLG4sITApLGkmJmkuZm9yRWFjaCh0PT5ZcihlLHQsbiwhMCkpO2ZvcihsZXQgaSBpbiB0KWlmKCEociYmaT09PWBleHBvc2VgKSl7bGV0IHI9WHJbaV18fG4mJm5baV07ZVtpXT1yP3IoZVtpXSx0W2ldKTp0W2ldfXJldHVybiBlfXZhciBYcj17ZGF0YTpacixwcm9wczp0aSxlbWl0czp0aSxtZXRob2RzOmVpLGNvbXB1dGVkOmVpLGJlZm9yZUNyZWF0ZTpxLGNyZWF0ZWQ6cSxiZWZvcmVNb3VudDpxLG1vdW50ZWQ6cSxiZWZvcmVVcGRhdGU6cSx1cGRhdGVkOnEsYmVmb3JlRGVzdHJveTpxLGJlZm9yZVVubW91bnQ6cSxkZXN0cm95ZWQ6cSx1bm1vdW50ZWQ6cSxhY3RpdmF0ZWQ6cSxkZWFjdGl2YXRlZDpxLGVycm9yQ2FwdHVyZWQ6cSxzZXJ2ZXJQcmVmZXRjaDpxLGNvbXBvbmVudHM6ZWksZGlyZWN0aXZlczplaSx3YXRjaDpuaSxwcm92aWRlOlpyLGluamVjdDpRcn07ZnVuY3Rpb24gWnIoZSx0KXtyZXR1cm4gdD9lP2Z1bmN0aW9uKCl7cmV0dXJuIHMoaChlKT9lLmNhbGwodGhpcyx0aGlzKTplLGgodCk/dC5jYWxsKHRoaXMsdGhpcyk6dCl9OnQ6ZX1mdW5jdGlvbiBRcihlLHQpe3JldHVybiBlaSgkcihlKSwkcih0KSl9ZnVuY3Rpb24gJHIoZSl7aWYoZChlKSl7bGV0IHQ9e307Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdFtlW25dXT1lW25dO3JldHVybiB0fXJldHVybiBlfWZ1bmN0aW9uIHEoZSx0KXtyZXR1cm4gZT9bLi4ubmV3IFNldChbXS5jb25jYXQoZSx0KSldOnR9ZnVuY3Rpb24gZWkoZSx0KXtyZXR1cm4gZT9zKE9iamVjdC5jcmVhdGUobnVsbCksZSx0KTp0fWZ1bmN0aW9uIHRpKGUsdCl7cmV0dXJuIGU/ZChlKSYmZCh0KT9bLi4ubmV3IFNldChbLi4uZSwuLi50XSldOnMoT2JqZWN0LmNyZWF0ZShudWxsKSxIcihlKSxIcih0Pz97fSkpOnR9ZnVuY3Rpb24gbmkoZSx0KXtpZighZSlyZXR1cm4gdDtpZighdClyZXR1cm4gZTtsZXQgbj1zKE9iamVjdC5jcmVhdGUobnVsbCksZSk7Zm9yKGxldCByIGluIHQpbltyXT1xKGVbcl0sdFtyXSk7cmV0dXJuIG59ZnVuY3Rpb24gcmkoKXtyZXR1cm57YXBwOm51bGwsY29uZmlnOntpc05hdGl2ZVRhZzppLHBlcmZvcm1hbmNlOiExLGdsb2JhbFByb3BlcnRpZXM6e30sb3B0aW9uTWVyZ2VTdHJhdGVnaWVzOnt9LGVycm9ySGFuZGxlcjp2b2lkIDAsd2FybkhhbmRsZXI6dm9pZCAwLGNvbXBpbGVyT3B0aW9uczp7fX0sbWl4aW5zOltdLGNvbXBvbmVudHM6e30sZGlyZWN0aXZlczp7fSxwcm92aWRlczpPYmplY3QuY3JlYXRlKG51bGwpLG9wdGlvbnNDYWNoZTpuZXcgV2Vha01hcCxwcm9wc0NhY2hlOm5ldyBXZWFrTWFwLGVtaXRzQ2FjaGU6bmV3IFdlYWtNYXB9fXZhciBpaT0wO2Z1bmN0aW9uIGFpKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKG4scj1udWxsKXtoKG4pfHwobj1zKHt9LG4pKSxyIT1udWxsJiYhdihyKSYmKHI9bnVsbCk7bGV0IGk9cmkoKSxhPW5ldyBXZWFrU2V0LG89W10sYz0hMSxsPWkuYXBwPXtfdWlkOmlpKyssX2NvbXBvbmVudDpuLF9wcm9wczpyLF9jb250YWluZXI6bnVsbCxfY29udGV4dDppLF9pbnN0YW5jZTpudWxsLHZlcnNpb246V2EsZ2V0IGNvbmZpZygpe3JldHVybiBpLmNvbmZpZ30sc2V0IGNvbmZpZyhlKXt9LHVzZShlLC4uLnQpe3JldHVybiBhLmhhcyhlKXx8KGUmJmgoZS5pbnN0YWxsKT8oYS5hZGQoZSksZS5pbnN0YWxsKGwsLi4udCkpOmgoZSkmJihhLmFkZChlKSxlKGwsLi4udCkpKSxsfSxtaXhpbihlKXtyZXR1cm4gaS5taXhpbnMuaW5jbHVkZXMoZSl8fGkubWl4aW5zLnB1c2goZSksbH0sY29tcG9uZW50KGUsdCl7cmV0dXJuIHQ/KGkuY29tcG9uZW50c1tlXT10LGwpOmkuY29tcG9uZW50c1tlXX0sZGlyZWN0aXZlKGUsdCl7cmV0dXJuIHQ/KGkuZGlyZWN0aXZlc1tlXT10LGwpOmkuZGlyZWN0aXZlc1tlXX0sbW91bnQoYSxvLHMpe2lmKCFjKXtsZXQgdT1sLl9jZVZOb2RlfHxRKG4scik7cmV0dXJuIHUuYXBwQ29udGV4dD1pLHM9PT0hMD9zPWBzdmdgOnM9PT0hMSYmKHM9dm9pZCAwKSxvJiZ0P3QodSxhKTplKHUsYSxzKSxjPSEwLGwuX2NvbnRhaW5lcj1hLGEuX192dWVfYXBwX189bCx6YSh1LmNvbXBvbmVudCl9fSxvblVubW91bnQoZSl7by5wdXNoKGUpfSx1bm1vdW50KCl7YyYmKFYobyxsLl9pbnN0YW5jZSwxNiksZShudWxsLGwuX2NvbnRhaW5lciksZGVsZXRlIGwuX2NvbnRhaW5lci5fX3Z1ZV9hcHBfXyl9LHByb3ZpZGUoZSx0KXtyZXR1cm4gaS5wcm92aWRlc1tlXT10LGx9LHJ1bldpdGhDb250ZXh0KGUpe2xldCB0PW9pO29pPWw7dHJ5e3JldHVybiBlKCl9ZmluYWxseXtvaT10fX19O3JldHVybiBsfX12YXIgb2k9bnVsbCxzaT0oZSx0KT0+dD09PWBtb2RlbFZhbHVlYHx8dD09PWBtb2RlbC12YWx1ZWA/ZS5tb2RlbE1vZGlmaWVyczplW2Ake3R9TW9kaWZpZXJzYF18fGVbYCR7RSh0KX1Nb2RpZmllcnNgXXx8ZVtgJHtEKHQpfU1vZGlmaWVyc2BdO2Z1bmN0aW9uIGNpKGUsbiwuLi5yKXtpZihlLmlzVW5tb3VudGVkKXJldHVybjtsZXQgaT1lLnZub2RlLnByb3BzfHx0LGE9cixvPW4uc3RhcnRzV2l0aChgdXBkYXRlOmApLHM9byYmc2koaSxuLnNsaWNlKDcpKTtzJiYocy50cmltJiYoYT1yLm1hcChlPT5nKGUpP2UudHJpbSgpOmUpKSxzLm51bWJlciYmKGE9ci5tYXAob2UpKSk7bGV0IGMsbD1pW2M9aWUobildfHxpW2M9aWUoRShuKSldOyFsJiZvJiYobD1pW2M9aWUoRChuKSldKSxsJiZWKGwsZSw2LGEpO2xldCB1PWlbYytgT25jZWBdO2lmKHUpe2lmKCFlLmVtaXR0ZWQpZS5lbWl0dGVkPXt9O2Vsc2UgaWYoZS5lbWl0dGVkW2NdKXJldHVybjtlLmVtaXR0ZWRbY109ITAsVih1LGUsNixhKX19dmFyIGxpPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHVpKGUsdCxuPSExKXtsZXQgcj1uP2xpOnQuZW1pdHNDYWNoZSxpPXIuZ2V0KGUpO2lmKGkhPT12b2lkIDApcmV0dXJuIGk7bGV0IGE9ZS5lbWl0cyxvPXt9LGM9ITE7aWYoIWgoZSkpe2xldCByPWU9PntsZXQgbj11aShlLHQsITApO24mJihjPSEwLHMobyxuKSl9OyFuJiZ0Lm1peGlucy5sZW5ndGgmJnQubWl4aW5zLmZvckVhY2gociksZS5leHRlbmRzJiZyKGUuZXh0ZW5kcyksZS5taXhpbnMmJmUubWl4aW5zLmZvckVhY2gocil9cmV0dXJuIWEmJiFjPyh2KGUpJiZyLnNldChlLG51bGwpLG51bGwpOihkKGEpP2EuZm9yRWFjaChlPT5vW2VdPW51bGwpOnMobyxhKSx2KGUpJiZyLnNldChlLG8pLG8pfWZ1bmN0aW9uIGRpKGUsdCl7cmV0dXJuIWV8fCFhKHQpPyExOih0PXQuc2xpY2UoMiksdD10PT09YE9uY2VgP3Q6dC5yZXBsYWNlKC9PbmNlJC8sYGApLHUoZSx0WzBdLnRvTG93ZXJDYXNlKCkrdC5zbGljZSgxKSl8fHUoZSxEKHQpKXx8dShlLHQpKX1mdW5jdGlvbiBmaShlKXtsZXR7dHlwZTp0LHZub2RlOm4scHJveHk6cix3aXRoUHJveHk6aSxwcm9wc09wdGlvbnM6W2FdLHNsb3RzOnMsYXR0cnM6YyxlbWl0OmwscmVuZGVyOnUscmVuZGVyQ2FjaGU6ZCxwcm9wczpmLGRhdGE6cCxzZXR1cFN0YXRlOm0sY3R4OmgsaW5oZXJpdEF0dHJzOmd9PWUsXz1ibihlKSx2LHk7dHJ5e2lmKG4uc2hhcGVGbGFnJjQpe2xldCBlPWl8fHIsdD1lO3Y9Z2EodS5jYWxsKHQsZSxkLGYsbSxwLGgpKSx5PWN9ZWxzZXtsZXQgZT10O3Y9Z2EoZS5sZW5ndGg+MT9lKGYse2F0dHJzOmMsc2xvdHM6cyxlbWl0Omx9KTplKGYsbnVsbCkpLHk9dC5wcm9wcz9jOnBpKGMpfX1jYXRjaCh0KXtaaS5sZW5ndGg9MCxubih0LGUsMSksdj1RKFgpfWxldCBiPXY7aWYoeSYmZyE9PSExKXtsZXQgZT1PYmplY3Qua2V5cyh5KSx7c2hhcGVGbGFnOnR9PWI7ZS5sZW5ndGgmJnQmNyYmKGEmJmUuc29tZShvKSYmKHk9bWkoeSxhKSksYj1mYShiLHksITEsITApKX1yZXR1cm4gbi5kaXJzJiYoYj1mYShiLG51bGwsITEsITApLGIuZGlycz1iLmRpcnM/Yi5kaXJzLmNvbmNhdChuLmRpcnMpOm4uZGlycyksbi50cmFuc2l0aW9uJiZpcihiLG4udHJhbnNpdGlvbiksdj1iLGJuKF8pLHZ9dmFyIHBpPWU9PntsZXQgdDtmb3IobGV0IG4gaW4gZSkobj09PWBjbGFzc2B8fG49PT1gc3R5bGVgfHxhKG4pKSYmKCh0fHw9e30pW25dPWVbbl0pO3JldHVybiB0fSxtaT0oZSx0KT0+e2xldCBuPXt9O2ZvcihsZXQgciBpbiBlKSghbyhyKXx8IShyLnNsaWNlKDkpaW4gdCkpJiYobltyXT1lW3JdKTtyZXR1cm4gbn07ZnVuY3Rpb24gaGkoZSx0LG4pe2xldHtwcm9wczpyLGNoaWxkcmVuOmksY29tcG9uZW50OmF9PWUse3Byb3BzOm8sY2hpbGRyZW46cyxwYXRjaEZsYWc6Y309dCxsPWEuZW1pdHNPcHRpb25zO2lmKHQuZGlyc3x8dC50cmFuc2l0aW9uKXJldHVybiEwO2lmKG4mJmM+PTApe2lmKGMmMTAyNClyZXR1cm4hMDtpZihjJjE2KXJldHVybiByP2dpKHIsbyxsKTohIW87aWYoYyY4KXtsZXQgZT10LmR5bmFtaWNQcm9wcztmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7bGV0IG49ZVt0XTtpZihfaShvLHIsbikmJiFkaShsLG4pKXJldHVybiEwfX19ZWxzZSByZXR1cm4oaXx8cykmJighc3x8IXMuJHN0YWJsZSk/ITA6cj09PW8/ITE6cj9vP2dpKHIsbyxsKTohMDohIW87cmV0dXJuITF9ZnVuY3Rpb24gZ2koZSx0LG4pe2xldCByPU9iamVjdC5rZXlzKHQpO2lmKHIubGVuZ3RoIT09T2JqZWN0LmtleXMoZSkubGVuZ3RoKXJldHVybiEwO2ZvcihsZXQgaT0wO2k8ci5sZW5ndGg7aSsrKXtsZXQgYT1yW2ldO2lmKF9pKHQsZSxhKSYmIWRpKG4sYSkpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gX2koZSx0LG4pe2xldCByPWVbbl0saT10W25dO3JldHVybiBuPT09YHN0eWxlYCYmdihyKSYmdihpKT8heGUocixpKTpyIT09aX1mdW5jdGlvbiB2aSh7dm5vZGU6ZSxwYXJlbnQ6dCxzdXNwZW5zZTpufSxyKXtmb3IoO3Q7KXtsZXQgbj10LnN1YlRyZWU7aWYobi5zdXNwZW5zZSYmbi5zdXNwZW5zZS5hY3RpdmVCcmFuY2g9PT1lJiYobi5zdXNwZW5zZS52bm9kZS5lbD1uLmVsPXIsZT1uKSxuPT09ZSkoZT10LnZub2RlKS5lbD1yLHQ9dC5wYXJlbnQ7ZWxzZSBicmVha31uJiZuLmFjdGl2ZUJyYW5jaD09PWUmJihuLnZub2RlLmVsPXIpfXZhciB5aT17fSxiaT0oKT0+T2JqZWN0LmNyZWF0ZSh5aSkseGk9ZT0+T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09eWk7ZnVuY3Rpb24gU2koZSx0LG4scj0hMSl7bGV0IGk9e30sYT1iaSgpO2UucHJvcHNEZWZhdWx0cz1PYmplY3QuY3JlYXRlKG51bGwpLHdpKGUsdCxpLGEpO2ZvcihsZXQgdCBpbiBlLnByb3BzT3B0aW9uc1swXSl0IGluIGl8fChpW3RdPXZvaWQgMCk7bj9lLnByb3BzPXI/aTpNdChpKTplLnR5cGUucHJvcHM/ZS5wcm9wcz1pOmUucHJvcHM9YSxlLmF0dHJzPWF9ZnVuY3Rpb24gQ2koZSx0LG4scil7bGV0e3Byb3BzOmksYXR0cnM6YSx2bm9kZTp7cGF0Y2hGbGFnOm99fT1lLHM9UihpKSxbY109ZS5wcm9wc09wdGlvbnMsbD0hMTtpZigocnx8bz4wKSYmIShvJjE2KSl7aWYobyY4KXtsZXQgbj1lLnZub2RlLmR5bmFtaWNQcm9wcztmb3IobGV0IHI9MDtyPG4ubGVuZ3RoO3IrKyl7bGV0IG89bltyXTtpZihkaShlLmVtaXRzT3B0aW9ucyxvKSljb250aW51ZTtsZXQgZD10W29dO2lmKGMpaWYodShhLG8pKWQhPT1hW29dJiYoYVtvXT1kLGw9ITApO2Vsc2V7bGV0IHQ9RShvKTtpW3RdPVRpKGMscyx0LGQsZSwhMSl9ZWxzZSBkIT09YVtvXSYmKGFbb109ZCxsPSEwKX19fWVsc2V7d2koZSx0LGksYSkmJihsPSEwKTtsZXQgcjtmb3IobGV0IGEgaW4gcykoIXR8fCF1KHQsYSkmJigocj1EKGEpKT09PWF8fCF1KHQscikpKSYmKGM/biYmKG5bYV0hPT12b2lkIDB8fG5bcl0hPT12b2lkIDApJiYoaVthXT1UaShjLHMsYSx2b2lkIDAsZSwhMCkpOmRlbGV0ZSBpW2FdKTtpZihhIT09cylmb3IobGV0IGUgaW4gYSkoIXR8fCF1KHQsZSkpJiYoZGVsZXRlIGFbZV0sbD0hMCl9bCYmUWUoZS5hdHRycyxgc2V0YCxgYCl9ZnVuY3Rpb24gd2koZSxuLHIsaSl7bGV0W2Esb109ZS5wcm9wc09wdGlvbnMscz0hMSxjO2lmKG4pZm9yKGxldCB0IGluIG4pe2lmKFQodCkpY29udGludWU7bGV0IGw9blt0XSxkO2EmJnUoYSxkPUUodCkpPyFvfHwhby5pbmNsdWRlcyhkKT9yW2RdPWw6KGN8fD17fSlbZF09bDpkaShlLmVtaXRzT3B0aW9ucyx0KXx8KCEodCBpbiBpKXx8bCE9PWlbdF0pJiYoaVt0XT1sLHM9ITApfWlmKG8pe2xldCBuPVIociksaT1jfHx0O2ZvcihsZXQgdD0wO3Q8by5sZW5ndGg7dCsrKXtsZXQgcz1vW3RdO3Jbc109VGkoYSxuLHMsaVtzXSxlLCF1KGkscykpfX1yZXR1cm4gc31mdW5jdGlvbiBUaShlLHQsbixyLGksYSl7bGV0IG89ZVtuXTtpZihvIT1udWxsKXtsZXQgZT11KG8sYGRlZmF1bHRgKTtpZihlJiZyPT09dm9pZCAwKXtsZXQgZT1vLmRlZmF1bHQ7aWYoby50eXBlIT09RnVuY3Rpb24mJiFvLnNraXBGYWN0b3J5JiZoKGUpKXtsZXR7cHJvcHNEZWZhdWx0czphfT1pO2lmKG4gaW4gYSlyPWFbbl07ZWxzZXtsZXQgbz1EYShpKTtyPWFbbl09ZS5jYWxsKG51bGwsdCksbygpfX1lbHNlIHI9ZTtpLmNlJiZpLmNlLl9zZXRQcm9wKG4scil9b1swXSYmKGEmJiFlP3I9ITE6b1sxXSYmKHI9PT1gYHx8cj09PUQobikpJiYocj0hMCkpfXJldHVybiByfXZhciBFaT1uZXcgV2Vha01hcDtmdW5jdGlvbiBEaShlLHIsaT0hMSl7bGV0IGE9aT9FaTpyLnByb3BzQ2FjaGUsbz1hLmdldChlKTtpZihvKXJldHVybiBvO2xldCBjPWUucHJvcHMsbD17fSxmPVtdLHA9ITE7aWYoIWgoZSkpe2xldCB0PWU9PntwPSEwO2xldFt0LG5dPURpKGUsciwhMCk7cyhsLHQpLG4mJmYucHVzaCguLi5uKX07IWkmJnIubWl4aW5zLmxlbmd0aCYmci5taXhpbnMuZm9yRWFjaCh0KSxlLmV4dGVuZHMmJnQoZS5leHRlbmRzKSxlLm1peGlucyYmZS5taXhpbnMuZm9yRWFjaCh0KX1pZighYyYmIXApcmV0dXJuIHYoZSkmJmEuc2V0KGUsbiksbjtpZihkKGMpKWZvcihsZXQgZT0wO2U8Yy5sZW5ndGg7ZSsrKXtsZXQgbj1FKGNbZV0pO09pKG4pJiYobFtuXT10KX1lbHNlIGlmKGMpZm9yKGxldCBlIGluIGMpe2xldCB0PUUoZSk7aWYoT2kodCkpe2xldCBuPWNbZV0scj1sW3RdPWQobil8fGgobik/e3R5cGU6bn06cyh7fSxuKSxpPXIudHlwZSxhPSExLG89ITA7aWYoZChpKSlmb3IobGV0IGU9MDtlPGkubGVuZ3RoOysrZSl7bGV0IHQ9aVtlXSxuPWgodCkmJnQubmFtZTtpZihuPT09YEJvb2xlYW5gKXthPSEwO2JyZWFrfWVsc2Ugbj09PWBTdHJpbmdgJiYobz0hMSl9ZWxzZSBhPWgoaSkmJmkubmFtZT09PWBCb29sZWFuYDtyWzBdPWEsclsxXT1vLChhfHx1KHIsYGRlZmF1bHRgKSkmJmYucHVzaCh0KX19bGV0IG09W2wsZl07cmV0dXJuIHYoZSkmJmEuc2V0KGUsbSksbX1mdW5jdGlvbiBPaShlKXtyZXR1cm4gZVswXSE9PWAkYCYmIVQoZSl9dmFyIGtpPWU9PmU9PT1gX2B8fGU9PT1gX2N0eGB8fGU9PT1gJHN0YWJsZWAsQWk9ZT0+ZChlKT9lLm1hcChnYSk6W2dhKGUpXSxqaT0oZSx0LG4pPT57aWYodC5fbilyZXR1cm4gdDtsZXQgcj14bigoLi4uZSk9PkFpKHQoLi4uZSkpLG4pO3JldHVybiByLl9jPSExLHJ9LE1pPShlLHQsbik9PntsZXQgcj1lLl9jdHg7Zm9yKGxldCBuIGluIGUpe2lmKGtpKG4pKWNvbnRpbnVlO2xldCBpPWVbbl07aWYoaChpKSl0W25dPWppKG4saSxyKTtlbHNlIGlmKGkhPW51bGwpe2xldCBlPUFpKGkpO3Rbbl09KCk9PmV9fX0sTmk9KGUsdCk9PntsZXQgbj1BaSh0KTtlLnNsb3RzLmRlZmF1bHQ9KCk9Pm59LFBpPShlLHQsbik9Pntmb3IobGV0IHIgaW4gdCkobnx8IWtpKHIpKSYmKGVbcl09dFtyXSl9LEZpPShlLHQsbik9PntsZXQgcj1lLnNsb3RzPWJpKCk7aWYoZS52bm9kZS5zaGFwZUZsYWcmMzIpe2xldCBlPXQuXztlPyhQaShyLHQsbiksbiYmayhyLGBfYCxlLCEwKSk6TWkodCxyKX1lbHNlIHQmJk5pKGUsdCl9LElpPShlLG4scik9PntsZXR7dm5vZGU6aSxzbG90czphfT1lLG89ITAscz10O2lmKGkuc2hhcGVGbGFnJjMyKXtsZXQgZT1uLl87ZT9yJiZlPT09MT9vPSExOlBpKGEsbixyKToobz0hbi4kc3RhYmxlLE1pKG4sYSkpLHM9bn1lbHNlIG4mJihOaShlLG4pLHM9e2RlZmF1bHQ6MX0pO2lmKG8pZm9yKGxldCBlIGluIGEpIWtpKGUpJiZzW2VdPT1udWxsJiZkZWxldGUgYVtlXX0sSj1KaTtmdW5jdGlvbiBMaShlKXtyZXR1cm4gUmkoZSl9ZnVuY3Rpb24gUmkoZSxpKXtsZXQgYT1sZSgpO2EuX19WVUVfXz0hMDtsZXR7aW5zZXJ0Om8scmVtb3ZlOnMscGF0Y2hQcm9wOmMsY3JlYXRlRWxlbWVudDpsLGNyZWF0ZVRleHQ6dSxjcmVhdGVDb21tZW50OmQsc2V0VGV4dDpmLHNldEVsZW1lbnRUZXh0OnAscGFyZW50Tm9kZTptLG5leHRTaWJsaW5nOmgsc2V0U2NvcGVJZDpnPXIsaW5zZXJ0U3RhdGljQ29udGVudDpffT1lLHY9KGUsdCxuLHI9bnVsbCxpPW51bGwsYT1udWxsLG89dm9pZCAwLHM9bnVsbCxjPSEhdC5keW5hbWljQ2hpbGRyZW4pPT57aWYoZT09PXQpcmV0dXJuO2UmJiFvYShlLHQpJiYocj15ZShlKSxtZShlLGksYSwhMCksZT1udWxsKSx0LnBhdGNoRmxhZz09PS0yJiYoYz0hMSx0LmR5bmFtaWNDaGlsZHJlbj1udWxsKTtsZXR7dHlwZTpsLHJlZjp1LHNoYXBlRmxhZzpkfT10O3N3aXRjaChsKXtjYXNlIFlpOnkoZSx0LG4scik7YnJlYWs7Y2FzZSBYOmIoZSx0LG4scik7YnJlYWs7Y2FzZSBYaTplPz94KHQsbixyLG8pO2JyZWFrO2Nhc2UgWTppZShlLHQsbixyLGksYSxvLHMsYyk7YnJlYWs7ZGVmYXVsdDpkJjE/dyhlLHQsbixyLGksYSxvLHMsYyk6ZCY2P08oZSx0LG4scixpLGEsbyxzLGMpOihkJjY0fHxkJjEyOCkmJmwucHJvY2VzcyhlLHQsbixyLGksYSxvLHMsYyxTZSl9dSE9bnVsbCYmaT91cih1LGUmJmUucmVmLGEsdHx8ZSwhdCk6dT09bnVsbCYmZSYmZS5yZWYhPW51bGwmJnVyKGUucmVmLG51bGwsYSxlLCEwKX0seT0oZSx0LG4scik9PntpZihlPT1udWxsKW8odC5lbD11KHQuY2hpbGRyZW4pLG4scik7ZWxzZXtsZXQgbj10LmVsPWUuZWw7dC5jaGlsZHJlbiE9PWUuY2hpbGRyZW4mJmYobix0LmNoaWxkcmVuKX19LGI9KGUsdCxuLHIpPT57ZT09bnVsbD9vKHQuZWw9ZCh0LmNoaWxkcmVufHxgYCksbixyKTp0LmVsPWUuZWx9LHg9KGUsdCxuLHIpPT57W2UuZWwsZS5hbmNob3JdPV8oZS5jaGlsZHJlbix0LG4scixlLmVsLGUuYW5jaG9yKX0sUz0oe2VsOmUsYW5jaG9yOnR9LG4scik9PntsZXQgaTtmb3IoO2UmJmUhPT10OylpPWgoZSksbyhlLG4sciksZT1pO28odCxuLHIpfSxDPSh7ZWw6ZSxhbmNob3I6dH0pPT57bGV0IG47Zm9yKDtlJiZlIT09dDspbj1oKGUpLHMoZSksZT1uO3ModCl9LHc9KGUsdCxuLHIsaSxhLG8scyxjKT0+e2lmKHQudHlwZT09PWBzdmdgP289YHN2Z2A6dC50eXBlPT09YG1hdGhgJiYobz1gbWF0aG1sYCksZT09bnVsbCllZSh0LG4scixpLGEsbyxzLGMpO2Vsc2V7bGV0IG49ZS5lbCYmZS5lbC5faXNWdWVDRT9lLmVsOm51bGw7dHJ5e24mJm4uX2JlZ2luUGF0Y2goKSxuZShlLHQsaSxhLG8scyxjKX1maW5hbGx5e24mJm4uX2VuZFBhdGNoKCl9fX0sZWU9KGUsdCxuLHIsaSxhLHMsdSk9PntsZXQgZCxmLHtwcm9wczptLHNoYXBlRmxhZzpoLHRyYW5zaXRpb246ZyxkaXJzOl99PWU7aWYoZD1lLmVsPWwoZS50eXBlLGEsbSYmbS5pcyxtKSxoJjg/cChkLGUuY2hpbGRyZW4pOmgmMTYmJkUoZS5jaGlsZHJlbixkLG51bGwscixpLHppKGUsYSkscyx1KSxfJiZDbihlLG51bGwscixgY3JlYXRlZGApLHRlKGQsZSxlLnNjb3BlSWQscyxyKSxtKXtmb3IobGV0IGUgaW4gbSllIT09YHZhbHVlYCYmIVQoZSkmJmMoZCxlLG51bGwsbVtlXSxhLHIpO2B2YWx1ZWBpbiBtJiZjKGQsYHZhbHVlYCxudWxsLG0udmFsdWUsYSksKGY9bS5vblZub2RlQmVmb3JlTW91bnQpJiZiYShmLHIsZSl9XyYmQ24oZSxudWxsLHIsYGJlZm9yZU1vdW50YCk7bGV0IHY9VmkoaSxnKTt2JiZnLmJlZm9yZUVudGVyKGQpLG8oZCx0LG4pLCgoZj1tJiZtLm9uVm5vZGVNb3VudGVkKXx8dnx8XykmJkooKCk9Pnt0cnl7ZiYmYmEoZixyLGUpLHYmJmcuZW50ZXIoZCksXyYmQ24oZSxudWxsLHIsYG1vdW50ZWRgKX1maW5hbGx5e319LGkpfSx0ZT0oZSx0LG4scixpKT0+e2lmKG4mJmcoZSxuKSxyKWZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKWcoZSxyW3RdKTtpZihpKXtsZXQgbj1pLnN1YlRyZWU7aWYodD09PW58fHFpKG4udHlwZSkmJihuLnNzQ29udGVudD09PXR8fG4uc3NGYWxsYmFjaz09PXQpKXtsZXQgdD1pLnZub2RlO3RlKGUsdCx0LnNjb3BlSWQsdC5zbG90U2NvcGVJZHMsaS5wYXJlbnQpfX19LEU9KGUsdCxuLHIsaSxhLG8scyxjPTApPT57Zm9yKGxldCBsPWM7bDxlLmxlbmd0aDtsKyspdihudWxsLGVbbF09cz9fYShlW2xdKTpnYShlW2xdKSx0LG4scixpLGEsbyxzKX0sbmU9KGUsbixyLGksYSxvLHMpPT57bGV0IGw9bi5lbD1lLmVsLHtwYXRjaEZsYWc6dSxkeW5hbWljQ2hpbGRyZW46ZCxkaXJzOmZ9PW47dXw9ZS5wYXRjaEZsYWcmMTY7bGV0IG09ZS5wcm9wc3x8dCxoPW4ucHJvcHN8fHQsZztpZihyJiZCaShyLCExKSwoZz1oLm9uVm5vZGVCZWZvcmVVcGRhdGUpJiZiYShnLHIsbixlKSxmJiZDbihuLGUscixgYmVmb3JlVXBkYXRlYCksciYmQmkociwhMCksZCYmKCFlLmR5bmFtaWNDaGlsZHJlbnx8ZS5keW5hbWljQ2hpbGRyZW4ubGVuZ3RoIT09ZC5sZW5ndGgpJiYodT0wLHM9ITEsZD1udWxsKSwobS5pbm5lckhUTUwmJmguaW5uZXJIVE1MPT1udWxsfHxtLnRleHRDb250ZW50JiZoLnRleHRDb250ZW50PT1udWxsKSYmcChsLGBgKSxkP0QoZS5keW5hbWljQ2hpbGRyZW4sZCxsLHIsaSx6aShuLGEpLG8pOnN8fHVlKGUsbixsLG51bGwscixpLHppKG4sYSksbywhMSksdT4wKXtpZih1JjE2KXJlKGwsbSxoLHIsYSk7ZWxzZSBpZih1JjImJm0uY2xhc3MhPT1oLmNsYXNzJiZjKGwsYGNsYXNzYCxudWxsLGguY2xhc3MsYSksdSY0JiZjKGwsYHN0eWxlYCxtLnN0eWxlLGguc3R5bGUsYSksdSY4KXtsZXQgZT1uLmR5bmFtaWNQcm9wcztmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7bGV0IG49ZVt0XSxpPW1bbl0sbz1oW25dOyhvIT09aXx8bj09PWB2YWx1ZWApJiZjKGwsbixpLG8sYSxyKX19dSYxJiZlLmNoaWxkcmVuIT09bi5jaGlsZHJlbiYmcChsLG4uY2hpbGRyZW4pfWVsc2UhcyYmZD09bnVsbCYmcmUobCxtLGgscixhKTsoKGc9aC5vblZub2RlVXBkYXRlZCl8fGYpJiZKKCgpPT57ZyYmYmEoZyxyLG4sZSksZiYmQ24obixlLHIsYHVwZGF0ZWRgKX0saSl9LEQ9KGUsdCxuLHIsaSxhLG8pPT57Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspe2xldCBjPWVbc10sbD10W3NdO3YoYyxsLGMuZWwmJihjLnR5cGU9PT1ZfHwhb2EoYyxsKXx8Yy5zaGFwZUZsYWcmMTk4KT9tKGMuZWwpOm4sbnVsbCxyLGksYSxvLCEwKX19LHJlPShlLG4scixpLGEpPT57aWYobiE9PXIpe2lmKG4hPT10KWZvcihsZXQgdCBpbiBuKSFUKHQpJiYhKHQgaW4gcikmJmMoZSx0LG5bdF0sbnVsbCxhLGkpO2ZvcihsZXQgdCBpbiByKXtpZihUKHQpKWNvbnRpbnVlO2xldCBvPXJbdF0scz1uW3RdO28hPT1zJiZ0IT09YHZhbHVlYCYmYyhlLHQscyxvLGEsaSl9YHZhbHVlYGluIHImJmMoZSxgdmFsdWVgLG4udmFsdWUsci52YWx1ZSxhKX19LGllPShlLHQsbixyLGksYSxzLGMsbCk9PntsZXQgZD10LmVsPWU/ZS5lbDp1KGBgKSxmPXQuYW5jaG9yPWU/ZS5hbmNob3I6dShgYCkse3BhdGNoRmxhZzpwLGR5bmFtaWNDaGlsZHJlbjptLHNsb3RTY29wZUlkczpofT10O2gmJihjPWM/Yy5jb25jYXQoaCk6aCksZT09bnVsbD8obyhkLG4sciksbyhmLG4sciksRSh0LmNoaWxkcmVufHxbXSxuLGYsaSxhLHMsYyxsKSk6cD4wJiZwJjY0JiZtJiZlLmR5bmFtaWNDaGlsZHJlbiYmZS5keW5hbWljQ2hpbGRyZW4ubGVuZ3RoPT09bS5sZW5ndGg/KEQoZS5keW5hbWljQ2hpbGRyZW4sbSxuLGksYSxzLGMpLCh0LmtleSE9bnVsbHx8aSYmdD09PWkuc3ViVHJlZSkmJkhpKGUsdCwhMCkpOnVlKGUsdCxuLGYsaSxhLHMsYyxsKX0sTz0oZSx0LG4scixpLGEsbyxzLGMpPT57dC5zbG90U2NvcGVJZHM9cyxlPT1udWxsP3Quc2hhcGVGbGFnJjUxMj9pLmN0eC5hY3RpdmF0ZSh0LG4scixvLGMpOmsodCxuLHIsaSxhLG8sYyk6b2UoZSx0LGMpfSxrPShlLHQsbixyLGksYSxvKT0+e2xldCBzPWUuY29tcG9uZW50PUNhKGUscixpKTtpZihwcihlKSYmKHMuY3R4LnJlbmRlcmVyPVNlKSxqYShzLCExLG8pLHMuYXN5bmNEZXApe2lmKGkmJmkucmVnaXN0ZXJEZXAocyxzZSxvKSwhZS5lbCl7bGV0IHI9cy5zdWJUcmVlPVEoWCk7YihudWxsLHIsdCxuKSxlLnBsYWNlaG9sZGVyPXIuZWx9fWVsc2Ugc2UocyxlLHQsbixpLGEsbyl9LG9lPShlLHQsbik9PntsZXQgcj10LmNvbXBvbmVudD1lLmNvbXBvbmVudDtpZihoaShlLHQsbikpaWYoci5hc3luY0RlcCYmIXIuYXN5bmNSZXNvbHZlZCl7Y2Uocix0LG4pO3JldHVybn1lbHNlIHIubmV4dD10LHIudXBkYXRlKCk7ZWxzZSB0LmVsPWUuZWwsci52bm9kZT10fSxzZT0oZSx0LG4scixpLGEsbyk9PntsZXQgcz0oKT0+e2lmKGUuaXNNb3VudGVkKXtsZXR7bmV4dDp0LGJ1Om4sdTpyLHBhcmVudDpzLHZub2RlOmN9PWU7e2xldCBuPVdpKGUpO2lmKG4pe3QmJih0LmVsPWMuZWwsY2UoZSx0LG8pKSxuLmFzeW5jRGVwLnRoZW4oKCk9PntKKCgpPT57ZS5pc1VubW91bnRlZHx8bCgpfSxpKX0pO3JldHVybn19bGV0IHU9dCxkO0JpKGUsITEpLHQ/KHQuZWw9Yy5lbCxjZShlLHQsbykpOnQ9YyxuJiZhZShuKSwoZD10LnByb3BzJiZ0LnByb3BzLm9uVm5vZGVCZWZvcmVVcGRhdGUpJiZiYShkLHMsdCxjKSxCaShlLCEwKTtsZXQgZj1maShlKSxwPWUuc3ViVHJlZTtlLnN1YlRyZWU9Zix2KHAsZixtKHAuZWwpLHllKHApLGUsaSxhKSx0LmVsPWYuZWwsdT09PW51bGwmJnZpKGUsZi5lbCksciYmSihyLGkpLChkPXQucHJvcHMmJnQucHJvcHMub25Wbm9kZVVwZGF0ZWQpJiZKKCgpPT5iYShkLHMsdCxjKSxpKX1lbHNle2xldCBvLHtlbDpzLHByb3BzOmN9PXQse2JtOmwsbTp1LHBhcmVudDpkLHJvb3Q6Zix0eXBlOnB9PWUsbT1mcih0KTtpZihCaShlLCExKSxsJiZhZShsKSwhbSYmKG89YyYmYy5vblZub2RlQmVmb3JlTW91bnQpJiZiYShvLGQsdCksQmkoZSwhMCkscyYmd2Upe2xldCB0PSgpPT57ZS5zdWJUcmVlPWZpKGUpLHdlKHMsZS5zdWJUcmVlLGUsaSxudWxsKX07bSYmcC5fX2FzeW5jSHlkcmF0ZT9wLl9fYXN5bmNIeWRyYXRlKHMsZSx0KTp0KCl9ZWxzZXtmLmNlJiZmLmNlLl9oYXNTaGFkb3dSb290KCkmJmYuY2UuX2luamVjdENoaWxkU3R5bGUocCxlLnBhcmVudD9lLnBhcmVudC50eXBlOnZvaWQgMCk7bGV0IG89ZS5zdWJUcmVlPWZpKGUpO3YobnVsbCxvLG4scixlLGksYSksdC5lbD1vLmVsfWlmKHUmJkoodSxpKSwhbSYmKG89YyYmYy5vblZub2RlTW91bnRlZCkpe2xldCBlPXQ7SigoKT0+YmEobyxkLGUpLGkpfSh0LnNoYXBlRmxhZyYyNTZ8fGQmJmZyKGQudm5vZGUpJiZkLnZub2RlLnNoYXBlRmxhZyYyNTYpJiZlLmEmJkooZS5hLGkpLGUuaXNNb3VudGVkPSEwLHQ9bj1yPW51bGx9fTtlLnNjb3BlLm9uKCk7bGV0IGM9ZS5lZmZlY3Q9bmV3IGtlKHMpO2Uuc2NvcGUub2ZmKCk7bGV0IGw9ZS51cGRhdGU9Yy5ydW4uYmluZChjKSx1PWUuam9iPWMucnVuSWZEaXJ0eS5iaW5kKGMpO3UuaT1lLHUuaWQ9ZS51aWQsYy5zY2hlZHVsZXI9KCk9PmZuKHUpLEJpKGUsITApLGwoKX0sY2U9KGUsdCxuKT0+e3QuY29tcG9uZW50PWU7bGV0IHI9ZS52bm9kZS5wcm9wcztlLnZub2RlPXQsZS5uZXh0PW51bGwsQ2koZSx0LnByb3BzLHIsbiksSWkoZSx0LmNoaWxkcmVuLG4pLE4oKSxobihlKSxQKCl9LHVlPShlLHQsbixyLGksYSxvLHMsYz0hMSk9PntsZXQgbD1lJiZlLmNoaWxkcmVuLHU9ZT9lLnNoYXBlRmxhZzowLGQ9dC5jaGlsZHJlbix7cGF0Y2hGbGFnOmYsc2hhcGVGbGFnOm19PXQ7aWYoZj4wKXtpZihmJjEyOCl7ZmUobCxkLG4scixpLGEsbyxzLGMpO3JldHVybn1lbHNlIGlmKGYmMjU2KXtkZShsLGQsbixyLGksYSxvLHMsYyk7cmV0dXJufX1tJjg/KHUmMTYmJnZlKGwsaSxhKSxkIT09bCYmcChuLGQpKTp1JjE2P20mMTY/ZmUobCxkLG4scixpLGEsbyxzLGMpOnZlKGwsaSxhLCEwKToodSY4JiZwKG4sYGApLG0mMTYmJkUoZCxuLHIsaSxhLG8scyxjKSl9LGRlPShlLHQscixpLGEsbyxzLGMsbCk9PntlfHw9bix0fHw9bjtsZXQgdT1lLmxlbmd0aCxkPXQubGVuZ3RoLGY9TWF0aC5taW4odSxkKSxwO2ZvcihwPTA7cDxmO3ArKyl7bGV0IG49dFtwXT1sP19hKHRbcF0pOmdhKHRbcF0pO3YoZVtwXSxuLHIsbnVsbCxhLG8scyxjLGwpfXU+ZD92ZShlLGEsbywhMCwhMSxmKTpFKHQscixpLGEsbyxzLGMsbCxmKX0sZmU9KGUsdCxyLGksYSxvLHMsYyxsKT0+e2xldCB1PTAsZD10Lmxlbmd0aCxmPWUubGVuZ3RoLTEscD1kLTE7Zm9yKDt1PD1mJiZ1PD1wOyl7bGV0IG49ZVt1XSxpPXRbdV09bD9fYSh0W3VdKTpnYSh0W3VdKTtpZihvYShuLGkpKXYobixpLHIsbnVsbCxhLG8scyxjLGwpO2Vsc2UgYnJlYWs7dSsrfWZvcig7dTw9ZiYmdTw9cDspe2xldCBuPWVbZl0saT10W3BdPWw/X2EodFtwXSk6Z2EodFtwXSk7aWYob2EobixpKSl2KG4saSxyLG51bGwsYSxvLHMsYyxsKTtlbHNlIGJyZWFrO2YtLSxwLS19aWYodT5mKXtpZih1PD1wKXtsZXQgZT1wKzEsbj1lPGQ/dFtlXS5lbDppO2Zvcig7dTw9cDspdihudWxsLHRbdV09bD9fYSh0W3VdKTpnYSh0W3VdKSxyLG4sYSxvLHMsYyxsKSx1Kyt9fWVsc2UgaWYodT5wKWZvcig7dTw9ZjspbWUoZVt1XSxhLG8sITApLHUrKztlbHNle2xldCBtPXUsaD11LGc9bmV3IE1hcDtmb3IodT1oO3U8PXA7dSsrKXtsZXQgZT10W3VdPWw/X2EodFt1XSk6Z2EodFt1XSk7ZS5rZXkhPW51bGwmJmcuc2V0KGUua2V5LHUpfWxldCBfLHk9MCxiPXAtaCsxLHg9ITEsUz0wLEM9QXJyYXkoYik7Zm9yKHU9MDt1PGI7dSsrKUNbdV09MDtmb3IodT1tO3U8PWY7dSsrKXtsZXQgbj1lW3VdO2lmKHk+PWIpe21lKG4sYSxvLCEwKTtjb250aW51ZX1sZXQgaTtpZihuLmtleSE9bnVsbClpPWcuZ2V0KG4ua2V5KTtlbHNlIGZvcihfPWg7Xzw9cDtfKyspaWYoQ1tfLWhdPT09MCYmb2Eobix0W19dKSl7aT1fO2JyZWFrfWk9PT12b2lkIDA/bWUobixhLG8sITApOihDW2ktaF09dSsxLGk+PVM/Uz1pOng9ITAsdihuLHRbaV0scixudWxsLGEsbyxzLGMsbCkseSsrKX1sZXQgdz14P1VpKEMpOm47Zm9yKF89dy5sZW5ndGgtMSx1PWItMTt1Pj0wO3UtLSl7bGV0IGU9aCt1LG49dFtlXSxmPXRbZSsxXSxwPWUrMTxkP2YuZWx8fEtpKGYpOmk7Q1t1XT09PTA/dihudWxsLG4scixwLGEsbyxzLGMsbCk6eCYmKF88MHx8dSE9PXdbX10/cGUobixyLHAsMik6Xy0tKX19fSxwZT0oZSx0LG4scixpPW51bGwpPT57bGV0e2VsOmEsdHlwZTpjLHRyYW5zaXRpb246bCxjaGlsZHJlbjp1LHNoYXBlRmxhZzpkfT1lO2lmKGQmNil7cGUoZS5jb21wb25lbnQuc3ViVHJlZSx0LG4scik7cmV0dXJufWlmKGQmMTI4KXtlLnN1c3BlbnNlLm1vdmUodCxuLHIpO3JldHVybn1pZihkJjY0KXtjLm1vdmUoZSx0LG4sU2UpO3JldHVybn1pZihjPT09WSl7byhhLHQsbik7Zm9yKGxldCBlPTA7ZTx1Lmxlbmd0aDtlKyspcGUodVtlXSx0LG4scik7byhlLmFuY2hvcix0LG4pO3JldHVybn1pZihjPT09WGkpe1MoZSx0LG4pO3JldHVybn1pZihyIT09MiYmZCYxJiZsKWlmKHI9PT0wKWwucGVyc2lzdGVkJiYhYVtHXT9vKGEsdCxuKToobC5iZWZvcmVFbnRlcihhKSxvKGEsdCxuKSxKKCgpPT5sLmVudGVyKGEpLGkpKTtlbHNle2xldHtsZWF2ZTpyLGRlbGF5TGVhdmU6aSxhZnRlckxlYXZlOmN9PWwsdT0oKT0+e2UuY3R4LmlzVW5tb3VudGVkP3MoYSk6byhhLHQsbil9LGQ9KCk9PntsZXQgZT1hLl9pc0xlYXZpbmd8fCEhYVtHXTthLl9pc0xlYXZpbmcmJmFbR10oITApLGwucGVyc2lzdGVkJiYhZT91KCk6cihhLCgpPT57dSgpLGMmJmMoKX0pfTtpP2koYSx1LGQpOmQoKX1lbHNlIG8oYSx0LG4pfSxtZT0oZSx0LG4scj0hMSxpPSExKT0+e2xldHt0eXBlOmEscHJvcHM6byxyZWY6cyxjaGlsZHJlbjpjLGR5bmFtaWNDaGlsZHJlbjpsLHNoYXBlRmxhZzp1LHBhdGNoRmxhZzpkLGRpcnM6ZixjYWNoZUluZGV4OnAsbWVtbzptfT1lO2lmKGQ9PT0tMiYmKGk9ITEpLHMhPW51bGwmJihOKCksdXIocyxudWxsLG4sZSwhMCksUCgpKSxwIT1udWxsJiYodC5yZW5kZXJDYWNoZVtwXT12b2lkIDApLHUmMjU2KXt0LmN0eC5kZWFjdGl2YXRlKGUpO3JldHVybn1sZXQgaD11JjEmJmYsZz0hZnIoZSksXztpZihnJiYoXz1vJiZvLm9uVm5vZGVCZWZvcmVVbm1vdW50KSYmYmEoXyx0LGUpLHUmNilfZShlLmNvbXBvbmVudCxuLHIpO2Vsc2V7aWYodSYxMjgpe2Uuc3VzcGVuc2UudW5tb3VudChuLHIpO3JldHVybn1oJiZDbihlLG51bGwsdCxgYmVmb3JlVW5tb3VudGApLHUmNjQ/ZS50eXBlLnJlbW92ZShlLHQsbixTZSxyKTpsJiYhbC5oYXNPbmNlJiYoYSE9PVl8fGQ+MCYmZCY2NCk/dmUobCx0LG4sITEsITApOihhPT09WSYmZCYzODR8fCFpJiZ1JjE2KSYmdmUoYyx0LG4pLHImJmhlKGUpfWxldCB2PW0hPW51bGwmJnA9PW51bGw7KGcmJihfPW8mJm8ub25Wbm9kZVVubW91bnRlZCl8fGh8fHYpJiZKKCgpPT57XyYmYmEoXyx0LGUpLGgmJkNuKGUsbnVsbCx0LGB1bm1vdW50ZWRgKSx2JiYoZS5lbD1udWxsKX0sbil9LGhlPWU9PntsZXR7dHlwZTp0LGVsOm4sYW5jaG9yOnIsdHJhbnNpdGlvbjppfT1lO2lmKHQ9PT1ZKXtnZShuLHIpO3JldHVybn1pZih0PT09WGkpe0MoZSk7cmV0dXJufWxldCBhPSgpPT57cyhuKSxpJiYhaS5wZXJzaXN0ZWQmJmkuYWZ0ZXJMZWF2ZSYmaS5hZnRlckxlYXZlKCl9O2lmKGUuc2hhcGVGbGFnJjEmJmkmJiFpLnBlcnNpc3RlZCl7bGV0e2xlYXZlOnQsZGVsYXlMZWF2ZTpyfT1pLG89KCk9PnQobixhKTtyP3IoZS5lbCxhLG8pOm8oKX1lbHNlIGEoKX0sZ2U9KGUsdCk9PntsZXQgbjtmb3IoO2UhPT10OyluPWgoZSkscyhlKSxlPW47cyh0KX0sX2U9KGUsdCxuKT0+e2xldHtidW06cixzY29wZTppLGpvYjphLHN1YlRyZWU6byx1bTpzLG06YyxhOmx9PWU7R2koYyksR2kobCksciYmYWUociksaS5zdG9wKCksYSYmKGEuZmxhZ3N8PTgsbWUobyxlLHQsbikpLHMmJkoocyx0KSxKKCgpPT57ZS5pc1VubW91bnRlZD0hMH0sdCl9LHZlPShlLHQsbixyPSExLGk9ITEsYT0wKT0+e2ZvcihsZXQgbz1hO288ZS5sZW5ndGg7bysrKW1lKGVbb10sdCxuLHIsaSl9LHllPWU9PntpZihlLnNoYXBlRmxhZyY2KXJldHVybiB5ZShlLmNvbXBvbmVudC5zdWJUcmVlKTtpZihlLnNoYXBlRmxhZyYxMjgpcmV0dXJuIGUuc3VzcGVuc2UubmV4dCgpO2xldCB0PWgoZS5hbmNob3J8fGUuZWwpLG49dCYmdFtQbl07cmV0dXJuIG4/aChuKTp0fSxiZT0hMSx4ZT0oZSx0LG4pPT57bGV0IHI7ZT09bnVsbD90Ll92bm9kZSYmKG1lKHQuX3Zub2RlLG51bGwsbnVsbCwhMCkscj10Ll92bm9kZS5jb21wb25lbnQpOnYodC5fdm5vZGV8fG51bGwsZSx0LG51bGwsbnVsbCxudWxsLG4pLHQuX3Zub2RlPWUsYmV8fD0oYmU9ITAsaG4ociksZ24oKSwhMSl9LFNlPXtwOnYsdW06bWUsbTpwZSxyOmhlLG10OmssbWM6RSxwYzp1ZSxwYmM6RCxuOnllLG86ZX0sQ2Usd2U7cmV0dXJuIGkmJihbQ2Usd2VdPWkoU2UpKSx7cmVuZGVyOnhlLGh5ZHJhdGU6Q2UsY3JlYXRlQXBwOmFpKHhlLENlKX19ZnVuY3Rpb24gemkoe3R5cGU6ZSxwcm9wczp0fSxuKXtyZXR1cm4gbj09PWBzdmdgJiZlPT09YGZvcmVpZ25PYmplY3RgfHxuPT09YG1hdGhtbGAmJmU9PT1gYW5ub3RhdGlvbi14bWxgJiZ0JiZ0LmVuY29kaW5nJiZ0LmVuY29kaW5nLmluY2x1ZGVzKGBodG1sYCk/dm9pZCAwOm59ZnVuY3Rpb24gQmkoe2VmZmVjdDplLGpvYjp0fSxuKXtuPyhlLmZsYWdzfD0zMix0LmZsYWdzfD00KTooZS5mbGFncyY9LTMzLHQuZmxhZ3MmPS01KX1mdW5jdGlvbiBWaShlLHQpe3JldHVybighZXx8ZSYmIWUucGVuZGluZ0JyYW5jaCkmJnQmJiF0LnBlcnNpc3RlZH1mdW5jdGlvbiBIaShlLHQsbj0hMSl7bGV0IHI9ZS5jaGlsZHJlbixpPXQuY2hpbGRyZW47aWYoZChyKSYmZChpKSlmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrKyl7bGV0IHQ9cltlXSxhPWlbZV07YS5zaGFwZUZsYWcmMSYmIWEuZHluYW1pY0NoaWxkcmVuJiYoKGEucGF0Y2hGbGFnPD0wfHxhLnBhdGNoRmxhZz09PTMyKSYmKGE9aVtlXT1fYShpW2VdKSxhLmVsPXQuZWwpLCFuJiZhLnBhdGNoRmxhZyE9PS0yJiZIaSh0LGEpKSxhLnR5cGU9PT1ZaSYmKGEucGF0Y2hGbGFnPT09LTEmJihhPWlbZV09X2EoYSkpLGEuZWw9dC5lbCksYS50eXBlPT09WCYmIWEuZWwmJihhLmVsPXQuZWwpfX1mdW5jdGlvbiBVaShlKXtsZXQgdD1lLnNsaWNlKCksbj1bMF0scixpLGEsbyxzLGM9ZS5sZW5ndGg7Zm9yKHI9MDtyPGM7cisrKXtsZXQgYz1lW3JdO2lmKGMhPT0wKXtpZihpPW5bbi5sZW5ndGgtMV0sZVtpXTxjKXt0W3JdPWksbi5wdXNoKHIpO2NvbnRpbnVlfWZvcihhPTAsbz1uLmxlbmd0aC0xO2E8bzspcz1hK28+PjEsZVtuW3NdXTxjP2E9cysxOm89cztjPGVbblthXV0mJihhPjAmJih0W3JdPW5bYS0xXSksblthXT1yKX19Zm9yKGE9bi5sZW5ndGgsbz1uW2EtMV07YS0tPjA7KW5bYV09byxvPXRbb107cmV0dXJuIG59ZnVuY3Rpb24gV2koZSl7bGV0IHQ9ZS5zdWJUcmVlLmNvbXBvbmVudDtpZih0KXJldHVybiB0LmFzeW5jRGVwJiYhdC5hc3luY1Jlc29sdmVkP3Q6V2kodCl9ZnVuY3Rpb24gR2koZSl7aWYoZSlmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdLmZsYWdzfD04fWZ1bmN0aW9uIEtpKGUpe2lmKGUucGxhY2Vob2xkZXIpcmV0dXJuIGUucGxhY2Vob2xkZXI7bGV0IHQ9ZS5jb21wb25lbnQ7cmV0dXJuIHQ/S2kodC5zdWJUcmVlKTpudWxsfXZhciBxaT1lPT5lLl9faXNTdXNwZW5zZTtmdW5jdGlvbiBKaShlLHQpe3QmJnQucGVuZGluZ0JyYW5jaD9kKGUpP3QuZWZmZWN0cy5wdXNoKC4uLmUpOnQuZWZmZWN0cy5wdXNoKGUpOm1uKGUpfXZhciBZPVN5bWJvbC5mb3IoYHYtZmd0YCksWWk9U3ltYm9sLmZvcihgdi10eHRgKSxYPVN5bWJvbC5mb3IoYHYtY210YCksWGk9U3ltYm9sLmZvcihgdi1zdGNgKSxaaT1bXSxaPW51bGw7ZnVuY3Rpb24gUWkoZT0hMSl7WmkucHVzaChaPWU/bnVsbDpbXSl9ZnVuY3Rpb24gJGkoKXtaaS5wb3AoKSxaPVppW1ppLmxlbmd0aC0xXXx8bnVsbH12YXIgZWE9MTtmdW5jdGlvbiB0YShlLHQ9ITEpe2VhKz1lLGU8MCYmWiYmdCYmKFouaGFzT25jZT0hMCl9ZnVuY3Rpb24gbmEoZSl7cmV0dXJuIGUuZHluYW1pY0NoaWxkcmVuPWVhPjA/Wnx8bjpudWxsLCRpKCksZWE+MCYmWiYmWi5wdXNoKGUpLGV9ZnVuY3Rpb24gcmEoZSx0LG4scixpLGEpe3JldHVybiBuYShsYShlLHQsbixyLGksYSwhMCkpfWZ1bmN0aW9uIGlhKGUsdCxuLHIsaSl7cmV0dXJuIG5hKFEoZSx0LG4scixpLCEwKSl9ZnVuY3Rpb24gYWEoZSl7cmV0dXJuIGU/ZS5fX3ZfaXNWTm9kZT09PSEwOiExfWZ1bmN0aW9uIG9hKGUsdCl7cmV0dXJuIGUudHlwZT09PXQudHlwZSYmZS5rZXk9PT10LmtleX12YXIgc2E9KHtrZXk6ZX0pPT5lPz9udWxsLGNhPSh7cmVmOmUscmVmX2tleTp0LHJlZl9mb3I6bn0pPT4odHlwZW9mIGU9PWBudW1iZXJgJiYoZT1gYCtlKSxlPT1udWxsP251bGw6ZyhlKXx8QihlKXx8aChlKT97aTpXLHI6ZSxrOnQsZjohIW59OmUpO2Z1bmN0aW9uIGxhKGUsdD1udWxsLG49bnVsbCxyPTAsaT1udWxsLGE9ZT09PVk/MDoxLG89ITEscz0hMSl7bGV0IGM9e19fdl9pc1ZOb2RlOiEwLF9fdl9za2lwOiEwLHR5cGU6ZSxwcm9wczp0LGtleTp0JiZzYSh0KSxyZWY6dCYmY2EodCksc2NvcGVJZDp5bixzbG90U2NvcGVJZHM6bnVsbCxjaGlsZHJlbjpuLGNvbXBvbmVudDpudWxsLHN1c3BlbnNlOm51bGwsc3NDb250ZW50Om51bGwsc3NGYWxsYmFjazpudWxsLGRpcnM6bnVsbCx0cmFuc2l0aW9uOm51bGwsZWw6bnVsbCxhbmNob3I6bnVsbCx0YXJnZXQ6bnVsbCx0YXJnZXRTdGFydDpudWxsLHRhcmdldEFuY2hvcjpudWxsLHN0YXRpY0NvdW50OjAsc2hhcGVGbGFnOmEscGF0Y2hGbGFnOnIsZHluYW1pY1Byb3BzOmksZHluYW1pY0NoaWxkcmVuOm51bGwsYXBwQ29udGV4dDpudWxsLGN0eDpXfTtyZXR1cm4gcz8odmEoYyxuKSxhJjEyOCYmZS5ub3JtYWxpemUoYykpOm4mJihjLnNoYXBlRmxhZ3w9ZyhuKT84OjE2KSxlYT4wJiYhbyYmWiYmKGMucGF0Y2hGbGFnPjB8fGEmNikmJmMucGF0Y2hGbGFnIT09MzImJloucHVzaChjKSxjfXZhciBRPXVhO2Z1bmN0aW9uIHVhKGUsdD1udWxsLG49bnVsbCxyPTAsaT1udWxsLGE9ITEpe2lmKCghZXx8ZT09PU5yKSYmKGU9WCksYWEoZSkpe2xldCByPWZhKGUsdCwhMCk7cmV0dXJuIG4mJnZhKHIsbiksZWE+MCYmIWEmJlomJihyLnNoYXBlRmxhZyY2P1pbWi5pbmRleE9mKGUpXT1yOloucHVzaChyKSksci5wYXRjaEZsYWc9LTIscn1pZihWYShlKSYmKGU9ZS5fX3ZjY09wdHMpLHQpe3Q9ZGEodCk7bGV0e2NsYXNzOmUsc3R5bGU6bn09dDtlJiYhZyhlKSYmKHQuY2xhc3M9Z2UoZSkpLHYobikmJihMdChuKSYmIWQobikmJihuPXMoe30sbikpLHQuc3R5bGU9dWUobikpfWxldCBvPWcoZSk/MTpxaShlKT8xMjg6Rm4oZSk/NjQ6dihlKT80OmgoZSk/MjowO3JldHVybiBsYShlLHQsbixyLGksbyxhLCEwKX1mdW5jdGlvbiBkYShlKXtyZXR1cm4gZT9MdChlKXx8eGkoZSk/cyh7fSxlKTplOm51bGx9ZnVuY3Rpb24gZmEoZSx0LG49ITEscj0hMSl7bGV0e3Byb3BzOmkscmVmOmEscGF0Y2hGbGFnOm8sY2hpbGRyZW46cyx0cmFuc2l0aW9uOmN9PWUsbD10P3lhKGl8fHt9LHQpOmksdT17X192X2lzVk5vZGU6ITAsX192X3NraXA6ITAsdHlwZTplLnR5cGUscHJvcHM6bCxrZXk6bCYmc2EobCkscmVmOnQmJnQucmVmP24mJmE/ZChhKT9hLmNvbmNhdChjYSh0KSk6W2EsY2EodCldOmNhKHQpOmEsc2NvcGVJZDplLnNjb3BlSWQsc2xvdFNjb3BlSWRzOmUuc2xvdFNjb3BlSWRzLGNoaWxkcmVuOnMsdGFyZ2V0OmUudGFyZ2V0LHRhcmdldFN0YXJ0OmUudGFyZ2V0U3RhcnQsdGFyZ2V0QW5jaG9yOmUudGFyZ2V0QW5jaG9yLHN0YXRpY0NvdW50OmUuc3RhdGljQ291bnQsc2hhcGVGbGFnOmUuc2hhcGVGbGFnLHBhdGNoRmxhZzp0JiZlLnR5cGUhPT1ZP289PT0tMT8xNjpvfDE2Om8sZHluYW1pY1Byb3BzOmUuZHluYW1pY1Byb3BzLGR5bmFtaWNDaGlsZHJlbjplLmR5bmFtaWNDaGlsZHJlbixhcHBDb250ZXh0OmUuYXBwQ29udGV4dCxkaXJzOmUuZGlycyx0cmFuc2l0aW9uOmMsY29tcG9uZW50OmUuY29tcG9uZW50LHN1c3BlbnNlOmUuc3VzcGVuc2Usc3NDb250ZW50OmUuc3NDb250ZW50JiZmYShlLnNzQ29udGVudCksc3NGYWxsYmFjazplLnNzRmFsbGJhY2smJmZhKGUuc3NGYWxsYmFjaykscGxhY2Vob2xkZXI6ZS5wbGFjZWhvbGRlcixlbDplLmVsLGFuY2hvcjplLmFuY2hvcixjdHg6ZS5jdHgsY2U6ZS5jZX07cmV0dXJuIGMmJnImJmlyKHUsYy5jbG9uZSh1KSksdX1mdW5jdGlvbiBwYShlPWAgYCx0PTApe3JldHVybiBRKFlpLG51bGwsZSx0KX1mdW5jdGlvbiBtYShlLHQpe2xldCBuPVEoWGksbnVsbCxlKTtyZXR1cm4gbi5zdGF0aWNDb3VudD10LG59ZnVuY3Rpb24gaGEoZT1gYCx0PSExKXtyZXR1cm4gdD8oUWkoKSxpYShYLG51bGwsZSkpOlEoWCxudWxsLGUpfWZ1bmN0aW9uIGdhKGUpe3JldHVybiBlPT1udWxsfHx0eXBlb2YgZT09YGJvb2xlYW5gP1EoWCk6ZChlKT9RKFksbnVsbCxlLnNsaWNlKCkpOmFhKGUpP19hKGUpOlEoWWksbnVsbCxTdHJpbmcoZSkpfWZ1bmN0aW9uIF9hKGUpe3JldHVybiBlLmVsPT09bnVsbCYmZS5wYXRjaEZsYWchPT0tMXx8ZS5tZW1vP2U6ZmEoZSl9ZnVuY3Rpb24gdmEoZSx0KXtsZXQgbj0wLHtzaGFwZUZsYWc6cn09ZTtpZih0PT1udWxsKXQ9bnVsbDtlbHNlIGlmKGQodCkpbj0xNjtlbHNlIGlmKHR5cGVvZiB0PT1gb2JqZWN0YClpZihyJjY1KXtsZXQgbj10LmRlZmF1bHQ7biYmKG4uX2MmJihuLl9kPSExKSx2YShlLG4oKSksbi5fYyYmKG4uX2Q9ITApKTtyZXR1cm59ZWxzZXtuPTMyO2xldCByPXQuXzshciYmIXhpKHQpP3QuX2N0eD1XOnI9PT0zJiZXJiYoVy5zbG90cy5fPT09MT90Ll89MToodC5fPTIsZS5wYXRjaEZsYWd8PTEwMjQpKX1lbHNlIGlmKGgodCkpe2lmKHImNjUpe3ZhKGUse2RlZmF1bHQ6dH0pO3JldHVybn10PXtkZWZhdWx0OnQsX2N0eDpXfSxuPTMyfWVsc2UgdD1TdHJpbmcodCksciY2ND8obj0xNix0PVtwYSh0KV0pOm49ODtlLmNoaWxkcmVuPXQsZS5zaGFwZUZsYWd8PW59ZnVuY3Rpb24geWEoLi4uZSl7bGV0IHQ9e307Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2xldCByPWVbbl07Zm9yKGxldCBlIGluIHIpaWYoZT09PWBjbGFzc2ApdC5jbGFzcyE9PXIuY2xhc3MmJih0LmNsYXNzPWdlKFt0LmNsYXNzLHIuY2xhc3NdKSk7ZWxzZSBpZihlPT09YHN0eWxlYCl0LnN0eWxlPXVlKFt0LnN0eWxlLHIuc3R5bGVdKTtlbHNlIGlmKGEoZSkpe2xldCBuPXRbZV0saT1yW2VdO2kmJm4hPT1pJiYhKGQobikmJm4uaW5jbHVkZXMoaSkpP3RbZV09bj9bXS5jb25jYXQobixpKTppOmk9PW51bGwmJm49PW51bGwmJiFvKGUpJiYodFtlXT1pKX1lbHNlIGUhPT1gYCYmKHRbZV09cltlXSl9cmV0dXJuIHR9ZnVuY3Rpb24gYmEoZSx0LG4scj1udWxsKXtWKGUsdCw3LFtuLHJdKX12YXIgeGE9cmkoKSxTYT0wO2Z1bmN0aW9uIENhKGUsbixyKXtsZXQgaT1lLnR5cGUsYT0obj9uLmFwcENvbnRleHQ6ZS5hcHBDb250ZXh0KXx8eGEsbz17dWlkOlNhKyssdm5vZGU6ZSx0eXBlOmkscGFyZW50Om4sYXBwQ29udGV4dDphLHJvb3Q6bnVsbCxuZXh0Om51bGwsc3ViVHJlZTpudWxsLGVmZmVjdDpudWxsLHVwZGF0ZTpudWxsLGpvYjpudWxsLHNjb3BlOm5ldyBFZSghMCkscmVuZGVyOm51bGwscHJveHk6bnVsbCxleHBvc2VkOm51bGwsZXhwb3NlUHJveHk6bnVsbCx3aXRoUHJveHk6bnVsbCxwcm92aWRlczpuP24ucHJvdmlkZXM6T2JqZWN0LmNyZWF0ZShhLnByb3ZpZGVzKSxpZHM6bj9uLmlkczpbYGAsMCwwXSxhY2Nlc3NDYWNoZTpudWxsLHJlbmRlckNhY2hlOltdLGNvbXBvbmVudHM6bnVsbCxkaXJlY3RpdmVzOm51bGwscHJvcHNPcHRpb25zOkRpKGksYSksZW1pdHNPcHRpb25zOnVpKGksYSksZW1pdDpudWxsLGVtaXR0ZWQ6bnVsbCxwcm9wc0RlZmF1bHRzOnQsaW5oZXJpdEF0dHJzOmkuaW5oZXJpdEF0dHJzLGN0eDp0LGRhdGE6dCxwcm9wczp0LGF0dHJzOnQsc2xvdHM6dCxyZWZzOnQsc2V0dXBTdGF0ZTp0LHNldHVwQ29udGV4dDpudWxsLHN1c3BlbnNlOnIsc3VzcGVuc2VJZDpyP3IucGVuZGluZ0lkOjAsYXN5bmNEZXA6bnVsbCxhc3luY1Jlc29sdmVkOiExLGlzTW91bnRlZDohMSxpc1VubW91bnRlZDohMSxpc0RlYWN0aXZhdGVkOiExLGJjOm51bGwsYzpudWxsLGJtOm51bGwsbTpudWxsLGJ1Om51bGwsdTpudWxsLHVtOm51bGwsYnVtOm51bGwsZGE6bnVsbCxhOm51bGwscnRnOm51bGwscnRjOm51bGwsZWM6bnVsbCxzcDpudWxsfTtyZXR1cm4gby5jdHg9e186b30sby5yb290PW4/bi5yb290Om8sby5lbWl0PWNpLmJpbmQobnVsbCxvKSxlLmNlJiZlLmNlKG8pLG99dmFyICQ9bnVsbCx3YT0oKT0+JHx8VyxUYSxFYTt7bGV0IGU9bGUoKSx0PSh0LG4pPT57bGV0IHI7cmV0dXJuKHI9ZVt0XSl8fChyPWVbdF09W10pLHIucHVzaChuKSxlPT57ci5sZW5ndGg+MT9yLmZvckVhY2godD0+dChlKSk6clswXShlKX19O1RhPXQoYF9fVlVFX0lOU1RBTkNFX1NFVFRFUlNfX2AsZT0+JD1lKSxFYT10KGBfX1ZVRV9TU1JfU0VUVEVSU19fYCxlPT5BYT1lKX12YXIgRGE9ZT0+e2xldCB0PSQ7cmV0dXJuIFRhKGUpLGUuc2NvcGUub24oKSwoKT0+e2Uuc2NvcGUub2ZmKCksVGEodCl9fSxPYT0oKT0+eyQmJiQuc2NvcGUub2ZmKCksVGEobnVsbCl9O2Z1bmN0aW9uIGthKGUpe3JldHVybiBlLnZub2RlLnNoYXBlRmxhZyY0fXZhciBBYT0hMTtmdW5jdGlvbiBqYShlLHQ9ITEsbj0hMSl7dCYmRWEodCk7bGV0e3Byb3BzOnIsY2hpbGRyZW46aX09ZS52bm9kZSxhPWthKGUpO1NpKGUscixhLHQpLEZpKGUsaSxufHx0KTtsZXQgbz1hP01hKGUsdCk6dm9pZCAwO3JldHVybiB0JiZFYSghMSksb31mdW5jdGlvbiBNYShlLHQpe2xldCBuPWUudHlwZTtlLmFjY2Vzc0NhY2hlPU9iamVjdC5jcmVhdGUobnVsbCksZS5wcm94eT1uZXcgUHJveHkoZS5jdHgsVnIpO2xldHtzZXR1cDpyfT1uO2lmKHIpe04oKTtsZXQgbj1lLnNldHVwQ29udGV4dD1yLmxlbmd0aD4xP1JhKGUpOm51bGwsaT1EYShlKSxhPXRuKHIsZSwwLFtlLnByb3BzLG5dKSxvPXkoYSk7aWYoUCgpLGkoKSwob3x8ZS5zcCkmJiFmcihlKSYmc3IoZSksbyl7aWYoYS50aGVuKE9hLE9hKSx0KXJldHVybiBhLnRoZW4obj0+e05hKGUsbix0KX0pLmNhdGNoKHQ9Pntubih0LGUsMCl9KTtlLmFzeW5jRGVwPWF9ZWxzZSBOYShlLGEsdCl9ZWxzZSBJYShlLHQpfWZ1bmN0aW9uIE5hKGUsdCxuKXtoKHQpP2UudHlwZS5fX3NzcklubGluZVJlbmRlcj9lLnNzclJlbmRlcj10OmUucmVuZGVyPXQ6dih0KSYmKGUuc2V0dXBTdGF0ZT1LdCh0KSksSWEoZSxuKX12YXIgUGEsRmE7ZnVuY3Rpb24gSWEoZSx0LG4pe2xldCBpPWUudHlwZTtpZighZS5yZW5kZXIpe2lmKCF0JiZQYSYmIWkucmVuZGVyKXtsZXQgdD1pLnRlbXBsYXRlfHxKcihlKS50ZW1wbGF0ZTtpZih0KXtsZXR7aXNDdXN0b21FbGVtZW50Om4sY29tcGlsZXJPcHRpb25zOnJ9PWUuYXBwQ29udGV4dC5jb25maWcse2RlbGltaXRlcnM6YSxjb21waWxlck9wdGlvbnM6b309aTtpLnJlbmRlcj1QYSh0LHMocyh7aXNDdXN0b21FbGVtZW50Om4sZGVsaW1pdGVyczphfSxyKSxvKSl9fWUucmVuZGVyPWkucmVuZGVyfHxyLEZhJiZGYShlKX17bGV0IHQ9RGEoZSk7TigpO3RyeXtXcihlKX1maW5hbGx5e1AoKSx0KCl9fX12YXIgTGE9e2dldChlLHQpe3JldHVybiBGKGUsYGdldGAsYGApLGVbdF19fTtmdW5jdGlvbiBSYShlKXtyZXR1cm57YXR0cnM6bmV3IFByb3h5KGUuYXR0cnMsTGEpLHNsb3RzOmUuc2xvdHMsZW1pdDplLmVtaXQsZXhwb3NlOnQ9PntlLmV4cG9zZWQ9dHx8e319fX1mdW5jdGlvbiB6YShlKXtyZXR1cm4gZS5leHBvc2VkP2UuZXhwb3NlUHJveHl8fD1uZXcgUHJveHkoS3QoUnQoZS5leHBvc2VkKSkse2dldCh0LG4pe2lmKG4gaW4gdClyZXR1cm4gdFtuXTtpZihuIGluIHpyKXJldHVybiB6cltuXShlKX0saGFzKGUsdCl7cmV0dXJuIHQgaW4gZXx8dCBpbiB6cn19KTplLnByb3h5fWZ1bmN0aW9uIEJhKGUsdD0hMCl7cmV0dXJuIGgoZSk/ZS5kaXNwbGF5TmFtZXx8ZS5uYW1lOmUubmFtZXx8dCYmZS5fX25hbWV9ZnVuY3Rpb24gVmEoZSl7cmV0dXJuIGgoZSkmJmBfX3ZjY09wdHNgaW4gZX12YXIgSGE9KGUsdCk9Pkp0KGUsdCxBYSk7ZnVuY3Rpb24gVWEoZSx0LG4pe3RyeXt0YSgtMSk7bGV0IHI9YXJndW1lbnRzLmxlbmd0aDtyZXR1cm4gcj09PTI/dih0KSYmIWQodCk/YWEodCk/UShlLG51bGwsW3RdKTpRKGUsdCk6UShlLG51bGwsdCk6KHI+Mz9uPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKTpyPT09MyYmYWEobikmJihuPVtuXSksUShlLHQsbikpfWZpbmFsbHl7dGEoMSl9fXZhciBXYT1gMy41LjM5YCxHYT0oZSx0KT0+e2xldCBuPWUuX192Y2NPcHRzfHxlO2ZvcihsZXRbZSxyXW9mIHQpbltlXT1yO3JldHVybiBufTtleHBvcnR7ZCBhcyAkLFRyIGFzIEEsU24gYXMgQix5YSBhcyBDLFNyIGFzIEQsd3IgYXMgRSxNciBhcyBGLFZ0IGFzIEcsanQgYXMgSCxQciBhcyBJLHJlIGFzIEosV3QgYXMgSyxrbiBhcyBMLFFpIGFzIE0sd24gYXMgTixociBhcyBPLExyIGFzIFAsYWUgYXMgUSxPbiBhcyBSLGFhIGFzIFMsbXIgYXMgVCxCdCBhcyBVLEIgYXMgVixNdCBhcyBXLEQgYXMgWCxzIGFzIFkseWUgYXMgWixRIGFzIF8sWSBhcyBhLGcgYXMgYXQsVWEgYXMgYixWIGFzIGMsZ2UgYXMgY3QsaWEgYXMgZCxDZSBhcyBkdCxoIGFzIGV0LGhhIGFzIGYsc2UgYXMgZnQscGEgYXMgZyxtYSBhcyBoLFggYXMgaSx2ZSBhcyBpdCxDciBhcyBqLHhyIGFzIGssSGEgYXMgbCx1ZSBhcyBsdCxMaSBhcyBtLCRuIGFzIG4sdiBhcyBudCxXbiBhcyBvLF8gYXMgb3QscmEgYXMgcCxFIGFzIHEsWW4gYXMgcixhIGFzIHJ0LFlpIGFzIHMsb2UgYXMgc3QsR2EgYXMgdCxvIGFzIHR0LGxhIGFzIHUsaGUgYXMgdXQsb3IgYXMgdix1biBhcyB3LFRuIGFzIHgsd2EgYXMgeSx4biBhcyB6fTs="}},"time_used":1119,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":1119,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"ultradns","sensor_type":"DNS","title":"DigiCert UltraDNS","description":"DigiCert UltraDNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://vercara.digicert.com/ultra-dns-public","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"amazonenterprise3.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"cloudflare_dns","sensor_type":"DNS","title":"Cloudflare DNS","description":"Cloudflare DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cloudflare.com/application-services/products/dns/","meta":null},{"sensor_name":"cira_dns","sensor_type":"DNS","title":"CIRA Canadian Shield DNS","description":"CIRA Canadian Shield DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cira.ca/en/canadian-shield/","meta":null}],"urlquery":[{"sensor_name":"urlquery","alert":"Phishing - Amazon","verdict":"phishing","severity":"medium","comment":"Resource associated with Amazon phishing","tags":["amazon","phishing"],"meta":null}]}},{"url":{"schema":"https","addr":"amazonenterprise3.com/assets/api-CKD84iLZ.js","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://amazonenterprise3.com/","date":"2026-07-27T14:02:23.853Z","timestamp":1785160943853,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"amazonenterprise3.com","organization":""},"issuer":{"commonName":"LiteSSL RSA CA 2025","organization":"TrustAsia Technologies, Inc."},"validity":{"start":"Mon, 20 Jul 2026 11:00:00 GMT","end":"Sun, 18 Oct 2026 10:59:59 GMT"},"fingerprint":{"sha1":"4A:8A:66:B3:B0:81:D6:26:E2:8C:1F:FF:74:BC:A3:71:A3:81:C0:42","sha256":"E4:66:EB:64:6C:32:49:49:72:14:0B:E8:64:1D:03:F1:C0:70:AF:96:1E:F3:BF:6A:58:42:F7:06:1F:E0:51:A0"}}},"request":{"raw":"GET /assets/api-CKD84iLZ.js HTTP/1.1\r\nHost: amazonenterprise3.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://amazonenterprise3.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\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 14:02:23 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Tue, 21 Jul 2026 18:45:13 GMT\r\nvary: Accept-Encoding\r\netag: W/\"6a5fbe39-e2d5\"\r\nexpires: Tue, 28 Jul 2026 02:02:23 GMT\r\ncache-control: max-age=43200\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\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":58069,"size_decoded":21947,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (26721)","md5":"2607c7f4510aa40bbd4643e5588da94d","sha1":"dcc23a2bdb4b6d6f789fd393b00854f4f4809901","sha256":"64279314d8070efd8625edce3f36e82e814288d0418a9b5ee90784c086f9a149","sha512":"0a46270c5f8e6bae3e4a0c1c7e62c243f7ff44b9dd7cd43312eb82790c41ff019ebb6aeaa423377196ad5ab3d364f099373913ba4d5ae44e067b9d78f3d0fad7","ssdeep":"768:CiF2IgTImV0zBYMvOjskTzFlAj2WbkukJ+kHC66ilS9nfoVXBB3Gpmgx:Ciw1V09ZbHkHC66yVL3Gv","tlshash":"42433dd67695b02183de61fd402b4402f33aa9686c0d446cb160d8db3cf558a96fff7a","first_seen":"2026-07-27T12:42:47.683952Z","last_seen":"2026-07-27T14:03:28.944294Z","times_seen":3,"resource_available":true,"data":"aW1wb3J0e24gYXMgZX1mcm9tIi4vaW5kZXgtZUdrb0t5QjAuanMiO3ZhciB0PU9iamVjdC5jcmVhdGUsbj1PYmplY3QuZGVmaW5lUHJvcGVydHkscj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGk9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsYT1PYmplY3QuZ2V0UHJvdG90eXBlT2Ysbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHM9KGUsdCk9PigpPT4odHx8KGUoKHQ9e2V4cG9ydHM6e319KS5leHBvcnRzLHQpLGU9bnVsbCksdC5leHBvcnRzKSxjPShlLHQpPT57bGV0IHI9e307Zm9yKHZhciBpIGluIGUpbihyLGkse2dldDplW2ldLGVudW1lcmFibGU6ITB9KTtyZXR1cm4gdHx8bihyLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6YE1vZHVsZWB9KSxyfSxsPShlLHQsYSxzKT0+e2lmKHQmJnR5cGVvZiB0PT1gb2JqZWN0YHx8dHlwZW9mIHQ9PWBmdW5jdGlvbmApZm9yKHZhciBjPWkodCksbD0wLHU9Yy5sZW5ndGgsZDtsPHU7bCsrKWQ9Y1tsXSwhby5jYWxsKGUsZCkmJmQhPT1hJiZuKGUsZCx7Z2V0OihlPT50W2VdKS5iaW5kKG51bGwsZCksZW51bWVyYWJsZTohKHM9cih0LGQpKXx8cy5lbnVtZXJhYmxlfSk7cmV0dXJuIGV9LHU9KGUscixpKT0+KGk9ZT09bnVsbD97fTp0KGEoZSkpLGwocnx8IWV8fCFlLl9fZXNNb2R1bGU/bihpLGBkZWZhdWx0YCx7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSk6aSxlKSk7ZnVuY3Rpb24gZChlLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KHQsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOmZ9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOnB9PU9iamVjdCx7aXRlcmF0b3I6bSx0b1N0cmluZ1RhZzpofT1TeW1ib2wsZz0oKHtoYXNPd25Qcm9wZXJ0eTplfSk9Pih0LG4pPT5lLmNhbGwodCxuKSkoT2JqZWN0LnByb3RvdHlwZSksXz0oZSx0KT0+e2xldCBuPWUscj1bXTtmb3IoO24hPW51bGwmJm4hPT1PYmplY3QucHJvdG90eXBlOyl7aWYoci5pbmRleE9mKG4pIT09LTEpcmV0dXJuITE7aWYoci5wdXNoKG4pLGcobix0KSlyZXR1cm4hMDtuPXAobil9cmV0dXJuITF9LHY9KGUsdCk9PmUhPW51bGwmJl8oZSx0KT9lW3RdOnZvaWQgMCx5PShlPT50PT57bGV0IG49Zi5jYWxsKHQpO3JldHVybiBlW25dfHwoZVtuXT1uLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksYj1lPT4oZT1lLnRvTG93ZXJDYXNlKCksdD0+eSh0KT09PWUpLHg9ZT0+dD0+dHlwZW9mIHQ9PT1lLHtpc0FycmF5OlN9PUFycmF5LEM9eChgdW5kZWZpbmVkYCk7ZnVuY3Rpb24gdyhlKXtyZXR1cm4gZSE9PW51bGwmJiFDKGUpJiZlLmNvbnN0cnVjdG9yIT09bnVsbCYmIUMoZS5jb25zdHJ1Y3RvcikmJk8oZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJmUuY29uc3RydWN0b3IuaXNCdWZmZXIoZSl9dmFyIFQ9YihgQXJyYXlCdWZmZXJgKTtmdW5jdGlvbiBFKGUpe2xldCB0O3JldHVybiB0PXR5cGVvZiBBcnJheUJ1ZmZlcjxgdWAmJkFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcoZSk6ZSYmZS5idWZmZXImJlQoZS5idWZmZXIpLHR9dmFyIEQ9eChgc3RyaW5nYCksTz14KGBmdW5jdGlvbmApLGVlPXgoYG51bWJlcmApLGs9ZT0+dHlwZW9mIGU9PWBvYmplY3RgJiYhIWUsQT1lPT5lPT09ITB8fGU9PT0hMSxqPWU9PntpZighayhlKSlyZXR1cm4hMTtsZXQgdD1wKGUpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fHAodCk9PT1udWxsKSYmIV8oZSxoKSYmIV8oZSxtKX0sTT1lPT57aWYoIWsoZSl8fHcoZSkpcmV0dXJuITE7dHJ5e3JldHVybiBPYmplY3Qua2V5cyhlKS5sZW5ndGg9PT0wJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1PYmplY3QucHJvdG90eXBlfWNhdGNoe3JldHVybiExfX0sTj1iKGBEYXRlYCksdGU9YihgRmlsZWApLG5lPWU9PiEhKGUmJmUudXJpIT09dm9pZCAwKSxyZT1lPT5lJiZlLmdldFBhcnRzIT09dm9pZCAwLFA9YihgQmxvYmApLGllPWIoYEZpbGVMaXN0YCksYWU9ZT0+ayhlKSYmTyhlLnBpcGUpO2Z1bmN0aW9uIEYoKXtyZXR1cm4gdHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6dHlwZW9mIHdpbmRvdzxgdWA/d2luZG93OnR5cGVvZiBnbG9iYWw8YHVgP2dsb2JhbDp7fX12YXIgb2U9RigpLHNlPW9lLkZvcm1EYXRhPT09dm9pZCAwP3ZvaWQgMDpvZS5Gb3JtRGF0YSxjZT1lPT57aWYoIWUpcmV0dXJuITE7aWYoc2UmJmUgaW5zdGFuY2VvZiBzZSlyZXR1cm4hMDtsZXQgdD1wKGUpO2lmKCF0fHx0PT09T2JqZWN0LnByb3RvdHlwZXx8IU8oZS5hcHBlbmQpKXJldHVybiExO2xldCBuPXkoZSk7cmV0dXJuIG49PT1gZm9ybWRhdGFgfHxuPT09YG9iamVjdGAmJk8oZS50b1N0cmluZykmJmUudG9TdHJpbmcoKT09PWBbb2JqZWN0IEZvcm1EYXRhXWB9LGxlPWIoYFVSTFNlYXJjaFBhcmFtc2ApLFt1ZSxkZSxmZSxwZV09W2BSZWFkYWJsZVN0cmVhbWAsYFJlcXVlc3RgLGBSZXNwb25zZWAsYEhlYWRlcnNgXS5tYXAoYiksbWU9ZT0+ZS50cmltP2UudHJpbSgpOmUucmVwbGFjZSgvXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2csYGApO2Z1bmN0aW9uIEkoZSx0LHthbGxPd25LZXlzOm49ITF9PXt9KXtpZihlPT1udWxsKXJldHVybjtsZXQgcixpO2lmKHR5cGVvZiBlIT1gb2JqZWN0YCYmKGU9W2VdKSxTKGUpKWZvcihyPTAsaT1lLmxlbmd0aDtyPGk7cisrKXQuY2FsbChudWxsLGVbcl0scixlKTtlbHNle2lmKHcoZSkpcmV0dXJuO2xldCBpPW4/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSk6T2JqZWN0LmtleXMoZSksYT1pLmxlbmd0aCxvO2ZvcihyPTA7cjxhO3IrKylvPWlbcl0sdC5jYWxsKG51bGwsZVtvXSxvLGUpfX1mdW5jdGlvbiBoZShlLHQpe2lmKHcoZSkpcmV0dXJuIG51bGw7dD10LnRvTG93ZXJDYXNlKCk7bGV0IG49T2JqZWN0LmtleXMoZSkscj1uLmxlbmd0aCxpO2Zvcig7ci0tPjA7KWlmKGk9bltyXSx0PT09aS50b0xvd2VyQ2FzZSgpKXJldHVybiBpO3JldHVybiBudWxsfXZhciBMPXR5cGVvZiBnbG9iYWxUaGlzPGB1YD9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPGB1YD9zZWxmOnR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzpnbG9iYWwsZ2U9ZT0+IUMoZSkmJmUhPT1MO2Z1bmN0aW9uIF9lKC4uLmUpe2xldHtjYXNlbGVzczp0LHNraXBVbmRlZmluZWQ6bn09Z2UodGhpcykmJnRoaXN8fHt9LHI9e30saT0oZSxpKT0+e2lmKGk9PT1gX19wcm90b19fYHx8aT09PWBjb25zdHJ1Y3RvcmB8fGk9PT1gcHJvdG90eXBlYClyZXR1cm47bGV0IGE9dCYmdHlwZW9mIGk9PWBzdHJpbmdgJiZoZShyLGkpfHxpLG89ZyhyLGEpP3JbYV06dm9pZCAwO2oobykmJmooZSk/clthXT1fZShvLGUpOmooZSk/clthXT1fZSh7fSxlKTpTKGUpP3JbYV09ZS5zbGljZSgpOighbnx8IUMoZSkpJiYoclthXT1lKX07Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKXtsZXQgbj1lW3RdO2lmKCFufHx3KG4pfHwoSShuLGkpLHR5cGVvZiBuIT1gb2JqZWN0YHx8UyhuKSkpY29udGludWU7bGV0IHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKTtmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrKyl7bGV0IHQ9cltlXTtrZS5jYWxsKG4sdCkmJmkoblt0XSx0KX19cmV0dXJuIHJ9dmFyIHZlPShlLHQsbix7YWxsT3duS2V5czpyfT17fSk9PihJKHQsKHQscik9PntuJiZPKHQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIse19fcHJvdG9fXzpudWxsLHZhbHVlOmQodCxuKSx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIse19fcHJvdG9fXzpudWxsLHZhbHVlOnQsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KX0se2FsbE93bktleXM6cn0pLGUpLHllPWU9PihlLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKGU9ZS5zbGljZSgxKSksZSksYmU9KGUsdCxuLHIpPT57ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImNvbnN0cnVjdG9yIix7X19wcm90b19fOm51bGwsdmFsdWU6ZSx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJzdXBlciIse19fcHJvdG9fXzpudWxsLHZhbHVlOnQucHJvdG90eXBlfSksbiYmT2JqZWN0LmFzc2lnbihlLnByb3RvdHlwZSxuKX0seGU9KGUsdCxuLHIpPT57bGV0IGksYSxvLHM9e307aWYodHx8PXt9LGU9PW51bGwpcmV0dXJuIHQ7ZG97Zm9yKGk9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSksYT1pLmxlbmd0aDthLS0+MDspbz1pW2FdLCghcnx8cihvLGUsdCkpJiYhc1tvXSYmKHRbb109ZVtvXSxzW29dPSEwKTtlPW4hPT0hMSYmcChlKX13aGlsZShlJiYoIW58fG4oZSx0KSkmJmUhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gdH0sU2U9KGUsdCxuKT0+e2U9U3RyaW5nKGUpLChuPT09dm9pZCAwfHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpLG4tPXQubGVuZ3RoO2xldCByPWUuaW5kZXhPZih0LG4pO3JldHVybiByIT09LTEmJnI9PT1ufSxDZT1lPT57aWYoIWUpcmV0dXJuIG51bGw7aWYoUyhlKSlyZXR1cm4gZTtsZXQgdD1lLmxlbmd0aDtpZighZWUodCkpcmV0dXJuIG51bGw7bGV0IG49QXJyYXkodCk7Zm9yKDt0LS0+MDspblt0XT1lW3RdO3JldHVybiBufSx3ZT0oZT0+dD0+ZSYmdCBpbnN0YW5jZW9mIGUpKHR5cGVvZiBVaW50OEFycmF5PGB1YCYmcChVaW50OEFycmF5KSksVGU9KGUsdCk9PntsZXQgbj0oZSYmZVttXSkuY2FsbChlKSxyO2Zvcig7KHI9bi5uZXh0KCkpJiYhci5kb25lOyl7bGV0IG49ci52YWx1ZTt0LmNhbGwoZSxuWzBdLG5bMV0pfX0sRWU9KGUsdCk9PntsZXQgbixyPVtdO2Zvcig7KG49ZS5leGVjKHQpKSE9PW51bGw7KXIucHVzaChuKTtyZXR1cm4gcn0sRGU9YihgSFRNTEZvcm1FbGVtZW50YCksT2U9ZT0+ZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0LnRvVXBwZXJDYXNlKCkrbn0pLHtwcm9wZXJ0eUlzRW51bWVyYWJsZTprZX09T2JqZWN0LnByb3RvdHlwZSxBZT1iKGBSZWdFeHBgKSxqZT0oZSx0KT0+e2xldCBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGUpLHI9e307SShuLChuLGkpPT57bGV0IGE7KGE9dChuLGksZSkpIT09ITEmJihyW2ldPWF8fG4pfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxyKX0sTWU9ZT0+e2plKGUsKHQsbik9PntpZihPKGUpJiZbYGFyZ3VtZW50c2AsYGNhbGxlcmAsYGNhbGxlZWBdLmluY2x1ZGVzKG4pKXJldHVybiExO2xldCByPWVbbl07aWYoTyhyKSl7aWYodC5lbnVtZXJhYmxlPSExLGB3cml0YWJsZWBpbiB0KXt0LndyaXRhYmxlPSExO3JldHVybn10LnNldHx8PSgpPT57dGhyb3cgRXJyb3IoYENhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kICdgK24rYCdgKX19fSl9LE5lPShlLHQpPT57bGV0IG49e30scj1lPT57ZS5mb3JFYWNoKGU9PntuW2VdPSEwfSl9O3JldHVybiBTKGUpP3IoZSk6cihTdHJpbmcoZSkuc3BsaXQodCkpLG59LFBlPSgpPT57fSxGZT0oZSx0KT0+ZSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKGU9K2UpP2U6dDtmdW5jdGlvbiBJZShlKXtyZXR1cm4hIShlJiZPKGUuYXBwZW5kKSYmZVtoXT09PWBGb3JtRGF0YWAmJmVbbV0pfXZhciBMZT1lPT57bGV0IHQ9bmV3IFdlYWtTZXQsbj1lPT57aWYoayhlKSl7aWYodC5oYXMoZSkpcmV0dXJuO2lmKHcoZSkpcmV0dXJuIGU7aWYoIShgdG9KU09OYGluIGUpKXt0LmFkZChlKTtsZXQgcj1TKGUpP1tdOnt9O3JldHVybiBJKGUsKGUsdCk9PntsZXQgaT1uKGUpOyFDKGkpJiYoclt0XT1pKX0pLHQuZGVsZXRlKGUpLHJ9fXJldHVybiBlfTtyZXR1cm4gbihlKX0sUmU9YihgQXN5bmNGdW5jdGlvbmApLHplPWU9PmUmJihrKGUpfHxPKGUpKSYmTyhlLnRoZW4pJiZPKGUuY2F0Y2gpLEJlPSgoZSx0KT0+ZT9zZXRJbW1lZGlhdGU6dD8oKGUsdCk9PihMLmFkZEV2ZW50TGlzdGVuZXIoYG1lc3NhZ2VgLCh7c291cmNlOm4sZGF0YTpyfSk9PntuPT09TCYmcj09PWUmJnQubGVuZ3RoJiZ0LnNoaWZ0KCkoKX0sITEpLG49Pnt0LnB1c2gobiksTC5wb3N0TWVzc2FnZShlLGAqYCl9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTplPT5zZXRUaW1lb3V0KGUpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT1gZnVuY3Rpb25gLE8oTC5wb3N0TWVzc2FnZSkpLFZlPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazxgdWA/cXVldWVNaWNyb3Rhc2suYmluZChMKTp0eXBlb2YgcHJvY2VzczxgdWAmJnByb2Nlc3MubmV4dFRpY2t8fEJlLEhlPWU9PmUhPW51bGwmJk8oZVttXSksUj17aXNBcnJheTpTLGlzQXJyYXlCdWZmZXI6VCxpc0J1ZmZlcjp3LGlzRm9ybURhdGE6Y2UsaXNBcnJheUJ1ZmZlclZpZXc6RSxpc1N0cmluZzpELGlzTnVtYmVyOmVlLGlzQm9vbGVhbjpBLGlzT2JqZWN0OmssaXNQbGFpbk9iamVjdDpqLGlzRW1wdHlPYmplY3Q6TSxpc1JlYWRhYmxlU3RyZWFtOnVlLGlzUmVxdWVzdDpkZSxpc1Jlc3BvbnNlOmZlLGlzSGVhZGVyczpwZSxpc1VuZGVmaW5lZDpDLGlzRGF0ZTpOLGlzRmlsZTp0ZSxpc1JlYWN0TmF0aXZlQmxvYjpuZSxpc1JlYWN0TmF0aXZlOnJlLGlzQmxvYjpQLGlzUmVnRXhwOkFlLGlzRnVuY3Rpb246Tyxpc1N0cmVhbTphZSxpc1VSTFNlYXJjaFBhcmFtczpsZSxpc1R5cGVkQXJyYXk6d2UsaXNGaWxlTGlzdDppZSxmb3JFYWNoOkksbWVyZ2U6X2UsZXh0ZW5kOnZlLHRyaW06bWUsc3RyaXBCT006eWUsaW5oZXJpdHM6YmUsdG9GbGF0T2JqZWN0OnhlLGtpbmRPZjp5LGtpbmRPZlRlc3Q6YixlbmRzV2l0aDpTZSx0b0FycmF5OkNlLGZvckVhY2hFbnRyeTpUZSxtYXRjaEFsbDpFZSxpc0hUTUxGb3JtOkRlLGhhc093blByb3BlcnR5OmcsaGFzT3duUHJvcDpnLGhhc093bkluUHJvdG90eXBlQ2hhaW46XyxnZXRTYWZlUHJvcDp2LHJlZHVjZURlc2NyaXB0b3JzOmplLGZyZWV6ZU1ldGhvZHM6TWUsdG9PYmplY3RTZXQ6TmUsdG9DYW1lbENhc2U6T2Usbm9vcDpQZSx0b0Zpbml0ZU51bWJlcjpGZSxmaW5kS2V5OmhlLGdsb2JhbDpMLGlzQ29udGV4dERlZmluZWQ6Z2UsaXNTcGVjQ29tcGxpYW50Rm9ybTpJZSx0b0pTT05PYmplY3Q6TGUsaXNBc3luY0ZuOlJlLGlzVGhlbmFibGU6emUsc2V0SW1tZWRpYXRlOkJlLGFzYXA6VmUsaXNJdGVyYWJsZTpIZSxpc1NhZmVJdGVyYWJsZTplPT5lIT1udWxsJiZfKGUsbSkmJkhlKGUpfSxVZT1SLnRvT2JqZWN0U2V0KFtgYWdlYCxgYXV0aG9yaXphdGlvbmAsYGNvbnRlbnQtbGVuZ3RoYCxgY29udGVudC10eXBlYCxgZXRhZ2AsYGV4cGlyZXNgLGBmcm9tYCxgaG9zdGAsYGlmLW1vZGlmaWVkLXNpbmNlYCxgaWYtdW5tb2RpZmllZC1zaW5jZWAsYGxhc3QtbW9kaWZpZWRgLGBsb2NhdGlvbmAsYG1heC1mb3J3YXJkc2AsYHByb3h5LWF1dGhvcml6YXRpb25gLGByZWZlcmVyYCxgcmV0cnktYWZ0ZXJgLGB1c2VyLWFnZW50YF0pLFdlPWU9PntsZXQgdD17fSxuLHIsaTtyZXR1cm4gZSYmZS5zcGxpdChgCmApLmZvckVhY2goZnVuY3Rpb24oZSl7aT1lLmluZGV4T2YoYDpgKSxuPWUuc3Vic3RyaW5nKDAsaSkudHJpbSgpLnRvTG93ZXJDYXNlKCkscj1lLnN1YnN0cmluZyhpKzEpLnRyaW0oKSwhKCFufHx0W25dJiZVZVtuXSkmJihuPT09YHNldC1jb29raWVgP3Rbbl0/dFtuXS5wdXNoKHIpOnRbbl09W3JdOnRbbl09dFtuXT90W25dK2AsIGArcjpyKX0pLHR9O2Z1bmN0aW9uIEdlKGUpe2xldCB0PTAsbj1lLmxlbmd0aDtmb3IoO3Q8bjspe2xldCBuPWUuY2hhckNvZGVBdCh0KTtpZihuIT09OSYmbiE9PTMyKWJyZWFrO3QrPTF9Zm9yKDtuPnQ7KXtsZXQgdD1lLmNoYXJDb2RlQXQobi0xKTtpZih0IT09OSYmdCE9PTMyKWJyZWFrOy0tbn1yZXR1cm4gdD09PTAmJm49PT1lLmxlbmd0aD9lOmUuc2xpY2UodCxuKX12YXIgS2U9UmVnRXhwKGBbXFx1MDAwMC1cXHUwMDA4XFx1MDAwYS1cXHUwMDFmXFx1MDA3Zl0rYCxgZ2ApLHFlPVJlZ0V4cChgW15cXHUwMDA5XFx1MDAyMC1cXHUwMDdlXFx1MDA4MC1cXHUwMGZmXStgLGBnYCk7ZnVuY3Rpb24gSmUoZSx0KXtyZXR1cm4gUi5pc0FycmF5KGUpP2UubWFwKGU9PkplKGUsdCkpOkdlKFN0cmluZyhlKS5yZXBsYWNlKHQsYGApKX12YXIgWWU9ZT0+SmUoZSxLZSksWGU9ZT0+SmUoZSxxZSk7ZnVuY3Rpb24gWmUoZSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gUi5mb3JFYWNoKGUudG9KU09OKCksKGUsbik9Pnt0W25dPVhlKGUpfSksdH12YXIgUWU9U3ltYm9sKGBpbnRlcm5hbHNgKTtmdW5jdGlvbiB6KGUpe3JldHVybiBlJiZTdHJpbmcoZSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gQihlKXtyZXR1cm4gZT09PSExfHxlPT1udWxsP2U6Ui5pc0FycmF5KGUpP2UubWFwKEIpOlllKFN0cmluZyhlKSl9ZnVuY3Rpb24gJGUoZSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKSxuPS8oW15ccyw7PV0rKVxzKig/Oj1ccyooW14sO10rKSk/L2cscjtmb3IoO3I9bi5leGVjKGUpOyl0W3JbMV1dPXJbMl07cmV0dXJuIHR9dmFyIGV0PWU9Pi9eWy1fYS16QS1aMC05XmB8fiwhIyQlJicqKy5dKyQvLnRlc3QoZS50cmltKCkpO2Z1bmN0aW9uIHR0KGUsdCxuLHIsaSl7aWYoUi5pc0Z1bmN0aW9uKHIpKXJldHVybiByLmNhbGwodGhpcyx0LG4pO2lmKGkmJih0PW4pLFIuaXNTdHJpbmcodCkpe2lmKFIuaXNTdHJpbmcocikpcmV0dXJuIHQuaW5kZXhPZihyKSE9PS0xO2lmKFIuaXNSZWdFeHAocikpcmV0dXJuIHIudGVzdCh0KX19ZnVuY3Rpb24gbnQoZSl7cmV0dXJuIGUudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcZF0pKFx3KikvZywoZSx0LG4pPT50LnRvVXBwZXJDYXNlKCkrbil9ZnVuY3Rpb24gcnQoZSx0KXtsZXQgbj1SLnRvQ2FtZWxDYXNlKGAgYCt0KTtbYGdldGAsYHNldGAsYGhhc2BdLmZvckVhY2gocj0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIrbix7X19wcm90b19fOm51bGwsdmFsdWU6ZnVuY3Rpb24oZSxuLGkpe3JldHVybiB0aGlzW3JdLmNhbGwodGhpcyx0LGUsbixpKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgVj1jbGFzc3tjb25zdHJ1Y3RvcihlKXtlJiZ0aGlzLnNldChlKX1zZXQoZSx0LG4pe2xldCByPXRoaXM7ZnVuY3Rpb24gaShlLHQsbil7bGV0IGk9eih0KTtpZighaSlyZXR1cm47bGV0IGE9Ui5maW5kS2V5KHIsaSk7KCFhfHxyW2FdPT09dm9pZCAwfHxuPT09ITB8fG49PT12b2lkIDAmJnJbYV0hPT0hMSkmJihyW2F8fHRdPUIoZSkpfWxldCBhPShlLHQpPT5SLmZvckVhY2goZSwoZSxuKT0+aShlLG4sdCkpO2lmKFIuaXNQbGFpbk9iamVjdChlKXx8ZSBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpYShlLHQpO2Vsc2UgaWYoUi5pc1N0cmluZyhlKSYmKGU9ZS50cmltKCkpJiYhZXQoZSkpYShXZShlKSx0KTtlbHNlIGlmKFIuaXNPYmplY3QoZSkmJlIuaXNTYWZlSXRlcmFibGUoZSkpe2xldCBuPU9iamVjdC5jcmVhdGUobnVsbCkscixpO2ZvcihsZXQgdCBvZiBlKXtpZighUi5pc0FycmF5KHQpKXRocm93IFR5cGVFcnJvcihgT2JqZWN0IGl0ZXJhdG9yIG11c3QgcmV0dXJuIGEga2V5LXZhbHVlIHBhaXJgKTtpPXRbMF0sUi5oYXNPd25Qcm9wKG4saSk/KHI9bltpXSxuW2ldPVIuaXNBcnJheShyKT9bLi4ucix0WzFdXTpbcix0WzFdXSk6bltpXT10WzFdfWEobix0KX1lbHNlIGUhPW51bGwmJmkodCxlLG4pO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9eihlKSxlKXtsZXQgbj1SLmZpbmRLZXkodGhpcyxlKTtpZihuKXtsZXQgZT10aGlzW25dO2lmKCF0KXJldHVybiBlO2lmKHQ9PT0hMClyZXR1cm4gJGUoZSk7aWYoUi5pc0Z1bmN0aW9uKHQpKXJldHVybiB0LmNhbGwodGhpcyxlLG4pO2lmKFIuaXNSZWdFeHAodCkpcmV0dXJuIHQuZXhlYyhlKTt0aHJvdyBUeXBlRXJyb3IoYHBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uYCl9fX1oYXMoZSx0KXtpZihlPXooZSksZSl7bGV0IG49Ui5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEobiYmdGhpc1tuXSE9PXZvaWQgMCYmKCF0fHx0dCh0aGlzLHRoaXNbbl0sbix0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCBuPXRoaXMscj0hMTtmdW5jdGlvbiBpKGUpe2lmKGU9eihlKSxlKXtsZXQgaT1SLmZpbmRLZXkobixlKTtpJiYoIXR8fHR0KG4sbltpXSxpLHQpKSYmKGRlbGV0ZSBuW2ldLHI9ITApfX1yZXR1cm4gUi5pc0FycmF5KGUpP2UuZm9yRWFjaChpKTppKGUpLHJ9Y2xlYXIoZSl7bGV0IHQ9T2JqZWN0LmtleXModGhpcyksbj10Lmxlbmd0aCxyPSExO2Zvcig7bi0tOyl7bGV0IGk9dFtuXTsoIWV8fHR0KHRoaXMsdGhpc1tpXSxpLGUsITApKSYmKGRlbGV0ZSB0aGlzW2ldLHI9ITApfXJldHVybiByfW5vcm1hbGl6ZShlKXtsZXQgdD10aGlzLG49e307cmV0dXJuIFIuZm9yRWFjaCh0aGlzLChyLGkpPT57bGV0IGE9Ui5maW5kS2V5KG4saSk7aWYoYSl7dFthXT1CKHIpLGRlbGV0ZSB0W2ldO3JldHVybn1sZXQgbz1lP250KGkpOlN0cmluZyhpKS50cmltKCk7byE9PWkmJmRlbGV0ZSB0W2ldLHRbb109QihyKSxuW29dPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIFIuZm9yRWFjaCh0aGlzLChuLHIpPT57biE9bnVsbCYmbiE9PSExJiYodFtyXT1lJiZSLmlzQXJyYXkobik/bi5qb2luKGAsIGApOm4pfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrYDogYCt0KS5qb2luKGAKYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KGBzZXQtY29va2llYCl8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuYEF4aW9zSGVhZGVyc2B9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCBuPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2goZT0+bi5zZXQoZSkpLG59c3RhdGljIGFjY2Vzc29yKGUpe2xldCB0PSh0aGlzW1FlXT10aGlzW1FlXT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLG49dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gcihlKXtsZXQgcj16KGUpO3Rbcl18fChydChuLGUpLHRbcl09ITApfXJldHVybiBSLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKHIpOnIoZSksdGhpc319O1YuYWNjZXNzb3IoW2BDb250ZW50LVR5cGVgLGBDb250ZW50LUxlbmd0aGAsYEFjY2VwdGAsYEFjY2VwdC1FbmNvZGluZ2AsYFVzZXItQWdlbnRgLGBBdXRob3JpemF0aW9uYF0pLFIucmVkdWNlRGVzY3JpcHRvcnMoVi5wcm90b3R5cGUsKHt2YWx1ZTplfSx0KT0+e2xldCBuPXRbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PmUsc2V0KGUpe3RoaXNbbl09ZX19fSksUi5mcmVlemVNZXRob2RzKFYpO3ZhciBpdD1gW1JFREFDVEVEICoqKipdYDtmdW5jdGlvbiBhdChlKXtpZihSLmhhc093blByb3AoZSxgdG9KU09OYCkpcmV0dXJuITA7bGV0IHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO2Zvcig7dCYmdCE9PU9iamVjdC5wcm90b3R5cGU7KXtpZihSLmhhc093blByb3AodCxgdG9KU09OYCkpcmV0dXJuITA7dD1PYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9cmV0dXJuITF9ZnVuY3Rpb24gb3QoZSx0KXtsZXQgbj1uZXcgU2V0KHQubWFwKGU9PlN0cmluZyhlKS50b0xvd2VyQ2FzZSgpKSkscj1bXSxpPWU9PntpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlfHxSLmlzQnVmZmVyKGUpKXJldHVybiBlO2lmKHIuaW5kZXhPZihlKSE9PS0xKXJldHVybjtlIGluc3RhbmNlb2YgViYmKGU9ZS50b0pTT04oKSksci5wdXNoKGUpO2xldCB0O2lmKFIuaXNBcnJheShlKSl0PVtdLGUuZm9yRWFjaCgoZSxuKT0+e2xldCByPWkoZSk7Ui5pc1VuZGVmaW5lZChyKXx8KHRbbl09cil9KTtlbHNle2lmKCFSLmlzUGxhaW5PYmplY3QoZSkmJmF0KGUpKXJldHVybiByLnBvcCgpLGU7dD1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXRbcixhXW9mIE9iamVjdC5lbnRyaWVzKGUpKXtsZXQgZT1uLmhhcyhyLnRvTG93ZXJDYXNlKCkpP2l0OmkoYSk7Ui5pc1VuZGVmaW5lZChlKXx8KHRbcl09ZSl9fXJldHVybiByLnBvcCgpLHR9O3JldHVybiBpKGUpfXZhciBIPWNsYXNzIGUgZXh0ZW5kcyBFcnJvcntzdGF0aWMgZnJvbSh0LG4scixpLGEsbyl7bGV0IHM9bmV3IGUodC5tZXNzYWdlLG58fHQuY29kZSxyLGksYSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJjYXVzZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOnQsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxzLm5hbWU9dC5uYW1lLHQuc3RhdHVzIT1udWxsJiZzLnN0YXR1cz09bnVsbCYmKHMuc3RhdHVzPXQuc3RhdHVzKSxvJiZPYmplY3QuYXNzaWduKHMsbyksc31jb25zdHJ1Y3RvcihlLHQsbixyLGkpe3N1cGVyKGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJtZXNzYWdlIix7X19wcm90b19fOm51bGwsdmFsdWU6ZSxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHRoaXMubmFtZT1gQXhpb3NFcnJvcmAsdGhpcy5pc0F4aW9zRXJyb3I9ITAsdCYmKHRoaXMuY29kZT10KSxuJiYodGhpcy5jb25maWc9biksciYmKHRoaXMucmVxdWVzdD1yKSxpJiYodGhpcy5yZXNwb25zZT1pLHRoaXMuc3RhdHVzPWkuc3RhdHVzKX10b0pTT04oKXtsZXQgZT10aGlzLmNvbmZpZyx0PWUmJlIuaGFzT3duUHJvcChlLGByZWRhY3RgKT9lLnJlZGFjdDp2b2lkIDAsbj1SLmlzQXJyYXkodCkmJnQubGVuZ3RoPjA/b3QoZSx0KTpSLnRvSlNPTk9iamVjdChlKTtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6bixjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX07SC5FUlJfQkFEX09QVElPTl9WQUxVRT1gRVJSX0JBRF9PUFRJT05fVkFMVUVgLEguRVJSX0JBRF9PUFRJT049YEVSUl9CQURfT1BUSU9OYCxILkVDT05OQUJPUlRFRD1gRUNPTk5BQk9SVEVEYCxILkVUSU1FRE9VVD1gRVRJTUVET1VUYCxILkVDT05OUkVGVVNFRD1gRUNPTk5SRUZVU0VEYCxILkVSUl9ORVRXT1JLPWBFUlJfTkVUV09SS2AsSC5FUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTPWBFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTYCxILkVSUl9ERVBSRUNBVEVEPWBFUlJfREVQUkVDQVRFRGAsSC5FUlJfQkFEX1JFU1BPTlNFPWBFUlJfQkFEX1JFU1BPTlNFYCxILkVSUl9CQURfUkVRVUVTVD1gRVJSX0JBRF9SRVFVRVNUYCxILkVSUl9DQU5DRUxFRD1gRVJSX0NBTkNFTEVEYCxILkVSUl9OT1RfU1VQUE9SVD1gRVJSX05PVF9TVVBQT1JUYCxILkVSUl9JTlZBTElEX1VSTD1gRVJSX0lOVkFMSURfVVJMYCxILkVSUl9GT1JNX0RBVEFfREVQVEhfRVhDRUVERUQ9YEVSUl9GT1JNX0RBVEFfREVQVEhfRVhDRUVERURgO2Z1bmN0aW9uIHN0KGUpe3JldHVybiBSLmlzUGxhaW5PYmplY3QoZSl8fFIuaXNBcnJheShlKX1mdW5jdGlvbiBjdChlKXtyZXR1cm4gUi5lbmRzV2l0aChlLGBbXWApP2Uuc2xpY2UoMCwtMik6ZX1mdW5jdGlvbiBsdChlLHQsbil7cmV0dXJuIGU/ZS5jb25jYXQodCkubWFwKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9Y3QoZSksIW4mJnQ/YFtgK2UrYF1gOmV9KS5qb2luKG4/YC5gOmBgKTp0fWZ1bmN0aW9uIHV0KGUpe3JldHVybiBSLmlzQXJyYXkoZSkmJiFlLnNvbWUoc3QpfXZhciBkdD1SLnRvRmxhdE9iamVjdChSLHt9LG51bGwsZnVuY3Rpb24oZSl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KGUpfSk7ZnVuY3Rpb24gVShlLHQsbil7aWYoIVIuaXNPYmplY3QoZSkpdGhyb3cgVHlwZUVycm9yKGB0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3RgKTt0fHw9bmV3IEZvcm1EYXRhLG49Ui50b0ZsYXRPYmplY3Qobix7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIVIuaXNVbmRlZmluZWQodFtlXSl9KTtsZXQgcj1uLm1ldGFUb2tlbnMsaT1uLnZpc2l0b3J8fG0sYT1uLmRvdHMsbz1uLmluZGV4ZXMscz1uLkJsb2J8fHR5cGVvZiBCbG9iPGB1YCYmQmxvYixjPW4ubWF4RGVwdGg9PT12b2lkIDA/MTAwOm4ubWF4RGVwdGgsbD1zJiZSLmlzU3BlY0NvbXBsaWFudEZvcm0odCksdT1bXTtpZighUi5pc0Z1bmN0aW9uKGkpKXRocm93IFR5cGVFcnJvcihgdmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb25gKTtmdW5jdGlvbiBkKGUpe2lmKGU9PT1udWxsKXJldHVybmBgO2lmKFIuaXNEYXRlKGUpKXJldHVybiBlLnRvSVNPU3RyaW5nKCk7aWYoUi5pc0Jvb2xlYW4oZSkpcmV0dXJuIGUudG9TdHJpbmcoKTtpZighbCYmUi5pc0Jsb2IoZSkpdGhyb3cgbmV3IEgoYEJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuYCk7aWYoUi5pc0FycmF5QnVmZmVyKGUpfHxSLmlzVHlwZWRBcnJheShlKSl7aWYobCYmdHlwZW9mIHM9PWBmdW5jdGlvbmApcmV0dXJuIG5ldyBzKFtlXSk7aWYodHlwZW9mIEJ1ZmZlcjxgdWApcmV0dXJuIEJ1ZmZlci5mcm9tKGUpO3Rocm93IG5ldyBIKGBCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLmAsSC5FUlJfTk9UX1NVUFBPUlQpfXJldHVybiBlfWZ1bmN0aW9uIGYoZSl7aWYoZT5jKXRocm93IG5ldyBIKGBPYmplY3QgaXMgdG9vIGRlZXBseSBuZXN0ZWQgKGArZStgIGxldmVscykuIE1heCBkZXB0aDogYCtjLEguRVJSX0ZPUk1fREFUQV9ERVBUSF9FWENFRURFRCl9ZnVuY3Rpb24gcChlLHQpe2lmKGM9PT0xLzApcmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpO2xldCBuPVtdO3JldHVybiBKU09OLnN0cmluZ2lmeShlLGZ1bmN0aW9uKGUscil7aWYoIVIuaXNPYmplY3QocikpcmV0dXJuIHI7Zm9yKDtuLmxlbmd0aCYmbltuLmxlbmd0aC0xXSE9PXRoaXM7KW4ucG9wKCk7cmV0dXJuIG4ucHVzaChyKSxmKHQrbi5sZW5ndGgtMSkscn0pfWZ1bmN0aW9uIG0oZSxuLGkpe2xldCBzPWU7aWYoUi5pc1JlYWN0TmF0aXZlKHQpJiZSLmlzUmVhY3ROYXRpdmVCbG9iKGUpKXJldHVybiB0LmFwcGVuZChsdChpLG4sYSksZChlKSksITE7aWYoZSYmIWkmJnR5cGVvZiBlPT1gb2JqZWN0YCl7aWYoUi5lbmRzV2l0aChuLGB7fWApKW49cj9uOm4uc2xpY2UoMCwtMiksZT1wKGUsMSk7ZWxzZSBpZihSLmlzQXJyYXkoZSkmJnV0KGUpfHwoUi5pc0ZpbGVMaXN0KGUpfHxSLmVuZHNXaXRoKG4sYFtdYCkpJiYocz1SLnRvQXJyYXkoZSkpKXJldHVybiBuPWN0KG4pLHMuZm9yRWFjaChmdW5jdGlvbihlLHIpeyEoUi5pc1VuZGVmaW5lZChlKXx8ZT09PW51bGwpJiZ0LmFwcGVuZChvPT09ITA/bHQoW25dLHIsYSk6bz09PW51bGw/bjpuK2BbXWAsZChlKSl9KSwhMX1yZXR1cm4gc3QoZSk/ITA6KHQuYXBwZW5kKGx0KGksbixhKSxkKGUpKSwhMSl9bGV0IGg9T2JqZWN0LmFzc2lnbihkdCx7ZGVmYXVsdFZpc2l0b3I6bSxjb252ZXJ0VmFsdWU6ZCxpc1Zpc2l0YWJsZTpzdH0pO2Z1bmN0aW9uIGcoZSxuLHI9MCl7aWYoIVIuaXNVbmRlZmluZWQoZSkpe2lmKGYociksdS5pbmRleE9mKGUpIT09LTEpdGhyb3cgRXJyb3IoYENpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiBgK24uam9pbihgLmApKTt1LnB1c2goZSksUi5mb3JFYWNoKGUsZnVuY3Rpb24oZSxhKXsoIShSLmlzVW5kZWZpbmVkKGUpfHxlPT09bnVsbCkmJmkuY2FsbCh0LGUsUi5pc1N0cmluZyhhKT9hLnRyaW0oKTphLG4saCkpPT09ITAmJmcoZSxuP24uY29uY2F0KGEpOlthXSxyKzEpfSksdS5wb3AoKX19aWYoIVIuaXNPYmplY3QoZSkpdGhyb3cgVHlwZUVycm9yKGBkYXRhIG11c3QgYmUgYW4gb2JqZWN0YCk7cmV0dXJuIGcoZSksdH1mdW5jdGlvbiBmdChlKXtsZXQgdD17IiEiOmAlMjFgLCInIjpgJTI3YCwiKCI6YCUyOGAsIikiOmAlMjlgLCJ+IjpgJTdFYCwiJTIwIjpgK2B9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvWyEnKCl+XXwlMjAvZyxmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pfWZ1bmN0aW9uIHB0KGUsdCl7dGhpcy5fcGFpcnM9W10sZSYmVShlLHRoaXMsdCl9dmFyIG10PXB0LnByb3RvdHlwZTttdC5hcHBlbmQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl9wYWlycy5wdXNoKFtlLHRdKX0sbXQudG9TdHJpbmc9ZnVuY3Rpb24oZSl7bGV0IHQ9ZT90PT5lLmNhbGwodGhpcyx0LGZ0KTpmdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0KGVbMF0pK2A9YCt0KGVbMV0pfSxgYCkuam9pbihgJmApfTtmdW5jdGlvbiBodChlKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGUpLnJlcGxhY2UoLyUzQS9naSxgOmApLnJlcGxhY2UoLyUyNC9nLGAkYCkucmVwbGFjZSgvJTJDL2dpLGAsYCkucmVwbGFjZSgvJTIwL2csYCtgKX1mdW5jdGlvbiBndChlLHQsbil7aWYoIXQpcmV0dXJuIGU7ZXx8PWBgO2xldCByPVIuaXNGdW5jdGlvbihuKT97c2VyaWFsaXplOm59Om4saT1SLmdldFNhZmVQcm9wKHIsYGVuY29kZWApfHxodCxhPVIuZ2V0U2FmZVByb3Aocixgc2VyaWFsaXplYCksbztpZihvPWE/YSh0LHIpOlIuaXNVUkxTZWFyY2hQYXJhbXModCk/dC50b1N0cmluZygpOm5ldyBwdCh0LHIpLnRvU3RyaW5nKGkpLG8pe2xldCB0PWUuaW5kZXhPZihgI2ApO3QhPT0tMSYmKGU9ZS5zbGljZSgwLHQpKSxlKz0oZS5pbmRleE9mKGA/YCk9PT0tMT9gP2A6YCZgKStvfXJldHVybiBlfXZhciBfdD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxuKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOm4/bi5zeW5jaHJvbm91czohMSxydW5XaGVuOm4/bi5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmPVtdfWZvckVhY2goZSl7Ui5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24odCl7dCE9PW51bGwmJmUodCl9KX19LHZ0PXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExLGxlZ2FjeUludGVyY2VwdG9yUmVxUmVzT3JkZXJpbmc6ITAsYWR2ZXJ0aXNlWnN0ZEFjY2VwdEVuY29kaW5nOiExLHZhbGlkYXRlU3RhdHVzVW5kZWZpbmVkUmVzb2x2ZXM6ITB9LHl0PXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOnR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8YHVgP1VSTFNlYXJjaFBhcmFtczpwdCxGb3JtRGF0YTp0eXBlb2YgRm9ybURhdGE8YHVgP0Zvcm1EYXRhOm51bGwsQmxvYjp0eXBlb2YgQmxvYjxgdWA/QmxvYjpudWxsfSxwcm90b2NvbHM6W2BodHRwYCxgaHR0cHNgLGBmaWxlYCxgYmxvYmAsYHVybGAsYGRhdGFgXX0sYnQ9Yyh7aGFzQnJvd3NlckVudjooKT0+eHQsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5DdCxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9Pnd0LG5hdmlnYXRvcjooKT0+U3Qsb3JpZ2luOigpPT5UdH0pLHh0PXR5cGVvZiB3aW5kb3c8YHVgJiZ0eXBlb2YgZG9jdW1lbnQ8YHVgLFN0PXR5cGVvZiBuYXZpZ2F0b3I9PWBvYmplY3RgJiZuYXZpZ2F0b3J8fHZvaWQgMCxDdD14dCYmKCFTdHx8W2BSZWFjdE5hdGl2ZWAsYE5hdGl2ZVNjcmlwdGAsYE5TYF0uaW5kZXhPZihTdC5wcm9kdWN0KTwwKSx3dD10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8YHVgJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PWBmdW5jdGlvbmAsVHQ9eHQmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHxgaHR0cDovL2xvY2FsaG9zdGAsVz17Li4uYnQsLi4ueXR9O2Z1bmN0aW9uIEV0KGUsdCl7cmV0dXJuIFUoZSxuZXcgVy5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gVy5pc05vZGUmJlIuaXNCdWZmZXIoZSk/KHRoaXMuYXBwZW5kKHQsZS50b1N0cmluZyhgYmFzZTY0YCkpLCExKTpyLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4udH0pfXZhciBEdD0xMDA7ZnVuY3Rpb24gT3QoZSl7aWYoZT5EdCl0aHJvdyBuZXcgSChgRm9ybURhdGEgZmllbGQgaXMgdG9vIGRlZXBseSBuZXN0ZWQgKGArZStgIGxldmVscykuIE1heCBkZXB0aDogYCtEdCxILkVSUl9GT1JNX0RBVEFfREVQVEhfRVhDRUVERUQpfWZ1bmN0aW9uIGt0KGUpe2xldCB0PVtdLG49L1x3K3xcWyhcdyopXS9nLHI7Zm9yKDsocj1uLmV4ZWMoZSkpIT09bnVsbDspT3QodC5sZW5ndGgpLHQucHVzaChyWzBdPT09YFtdYD9gYDpyWzFdfHxyWzBdKTtyZXR1cm4gdH1mdW5jdGlvbiBBdChlKXtsZXQgdD17fSxuPU9iamVjdC5rZXlzKGUpLHIsaT1uLmxlbmd0aCxhO2ZvcihyPTA7cjxpO3IrKylhPW5bcl0sdFthXT1lW2FdO3JldHVybiB0fWZ1bmN0aW9uIGp0KGUpe2Z1bmN0aW9uIHQoZSxuLHIsaSl7T3QoaSk7bGV0IGE9ZVtpKytdO2lmKGE9PT1gX19wcm90b19fYClyZXR1cm4hMDtsZXQgbz1OdW1iZXIuaXNGaW5pdGUoK2EpLHM9aT49ZS5sZW5ndGg7cmV0dXJuIGE9IWEmJlIuaXNBcnJheShyKT9yLmxlbmd0aDphLHM/KFIuaGFzT3duUHJvcChyLGEpP3JbYV09Ui5pc0FycmF5KHJbYV0pP3JbYV0uY29uY2F0KG4pOltyW2FdLG5dOnJbYV09biwhbyk6KCghUi5oYXNPd25Qcm9wKHIsYSl8fCFSLmlzT2JqZWN0KHJbYV0pKSYmKHJbYV09W10pLHQoZSxuLHJbYV0saSkmJlIuaXNBcnJheShyW2FdKSYmKHJbYV09QXQoclthXSkpLCFvKX1pZihSLmlzRm9ybURhdGEoZSkmJlIuaXNGdW5jdGlvbihlLmVudHJpZXMpKXtsZXQgbj17fTtyZXR1cm4gUi5mb3JFYWNoRW50cnkoZSwoZSxyKT0+e3Qoa3QoZSkscixuLDApfSksbn1yZXR1cm4gbnVsbH12YXIgRz0oZSx0KT0+ZSE9bnVsbCYmUi5oYXNPd25Qcm9wKGUsdCk/ZVt0XTp2b2lkIDA7ZnVuY3Rpb24gTXQoZSx0LG4pe2lmKFIuaXNTdHJpbmcoZSkpdHJ5e3JldHVybih0fHxKU09OLnBhcnNlKShlKSxSLnRyaW0oZSl9Y2F0Y2goZSl7aWYoZS5uYW1lIT09YFN5bnRheEVycm9yYCl0aHJvdyBlfXJldHVybihufHxKU09OLnN0cmluZ2lmeSkoZSl9dmFyIEs9e3RyYW5zaXRpb25hbDp2dCxhZGFwdGVyOltgeGhyYCxgaHR0cGAsYGZldGNoYF0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24oZSx0KXtsZXQgbj10LmdldENvbnRlbnRUeXBlKCl8fGBgLHI9bi5pbmRleE9mKGBhcHBsaWNhdGlvbi9qc29uYCk+LTEsaT1SLmlzT2JqZWN0KGUpO2lmKGkmJlIuaXNIVE1MRm9ybShlKSYmKGU9bmV3IEZvcm1EYXRhKGUpKSxSLmlzRm9ybURhdGEoZSkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkoanQoZSkpOmU7aWYoUi5pc0FycmF5QnVmZmVyKGUpfHxSLmlzQnVmZmVyKGUpfHxSLmlzU3RyZWFtKGUpfHxSLmlzRmlsZShlKXx8Ui5pc0Jsb2IoZSl8fFIuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihSLmlzQXJyYXlCdWZmZXJWaWV3KGUpKXJldHVybiBlLmJ1ZmZlcjtpZihSLmlzVVJMU2VhcmNoUGFyYW1zKGUpKXJldHVybiB0LnNldENvbnRlbnRUeXBlKGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOGAsITEpLGUudG9TdHJpbmcoKTtsZXQgYTtpZihpKXtsZXQgdD1HKHRoaXMsYGZvcm1TZXJpYWxpemVyYCk7aWYobi5pbmRleE9mKGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgKT4tMSlyZXR1cm4gRXQoZSx0KS50b1N0cmluZygpO2lmKChhPVIuaXNGaWxlTGlzdChlKSl8fG4uaW5kZXhPZihgbXVsdGlwYXJ0L2Zvcm0tZGF0YWApPi0xKXtsZXQgbj1HKHRoaXMsYGVudmApLHI9biYmbi5Gb3JtRGF0YTtyZXR1cm4gVShhP3siZmlsZXNbXSI6ZX06ZSxyJiZuZXcgcix0KX19cmV0dXJuIGl8fHI/KHQuc2V0Q29udGVudFR5cGUoYGFwcGxpY2F0aW9uL2pzb25gLCExKSxNdChlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXtsZXQgdD1HKHRoaXMsYHRyYW5zaXRpb25hbGApfHxLLnRyYW5zaXRpb25hbCxuPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcscj1HKHRoaXMsYHJlc3BvbnNlVHlwZWApLGk9cj09PWBqc29uYDtpZihSLmlzUmVzcG9uc2UoZSl8fFIuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZSLmlzU3RyaW5nKGUpJiYobiYmIXJ8fGkpKXtsZXQgbj0hKHQmJnQuc2lsZW50SlNPTlBhcnNpbmcpJiZpO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlLEcodGhpcyxgcGFyc2VSZXZpdmVyYCkpfWNhdGNoKGUpe2lmKG4pdGhyb3cgZS5uYW1lPT09YFN5bnRheEVycm9yYD9ILmZyb20oZSxILkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLEcodGhpcyxgcmVzcG9uc2VgKSk6ZX19cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6YFhTUkYtVE9LRU5gLHhzcmZIZWFkZXJOYW1lOmBYLVhTUkYtVE9LRU5gLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOlcuY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOlcuY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6YGFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKmAsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O1IuZm9yRWFjaChbYGRlbGV0ZWAsYGdldGAsYGhlYWRgLGBwb3N0YCxgcHV0YCxgcGF0Y2hgLGBxdWVyeWBdLGU9PntLLmhlYWRlcnNbZV09e319KTtmdW5jdGlvbiBOdChlLHQpe2xldCBuPXRoaXN8fEsscj10fHxuLGk9Vi5mcm9tKHIuaGVhZGVycyksYT1yLmRhdGE7cmV0dXJuIFIuZm9yRWFjaChlLGZ1bmN0aW9uKGUpe2E9ZS5jYWxsKG4sYSxpLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pLGkubm9ybWFsaXplKCksYX1mdW5jdGlvbiBQdChlKXtyZXR1cm4hIShlJiZlLl9fQ0FOQ0VMX18pfXZhciBxPWNsYXNzIGV4dGVuZHMgSHtjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIoZT8/YGNhbmNlbGVkYCxILkVSUl9DQU5DRUxFRCx0LG4pLHRoaXMubmFtZT1gQ2FuY2VsZWRFcnJvcmAsdGhpcy5fX0NBTkNFTF9fPSEwfX07ZnVuY3Rpb24gRnQoZSx0LG4pe2xldCByPW4uY29uZmlnLnZhbGlkYXRlU3RhdHVzOyFuLnN0YXR1c3x8IXJ8fHIobi5zdGF0dXMpP2Uobik6dChuZXcgSChgUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSBgK24uc3RhdHVzLG4uc3RhdHVzPj00MDAmJm4uc3RhdHVzPDUwMD9ILkVSUl9CQURfUkVRVUVTVDpILkVSUl9CQURfUkVTUE9OU0Usbi5jb25maWcsbi5yZXF1ZXN0LG4pKX1mdW5jdGlvbiBJdChlKXtsZXQgdD0vXihbLStcd117MSwyNX0pOig/OlwvXC8pPy8uZXhlYyhlKTtyZXR1cm4gdCYmdFsxXXx8YGB9ZnVuY3Rpb24gTHQoZSx0KXtlfHw9MTA7bGV0IG49QXJyYXkoZSkscj1BcnJheShlKSxpPTAsYT0wLG87cmV0dXJuIHQ9dD09PXZvaWQgMD8xZTM6dCxmdW5jdGlvbihzKXtsZXQgYz1EYXRlLm5vdygpLGw9clthXTtvfHw9YyxuW2ldPXMscltpXT1jO2xldCB1PWEsZD0wO2Zvcig7dSE9PWk7KWQrPW5bdSsrXSx1JT1lO2lmKGk9KGkrMSklZSxpPT09YSYmKGE9KGErMSklZSksYy1vPHQpcmV0dXJuO2xldCBmPWwmJmMtbDtyZXR1cm4gZj9NYXRoLnJvdW5kKGQqMWUzL2YpOnZvaWQgMH19ZnVuY3Rpb24gUnQoZSx0KXtsZXQgbj0wLHI9MWUzL3QsaSxhLG89KHQscj1EYXRlLm5vdygpKT0+e249cixpPW51bGwsYSYmPShjbGVhclRpbWVvdXQoYSksbnVsbCksZSguLi50KX07cmV0dXJuWyguLi5lKT0+e2xldCB0PURhdGUubm93KCkscz10LW47cz49cj9vKGUsdCk6KGk9ZSxhfHw9c2V0VGltZW91dCgoKT0+e2E9bnVsbCxvKGkpfSxyLXMpKX0sKCk9PmkmJm8oaSldfXZhciB6dD0oZSx0LG49Myk9PntsZXQgcj0wLGk9THQoNTAsMjUwKTtyZXR1cm4gUnQobj0+e2lmKCFufHx0eXBlb2Ygbi5sb2FkZWQhPWBudW1iZXJgKXJldHVybjtsZXQgYT1uLmxvYWRlZCxvPW4ubGVuZ3RoQ29tcHV0YWJsZT9uLnRvdGFsOnZvaWQgMCxzPW89PW51bGw/YTpNYXRoLm1pbihhLG8pLGM9TWF0aC5tYXgoMCxzLXIpLGw9aShjKTtyPU1hdGgubWF4KHIscyksZSh7bG9hZGVkOnMsdG90YWw6byxwcm9ncmVzczpvP3Mvbzp2b2lkIDAsYnl0ZXM6YyxyYXRlOmx8fHZvaWQgMCxlc3RpbWF0ZWQ6bCYmbz8oby1zKS9sOnZvaWQgMCxldmVudDpuLGxlbmd0aENvbXB1dGFibGU6byE9bnVsbCxbdD9gZG93bmxvYWRgOmB1cGxvYWRgXTohMH0pfSxuKX0sQnQ9KGUsdCk9PntsZXQgbj1lIT1udWxsO3JldHVybltyPT50WzBdKHtsZW5ndGhDb21wdXRhYmxlOm4sdG90YWw6ZSxsb2FkZWQ6cn0pLHRbMV1dfSxWdD1lPT4oLi4udCk9PlIuYXNhcCgoKT0+ZSguLi50KSksSHQ9Vy5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChlLHQpPT5uPT4obj1uZXcgVVJMKG4sVy5vcmlnaW4pLGUucHJvdG9jb2w9PT1uLnByb3RvY29sJiZlLmhvc3Q9PT1uLmhvc3QmJih0fHxlLnBvcnQ9PT1uLnBvcnQpKSkobmV3IFVSTChXLm9yaWdpbiksVy5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoVy5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwLFV0PVcuaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShlLHQsbixyLGksYSxvKXtpZih0eXBlb2YgZG9jdW1lbnQ+YHVgKXJldHVybjtsZXQgcz1bYCR7ZX09JHtlbmNvZGVVUklDb21wb25lbnQodCl9YF07Ui5pc051bWJlcihuKSYmcy5wdXNoKGBleHBpcmVzPSR7bmV3IERhdGUobikudG9VVENTdHJpbmcoKX1gKSxSLmlzU3RyaW5nKHIpJiZzLnB1c2goYHBhdGg9JHtyfWApLFIuaXNTdHJpbmcoaSkmJnMucHVzaChgZG9tYWluPSR7aX1gKSxhPT09ITAmJnMucHVzaChgc2VjdXJlYCksUi5pc1N0cmluZyhvKSYmcy5wdXNoKGBTYW1lU2l0ZT0ke299YCksZG9jdW1lbnQuY29va2llPXMuam9pbihgOyBgKX0scmVhZChlKXtpZih0eXBlb2YgZG9jdW1lbnQ+YHVgKXJldHVybiBudWxsO2xldCB0PWRvY3VtZW50LmNvb2tpZS5zcGxpdChgO2ApO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtsZXQgcj10W25dLnJlcGxhY2UoL15ccysvLGBgKSxpPXIuaW5kZXhPZihgPWApO2lmKGkhPT0tMSYmci5zbGljZSgwLGkpPT09ZSl0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChyLnNsaWNlKGkrMSkpfWNhdGNoe3JldHVybiByLnNsaWNlKGkrMSl9fXJldHVybiBudWxsfSxyZW1vdmUoZSl7dGhpcy53cml0ZShlLGBgLERhdGUubm93KCktODY0ZTUsYC9gKX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiBXdChlKXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgPy9eKFthLXpdW2EtelxkK1wtLl0qOik/XC9cLy9pLnRlc3QoZSk6ITF9ZnVuY3Rpb24gR3QoZSx0KXtyZXR1cm4gdD9lLnJlcGxhY2UoL1wvP1wvJC8sYGApK2AvYCt0LnJlcGxhY2UoL15cLysvLGBgKTplfXZhciBLdD0vXmh0dHBzPzooPyFcL1wvKS9pLHF0PS9bXHRcblxyXS9nO2Z1bmN0aW9uIEp0KGUpe2xldCB0PTA7Zm9yKDt0PGUubGVuZ3RoJiZlLmNoYXJDb2RlQXQodCk8PTMyOyl0Kys7cmV0dXJuIGUuc2xpY2UodCl9ZnVuY3Rpb24gWXQoZSl7cmV0dXJuIEp0KGUpLnJlcGxhY2UocXQsYGApfWZ1bmN0aW9uIFh0KGUsdCl7aWYodHlwZW9mIGU9PWBzdHJpbmdgJiZLdC50ZXN0KFl0KGUpKSl0aHJvdyBuZXcgSChgSW52YWxpZCBVUkw6IG1pc3NpbmcgIi8vIiBhZnRlciBwcm90b2NvbGAsSC5FUlJfSU5WQUxJRF9VUkwsdCl9ZnVuY3Rpb24gWnQoZSx0LG4scil7WHQodCxyKTtsZXQgaT0hV3QodCk7cmV0dXJuIGUmJihpfHxuPT09ITEpPyhYdChlLHIpLEd0KGUsdCkpOnR9dmFyIFF0PWU9PmUgaW5zdGFuY2VvZiBWP3suLi5lfTplO2Z1bmN0aW9uIEooZSx0KXtlfHw9e30sdHx8PXt9O2xldCBuPU9iamVjdC5jcmVhdGUobnVsbCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sImhhc093blByb3BlcnR5Iix7X19wcm90b19fOm51bGwsdmFsdWU6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pO2Z1bmN0aW9uIHIoZSx0LG4scil7cmV0dXJuIFIuaXNQbGFpbk9iamVjdChlKSYmUi5pc1BsYWluT2JqZWN0KHQpP1IubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6cn0sZSx0KTpSLmlzUGxhaW5PYmplY3QodCk/Ui5tZXJnZSh7fSx0KTpSLmlzQXJyYXkodCk/dC5zbGljZSgpOnR9ZnVuY3Rpb24gaShlLHQsbixpKXtpZighUi5pc1VuZGVmaW5lZCh0KSlyZXR1cm4gcihlLHQsbixpKTtpZighUi5pc1VuZGVmaW5lZChlKSlyZXR1cm4gcih2b2lkIDAsZSxuLGkpfWZ1bmN0aW9uIGEoZSx0KXtpZighUi5pc1VuZGVmaW5lZCh0KSlyZXR1cm4gcih2b2lkIDAsdCl9ZnVuY3Rpb24gbyhlLHQpe2lmKCFSLmlzVW5kZWZpbmVkKHQpKXJldHVybiByKHZvaWQgMCx0KTtpZighUi5pc1VuZGVmaW5lZChlKSlyZXR1cm4gcih2b2lkIDAsZSl9ZnVuY3Rpb24gcyhuKXtsZXQgcj1SLmhhc093blByb3AodCxgdHJhbnNpdGlvbmFsYCk/dC50cmFuc2l0aW9uYWw6dm9pZCAwO2lmKCFSLmlzVW5kZWZpbmVkKHIpKWlmKFIuaXNQbGFpbk9iamVjdChyKSl7aWYoUi5oYXNPd25Qcm9wKHIsbikpcmV0dXJuIHJbbl19ZWxzZSByZXR1cm47bGV0IGk9Ui5oYXNPd25Qcm9wKGUsYHRyYW5zaXRpb25hbGApP2UudHJhbnNpdGlvbmFsOnZvaWQgMDtpZihSLmlzUGxhaW5PYmplY3QoaSkmJlIuaGFzT3duUHJvcChpLG4pKXJldHVybiBpW25dfWZ1bmN0aW9uIGMobixpLGEpe2lmKFIuaGFzT3duUHJvcCh0LGEpKXJldHVybiByKG4saSk7aWYoUi5oYXNPd25Qcm9wKGUsYSkpcmV0dXJuIHIodm9pZCAwLG4pfWxldCBsPXt1cmw6YSxtZXRob2Q6YSxkYXRhOmEsYmFzZVVSTDpvLHRyYW5zZm9ybVJlcXVlc3Q6byx0cmFuc2Zvcm1SZXNwb25zZTpvLHBhcmFtc1NlcmlhbGl6ZXI6byx0aW1lb3V0Om8sdGltZW91dE1lc3NhZ2U6byx3aXRoQ3JlZGVudGlhbHM6byx3aXRoWFNSRlRva2VuOm8sYWRhcHRlcjpvLHJlc3BvbnNlVHlwZTpvLHhzcmZDb29raWVOYW1lOm8seHNyZkhlYWRlck5hbWU6byxvblVwbG9hZFByb2dyZXNzOm8sb25Eb3dubG9hZFByb2dyZXNzOm8sZGVjb21wcmVzczpvLG1heENvbnRlbnRMZW5ndGg6byxtYXhCb2R5TGVuZ3RoOm8sYmVmb3JlUmVkaXJlY3Q6byx0cmFuc3BvcnQ6byxodHRwQWdlbnQ6byxodHRwc0FnZW50Om8sY2FuY2VsVG9rZW46byxzb2NrZXRQYXRoOm8sYWxsb3dlZFNvY2tldFBhdGhzOm8scmVzcG9uc2VFbmNvZGluZzpvLHZhbGlkYXRlU3RhdHVzOmMsaGVhZGVyczooZSx0LG4pPT5pKFF0KGUpLFF0KHQpLG4sITApfTtyZXR1cm4gUi5mb3JFYWNoKE9iamVjdC5rZXlzKHsuLi5lLC4uLnR9KSxmdW5jdGlvbihyKXtpZihyPT09YF9fcHJvdG9fX2B8fHI9PT1gY29uc3RydWN0b3JgfHxyPT09YHByb3RvdHlwZWApcmV0dXJuO2xldCBhPVIuaGFzT3duUHJvcChsLHIpP2xbcl06aSxvPWEoUi5oYXNPd25Qcm9wKGUscik/ZVtyXTp2b2lkIDAsUi5oYXNPd25Qcm9wKHQscik/dFtyXTp2b2lkIDAscik7Ui5pc1VuZGVmaW5lZChvKSYmYSE9PWN8fChuW3JdPW8pfSksUi5oYXNPd25Qcm9wKHQsYHZhbGlkYXRlU3RhdHVzYCkmJlIuaXNVbmRlZmluZWQodC52YWxpZGF0ZVN0YXR1cykmJnMoYHZhbGlkYXRlU3RhdHVzVW5kZWZpbmVkUmVzb2x2ZXNgKT09PSExJiYoUi5oYXNPd25Qcm9wKGUsYHZhbGlkYXRlU3RhdHVzYCk/bi52YWxpZGF0ZVN0YXR1cz1yKHZvaWQgMCxlLnZhbGlkYXRlU3RhdHVzKTpkZWxldGUgbi52YWxpZGF0ZVN0YXR1cyksbn12YXIgJHQ9W2Bjb250ZW50LXR5cGVgLGBjb250ZW50LWxlbmd0aGBdO2Z1bmN0aW9uIGVuKGUsdCxuKXtpZihuIT09YGNvbnRlbnQtb25seWApe2Uuc2V0KHQpO3JldHVybn1PYmplY3QuZW50cmllcyh0fHx7fSkuZm9yRWFjaCgoW3Qsbl0pPT57JHQuaW5jbHVkZXModC50b0xvd2VyQ2FzZSgpKSYmZS5zZXQodCxuKX0pfXZhciB0bj1lPT5lbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZ2ksKGUsdCk9PlN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQodCwxNikpKTtmdW5jdGlvbiBubihlKXtsZXQgdD1KKHt9LGUpLG49ZT0+Ui5oYXNPd25Qcm9wKHQsZSk/dFtlXTp2b2lkIDAscj1uKGBkYXRhYCksaT1uKGB3aXRoWFNSRlRva2VuYCksYT1uKGB4c3JmSGVhZGVyTmFtZWApLG89bihgeHNyZkNvb2tpZU5hbWVgKSxzPW4oYGhlYWRlcnNgKSxjPW4oYGF1dGhgKSxsPW4oYGJhc2VVUkxgKSx1PW4oYGFsbG93QWJzb2x1dGVVcmxzYCksZD1uKGB1cmxgKTtpZih0LmhlYWRlcnM9cz1WLmZyb20ocyksdC51cmw9Z3QoWnQobCxkLHUsdCksbihgcGFyYW1zYCksbihgcGFyYW1zU2VyaWFsaXplcmApKSxjKXtsZXQgdD1SLmdldFNhZmVQcm9wKGMsYHVzZXJuYW1lYCl8fGBgLG49Ui5nZXRTYWZlUHJvcChjLGBwYXNzd29yZGApfHxgYDt0cnl7cy5zZXQoYEF1dGhvcml6YXRpb25gLGBCYXNpYyBgK2J0b2EodCtgOmArKG4/dG4obik6YGApKSl9Y2F0Y2godCl7dGhyb3cgSC5mcm9tKHQsSC5FUlJfQkFEX09QVElPTl9WQUxVRSxlKX19aWYoUi5pc0Zvcm1EYXRhKHIpJiYoVy5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fFcuaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52fHxSLmlzUmVhY3ROYXRpdmUocik/cy5zZXRDb250ZW50VHlwZSh2b2lkIDApOlIuaXNGdW5jdGlvbihyLmdldEhlYWRlcnMpJiZlbihzLHIuZ2V0SGVhZGVycygpLG4oYGZvcm1EYXRhSGVhZGVyUG9saWN5YCkpKSxXLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKFIuaXNGdW5jdGlvbihpKSYmKGk9aSh0KSksaT09PSEwfHxpPT1udWxsJiZIdCh0LnVybCkpKXtsZXQgZT1hJiZvJiZVdC5yZWFkKG8pO2UmJnMuc2V0KGEsZSl9cmV0dXJuIHR9dmFyIHJuPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDxgdWAmJmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4pe2xldCByPW5uKGUpLGk9ci5kYXRhLGE9Vi5mcm9tKHIuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpvLG9uVXBsb2FkUHJvZ3Jlc3M6cyxvbkRvd25sb2FkUHJvZ3Jlc3M6Y309cixsLHUsZCxmLHA7ZnVuY3Rpb24gbSgpe2YmJmYoKSxwJiZwKCksci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShsKSxyLnNpZ25hbCYmci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihgYWJvcnRgLGwpfWxldCBoPW5ldyBYTUxIdHRwUmVxdWVzdDtoLm9wZW4oci5tZXRob2QudG9VcHBlckNhc2UoKSxyLnVybCwhMCksaC50aW1lb3V0PXIudGltZW91dDtmdW5jdGlvbiBnKCl7aWYoIWgpcmV0dXJuO2xldCByPVYuZnJvbShgZ2V0QWxsUmVzcG9uc2VIZWFkZXJzYGluIGgmJmguZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpO0Z0KGZ1bmN0aW9uKGUpe3QoZSksbSgpfSxmdW5jdGlvbihlKXtuKGUpLG0oKX0se2RhdGE6IW98fG89PT1gdGV4dGB8fG89PT1ganNvbmA/aC5yZXNwb25zZVRleHQ6aC5yZXNwb25zZSxzdGF0dXM6aC5zdGF0dXMsc3RhdHVzVGV4dDpoLnN0YXR1c1RleHQsaGVhZGVyczpyLGNvbmZpZzplLHJlcXVlc3Q6aH0pLGg9bnVsbH1gb25sb2FkZW5kYGluIGg/aC5vbmxvYWRlbmQ9ZzpoLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFofHxoLnJlYWR5U3RhdGUhPT00fHxoLnN0YXR1cz09PTAmJiEoaC5yZXNwb25zZVVSTCYmaC5yZXNwb25zZVVSTC5zdGFydHNXaXRoKGBmaWxlOmApKXx8c2V0VGltZW91dChnKX0saC5vbmFib3J0PWZ1bmN0aW9uKCl7aCYmPShuKG5ldyBIKGBSZXF1ZXN0IGFib3J0ZWRgLEguRUNPTk5BQk9SVEVELGUsaCkpLG0oKSxudWxsKX0saC5vbmVycm9yPWZ1bmN0aW9uKHQpe2xldCByPW5ldyBIKHQmJnQubWVzc2FnZT90Lm1lc3NhZ2U6YE5ldHdvcmsgRXJyb3JgLEguRVJSX05FVFdPUkssZSxoKTtyLmV2ZW50PXR8fG51bGwsbihyKSxtKCksaD1udWxsfSxoLm9udGltZW91dD1mdW5jdGlvbigpe2xldCB0PXIudGltZW91dD9gdGltZW91dCBvZiBgK3IudGltZW91dCtgbXMgZXhjZWVkZWRgOmB0aW1lb3V0IGV4Y2VlZGVkYCxpPXIudHJhbnNpdGlvbmFsfHx2dDtyLnRpbWVvdXRFcnJvck1lc3NhZ2UmJih0PXIudGltZW91dEVycm9yTWVzc2FnZSksbihuZXcgSCh0LGkuY2xhcmlmeVRpbWVvdXRFcnJvcj9ILkVUSU1FRE9VVDpILkVDT05OQUJPUlRFRCxlLGgpKSxtKCksaD1udWxsfSxpPT09dm9pZCAwJiZhLnNldENvbnRlbnRUeXBlKG51bGwpLGBzZXRSZXF1ZXN0SGVhZGVyYGluIGgmJlIuZm9yRWFjaChaZShhKSxmdW5jdGlvbihlLHQpe2guc2V0UmVxdWVzdEhlYWRlcih0LGUpfSksUi5pc1VuZGVmaW5lZChyLndpdGhDcmVkZW50aWFscyl8fChoLndpdGhDcmVkZW50aWFscz0hIXIud2l0aENyZWRlbnRpYWxzKSxvJiZvIT09YGpzb25gJiYoaC5yZXNwb25zZVR5cGU9ci5yZXNwb25zZVR5cGUpLGMmJihbZCxwXT16dChjLCEwKSxoLmFkZEV2ZW50TGlzdGVuZXIoYHByb2dyZXNzYCxkKSkscyYmaC51cGxvYWQmJihbdSxmXT16dChzKSxoLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKGBwcm9ncmVzc2AsdSksaC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcihgbG9hZGVuZGAsZikpLChyLmNhbmNlbFRva2VufHxyLnNpZ25hbCkmJihsPXQ9PntoJiY9KG4oIXR8fHQudHlwZT9uZXcgcShudWxsLGUsaCk6dCksaC5hYm9ydCgpLG0oKSxudWxsKX0sci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobCksci5zaWduYWwmJihyLnNpZ25hbC5hYm9ydGVkP2woKTpyLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKGBhYm9ydGAsbCkpKTtsZXQgXz1JdChyLnVybCk7aWYoXyYmIVcucHJvdG9jb2xzLmluY2x1ZGVzKF8pKXtuKG5ldyBIKGBVbnN1cHBvcnRlZCBwcm90b2NvbCBgK18rYDpgLEguRVJSX0JBRF9SRVFVRVNULGUpKSxtKCk7cmV0dXJufWguc2VuZChpfHxudWxsKX0pfSxhbj0oZSx0KT0+e2lmKGU9ZT9lLmZpbHRlcihCb29sZWFuKTpbXSwhdCYmIWUubGVuZ3RoKXJldHVybjtsZXQgbj1uZXcgQWJvcnRDb250cm9sbGVyLHI9ITEsaT1mdW5jdGlvbihlKXtpZighcil7cj0hMCxvKCk7bGV0IHQ9ZSBpbnN0YW5jZW9mIEVycm9yP2U6dGhpcy5yZWFzb247bi5hYm9ydCh0IGluc3RhbmNlb2YgSD90Om5ldyBxKHQgaW5zdGFuY2VvZiBFcnJvcj90Lm1lc3NhZ2U6dCkpfX0sYT10JiZzZXRUaW1lb3V0KCgpPT57YT1udWxsLGkobmV3IEgoYHRpbWVvdXQgb2YgJHt0fW1zIGV4Y2VlZGVkYCxILkVUSU1FRE9VVCkpfSx0KSxvPSgpPT57ZSYmPShhJiZjbGVhclRpbWVvdXQoYSksYT1udWxsLGUuZm9yRWFjaChlPT57ZS51bnN1YnNjcmliZT9lLnVuc3Vic2NyaWJlKGkpOmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihgYWJvcnRgLGkpfSksbnVsbCl9O2UuZm9yRWFjaChlPT5lLmFkZEV2ZW50TGlzdGVuZXIoYGFib3J0YCxpLHtvbmNlOiEwfSkpO2xldHtzaWduYWw6c309bjtyZXR1cm4gcy51bnN1YnNjcmliZT0oKT0+Ui5hc2FwKG8pLHN9LG9uPWZ1bmN0aW9uKihlLHQpe2xldCBuPWUuYnl0ZUxlbmd0aDtpZighdHx8bjx0KXt5aWVsZCBlO3JldHVybn1sZXQgcj0wLGk7Zm9yKDtyPG47KWk9cit0LHlpZWxkIGUuc2xpY2UocixpKSxyPWl9LHNuPWFzeW5jIGZ1bmN0aW9uKihlLHQpe2ZvciBhd2FpdChsZXQgbiBvZiBjbihlKSl5aWVsZCpvbihuLHQpfSxjbj1hc3luYyBmdW5jdGlvbiooZSl7aWYoZVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKmU7cmV0dXJufWxldCB0PWUuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6ZSx2YWx1ZTpufT1hd2FpdCB0LnJlYWQoKTtpZihlKWJyZWFrO3lpZWxkIG59fWZpbmFsbHl7YXdhaXQgdC5jYW5jZWwoKX19LGxuPShlLHQsbixyKT0+e2xldCBpPXNuKGUsdCksYT0wLG8scz1lPT57b3x8KG89ITAsciYmcihlKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwoZSl7dHJ5e2xldHtkb25lOnQsdmFsdWU6cn09YXdhaXQgaS5uZXh0KCk7aWYodCl7cygpLGUuY2xvc2UoKTtyZXR1cm59bGV0IG89ci5ieXRlTGVuZ3RoO24mJm4oYSs9byksZS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHIpKX1jYXRjaChlKXt0aHJvdyBzKGUpLGV9fSxjYW5jZWwoZSl7cmV0dXJuIHMoZSksaS5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX0sdW49ZT0+ZT49NDgmJmU8PTU3fHxlPj02NSYmZTw9NzB8fGU+PTk3JiZlPD0xMDIsZG49KGUsdCxuKT0+dCsyPG4mJnVuKGUuY2hhckNvZGVBdCh0KzEpKSYmdW4oZS5jaGFyQ29kZUF0KHQrMikpO2Z1bmN0aW9uIGZuKGUpe2lmKCFlfHx0eXBlb2YgZSE9YHN0cmluZ2B8fCFlLnN0YXJ0c1dpdGgoYGRhdGE6YCkpcmV0dXJuIDA7bGV0IHQ9ZS5pbmRleE9mKGAsYCk7aWYodDwwKXJldHVybiAwO2xldCBuPWUuc2xpY2UoNSx0KSxyPWUuc2xpY2UodCsxKTtpZigvO2Jhc2U2NC9pLnRlc3Qobikpe2xldCBlPXIubGVuZ3RoLHQ9ci5sZW5ndGg7Zm9yKGxldCBuPTA7bjx0O24rKylpZihyLmNoYXJDb2RlQXQobik9PT0zNyYmbisyPHQpe2xldCB0PXIuY2hhckNvZGVBdChuKzEpLGk9ci5jaGFyQ29kZUF0KG4rMik7dW4odCkmJnVuKGkpJiYoZS09MixuKz0yKX1sZXQgbj0wLGk9dC0xLGE9ZT0+ZT49MiYmci5jaGFyQ29kZUF0KGUtMik9PT0zNyYmci5jaGFyQ29kZUF0KGUtMSk9PT01MSYmKHIuY2hhckNvZGVBdChlKT09PTY4fHxyLmNoYXJDb2RlQXQoZSk9PT0xMDApO2k+PTAmJihyLmNoYXJDb2RlQXQoaSk9PT02MT8obisrLGktLSk6YShpKSYmKG4rKyxpLT0zKSksbj09PTEmJmk+PTAmJihyLmNoYXJDb2RlQXQoaSk9PT02MXx8YShpKSkmJm4rKztsZXQgbz1NYXRoLmZsb29yKGUvNCkqMy0obnx8MCk7cmV0dXJuIG8+MD9vOjB9bGV0IGk9MDtmb3IobGV0IGU9MCx0PXIubGVuZ3RoO2U8dDtlKyspe2xldCBuPXIuY2hhckNvZGVBdChlKTtpZihuPT09MzcmJmRuKHIsZSx0KSlpKz0xLGUrPTI7ZWxzZSBpZihuPDEyOClpKz0xO2Vsc2UgaWYobjwyMDQ4KWkrPTI7ZWxzZSBpZihuPj01NTI5NiYmbjw9NTYzMTkmJmUrMTx0KXtsZXQgdD1yLmNoYXJDb2RlQXQoZSsxKTt0Pj01NjMyMCYmdDw9NTczNDM/KGkrPTQsZSsrKTppKz0zfWVsc2UgaSs9M31yZXR1cm4gaX12YXIgcG49YDEuMTguMWAsbW49NjQqMTAyNCx7aXNGdW5jdGlvbjpobn09Uixnbj1lPT5lbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZ2ksKGUsdCk9PlN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQodCwxNikpKSxfbj1lPT57aWYoIVIuaXNTdHJpbmcoZSkpcmV0dXJuIGU7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZSl9Y2F0Y2h7cmV0dXJuIGV9fSx2bj0oZSwuLi50KT0+e3RyeXtyZXR1cm4hIWUoLi4udCl9Y2F0Y2h7cmV0dXJuITF9fSx5bj1lPT57bGV0IHQ9ZS5pbmRleE9mKGA6Ly9gKSxuPWU7cmV0dXJuIHQhPT0tMSYmKG49bi5zbGljZSh0KzMpKSxuLmluY2x1ZGVzKGBAYCl8fG4uaW5jbHVkZXMoYDpgKX0sYm49ZT0+e2xldCB0PVIuZ2xvYmFsIT09dm9pZCAwJiZSLmdsb2JhbCE9PW51bGw/Ui5nbG9iYWw6Z2xvYmFsVGhpcyx7UmVhZGFibGVTdHJlYW06bixUZXh0RW5jb2RlcjpyfT10O2U9Ui5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSx7UmVxdWVzdDp0LlJlcXVlc3QsUmVzcG9uc2U6dC5SZXNwb25zZX0sZSk7bGV0e2ZldGNoOmksUmVxdWVzdDphLFJlc3BvbnNlOm99PWUscz1pP2huKGkpOnR5cGVvZiBmZXRjaD09YGZ1bmN0aW9uYCxjPWhuKGEpLGw9aG4obyk7aWYoIXMpcmV0dXJuITE7bGV0IHU9cyYmaG4obiksZD1zJiYodHlwZW9mIHI9PWBmdW5jdGlvbmA/KGU9PnQ9PmUuZW5jb2RlKHQpKShuZXcgcik6YXN5bmMgZT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IGEoZSkuYXJyYXlCdWZmZXIoKSkpLGY9YyYmdSYmdm4oKCk9PntsZXQgZT0hMSx0PW5ldyBhKFcub3JpZ2luLHtib2R5Om5ldyBuLG1ldGhvZDpgUE9TVGAsZ2V0IGR1cGxleCgpe3JldHVybiBlPSEwLGBoYWxmYH19KSxyPXQuaGVhZGVycy5oYXMoYENvbnRlbnQtVHlwZWApO3JldHVybiB0LmJvZHkhPW51bGwmJnQuYm9keS5jYW5jZWwoKSxlJiYhcn0pLHA9bCYmdSYmdm4oKCk9PlIuaXNSZWFkYWJsZVN0cmVhbShuZXcgbyhgYCkuYm9keSkpLG09e3N0cmVhbTpwJiYoZT0+ZS5ib2R5KX07cyYmW2B0ZXh0YCxgYXJyYXlCdWZmZXJgLGBibG9iYCxgZm9ybURhdGFgLGBzdHJlYW1gXS5mb3JFYWNoKGU9PnshbVtlXSYmKG1bZV09KHQsbik9PntsZXQgcj10JiZ0W2VdO2lmKHIpcmV0dXJuIHIuY2FsbCh0KTt0aHJvdyBuZXcgSChgUmVzcG9uc2UgdHlwZSAnJHtlfScgaXMgbm90IHN1cHBvcnRlZGAsSC5FUlJfTk9UX1NVUFBPUlQsbil9KX0pO2xldCBoPWFzeW5jIGU9PntpZihlPT1udWxsKXJldHVybiAwO2lmKFIuaXNCbG9iKGUpKXJldHVybiBlLnNpemU7aWYoUi5pc1NwZWNDb21wbGlhbnRGb3JtKGUpKXJldHVybihhd2FpdCBuZXcgYShXLm9yaWdpbix7bWV0aG9kOmBQT1NUYCxib2R5OmV9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKFIuaXNBcnJheUJ1ZmZlclZpZXcoZSl8fFIuaXNBcnJheUJ1ZmZlcihlKSlyZXR1cm4gZS5ieXRlTGVuZ3RoO2lmKFIuaXNVUkxTZWFyY2hQYXJhbXMoZSkmJihlKz1gYCksUi5pc1N0cmluZyhlKSlyZXR1cm4oYXdhaXQgZChlKSkuYnl0ZUxlbmd0aH0sZz1hc3luYyhlLHQpPT5SLnRvRmluaXRlTnVtYmVyKGUuZ2V0Q29udGVudExlbmd0aCgpKT8/aCh0KTtyZXR1cm4gYXN5bmMgZT0+e2xldHt1cmw6dCxtZXRob2Q6bixkYXRhOnMsc2lnbmFsOmwsY2FuY2VsVG9rZW46ZCx0aW1lb3V0Ol8sb25Eb3dubG9hZFByb2dyZXNzOnYsb25VcGxvYWRQcm9ncmVzczp5LHJlc3BvbnNlVHlwZTpiLGhlYWRlcnM6eCx3aXRoQ3JlZGVudGlhbHM6Uz1gc2FtZS1vcmlnaW5gLGZldGNoT3B0aW9uczpDLG1heENvbnRlbnRMZW5ndGg6dyxtYXhCb2R5TGVuZ3RoOlR9PW5uKGUpLEU9Ui5pc051bWJlcih3KSYmdz4tMSxEPVIuaXNOdW1iZXIoVCkmJlQ+LTEsTz10PT5SLmhhc093blByb3AoZSx0KT9lW3RdOnZvaWQgMCxlZT1pfHxmZXRjaDtiPWI/KGIrYGApLnRvTG93ZXJDYXNlKCk6YHRleHRgO2xldCBrPWFuKFtsLGQmJmQudG9BYm9ydFNpZ25hbCgpXSxfKSxBPW51bGwsaj1rJiZrLnVuc3Vic2NyaWJlJiYoKCk9PntrLnVuc3Vic2NyaWJlKCl9KSxNLE49bnVsbCx0ZT0oKT0+bmV3IEgoYFJlcXVlc3QgYm9keSBsYXJnZXIgdGhhbiBtYXhCb2R5TGVuZ3RoIGxpbWl0YCxILkVSUl9CQURfUkVRVUVTVCxlLEEpO3RyeXtsZXQgaSxsPU8oYGF1dGhgKTtpZihsJiYoaT17dXNlcm5hbWU6Ui5nZXRTYWZlUHJvcChsLGB1c2VybmFtZWApfHxgYCxwYXNzd29yZDpSLmdldFNhZmVQcm9wKGwsYHBhc3N3b3JkYCl8fGBgfSkseW4odCkpe2xldCBlPW5ldyBVUkwodCxXLm9yaWdpbik7IWkmJihlLnVzZXJuYW1lfHxlLnBhc3N3b3JkKSYmKGk9e3VzZXJuYW1lOl9uKGUudXNlcm5hbWUpLHBhc3N3b3JkOl9uKGUucGFzc3dvcmQpfSksKGUudXNlcm5hbWV8fGUucGFzc3dvcmQpJiYoZS51c2VybmFtZT1gYCxlLnBhc3N3b3JkPWBgLHQ9ZS5ocmVmKX1pZihpJiYoeC5kZWxldGUoYGF1dGhvcml6YXRpb25gKSx4LnNldChgQXV0aG9yaXphdGlvbmAsYEJhc2ljIGArYnRvYShnbigoaS51c2VybmFtZXx8YGApK2A6YCsoaS5wYXNzd29yZHx8YGApKSkpKSxFJiZ0eXBlb2YgdD09YHN0cmluZ2AmJnQuc3RhcnRzV2l0aChgZGF0YTpgKSYmZm4odCk+dyl0aHJvdyBuZXcgSChgbWF4Q29udGVudExlbmd0aCBzaXplIG9mIGArdytgIGV4Y2VlZGVkYCxILkVSUl9CQURfUkVTUE9OU0UsZSxBKTtpZihEJiZuIT09YGdldGAmJm4hPT1gaGVhZGApe2xldCBlPWF3YWl0IGgocyk7aWYodHlwZW9mIGU9PWBudW1iZXJgJiZpc0Zpbml0ZShlKSYmKE09ZSxlPlQpKXRocm93IHRlKCl9bGV0IGQ9RCYmKFIuaXNSZWFkYWJsZVN0cmVhbShzKXx8Ui5pc1N0cmVhbShzKSksXz0oZSx0LG4pPT5sbihlLG1uLGU9PntpZihEJiZlPlQpdGhyb3cgTj10ZSgpO3QmJnQoZSl9LG4pO2lmKGYmJm4hPT1gZ2V0YCYmbiE9PWBoZWFkYCYmKHl8fGQpKXtpZihNPz89YXdhaXQgZyh4LHMpLE0hPT0wfHxkKXtsZXQgZT1uZXcgYSh0LHttZXRob2Q6YFBPU1RgLGJvZHk6cyxkdXBsZXg6YGhhbGZgfSksbjtpZihSLmlzRm9ybURhdGEocykmJihuPWUuaGVhZGVycy5nZXQoYGNvbnRlbnQtdHlwZWApKSYmeC5zZXRDb250ZW50VHlwZShuKSxlLmJvZHkpe2xldFt0LG5dPXkmJkJ0KE0senQoVnQoeSkpKXx8W107cz1fKGUuYm9keSx0LG4pfX19ZWxzZSBpZihkJiYhYyYmdSYmbiE9PWBnZXRgJiZuIT09YGhlYWRgKXM9XyhzKTtlbHNlIGlmKGQmJmMmJiFmJiZuIT09YGdldGAmJm4hPT1gaGVhZGApdGhyb3cgbmV3IEgoYFN0cmVhbSByZXF1ZXN0IGJvZGllcyBhcmUgbm90IHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBmZXRjaCBpbXBsZW1lbnRhdGlvbmAsSC5FUlJfTk9UX1NVUFBPUlQsZSxBKTtSLmlzU3RyaW5nKFMpfHwoUz1TP2BpbmNsdWRlYDpgb21pdGApO2xldCBuZT1jJiZgY3JlZGVudGlhbHNgaW4gYS5wcm90b3R5cGU7aWYoUi5pc0Zvcm1EYXRhKHMpKXtsZXQgZT14LmdldENvbnRlbnRUeXBlKCk7ZSYmL15tdWx0aXBhcnRcL2Zvcm0tZGF0YS9pLnRlc3QoZSkmJiEvYm91bmRhcnk9L2kudGVzdChlKSYmeC5kZWxldGUoYGNvbnRlbnQtdHlwZWApfXguc2V0KGBVc2VyLUFnZW50YCxgYXhpb3MvYCtwbiwhMSk7bGV0IHJlPXsuLi5DLHNpZ25hbDprLG1ldGhvZDpuLnRvVXBwZXJDYXNlKCksaGVhZGVyczpaZSh4Lm5vcm1hbGl6ZSgpKSxib2R5OnMsZHVwbGV4OmBoYWxmYCxjcmVkZW50aWFsczpuZT9TOnZvaWQgMH07QT1jJiZuZXcgYSh0LHJlKTtsZXQgUD1hd2FpdChjP2VlKEEsQyk6ZWUodCxyZSkpLGllPVYuZnJvbShQLmhlYWRlcnMpO2lmKEUpe2xldCB0PVIudG9GaW5pdGVOdW1iZXIoaWUuZ2V0Q29udGVudExlbmd0aCgpKTtpZih0IT1udWxsJiZ0PncpdGhyb3cgbmV3IEgoYG1heENvbnRlbnRMZW5ndGggc2l6ZSBvZiBgK3crYCBleGNlZWRlZGAsSC5FUlJfQkFEX1JFU1BPTlNFLGUsQSl9bGV0IGFlPXAmJihiPT09YHN0cmVhbWB8fGI9PT1gcmVzcG9uc2VgKTtpZihwJiZQLmJvZHkmJih2fHxFfHxhZSYmaikpe2xldCB0PXt9O1tgc3RhdHVzYCxgc3RhdHVzVGV4dGAsYGhlYWRlcnNgXS5mb3JFYWNoKGU9Pnt0W2VdPVBbZV19KTtsZXQgbj1SLnRvRmluaXRlTnVtYmVyKGllLmdldENvbnRlbnRMZW5ndGgoKSksW3IsaV09diYmQnQobix6dChWdCh2KSwhMCkpfHxbXSxhPTA7UD1uZXcgbyhsbihQLmJvZHksbW4sdD0+e2lmKEUmJihhPXQsYT53KSl0aHJvdyBuZXcgSChgbWF4Q29udGVudExlbmd0aCBzaXplIG9mIGArdytgIGV4Y2VlZGVkYCxILkVSUl9CQURfUkVTUE9OU0UsZSxBKTtyJiZyKHQpfSwoKT0+e2kmJmkoKSxqJiZqKCl9KSx0KX1ifHw9YHRleHRgO2xldCBGPWF3YWl0IG1bUi5maW5kS2V5KG0sYil8fGB0ZXh0YF0oUCxlKTtpZihFJiYhcCYmIWFlKXtsZXQgdDtpZihGIT1udWxsJiYodHlwZW9mIEYuYnl0ZUxlbmd0aD09YG51bWJlcmA/dD1GLmJ5dGVMZW5ndGg6dHlwZW9mIEYuc2l6ZT09YG51bWJlcmA/dD1GLnNpemU6dHlwZW9mIEY9PWBzdHJpbmdgJiYodD10eXBlb2Ygcj09YGZ1bmN0aW9uYD9uZXcgcigpLmVuY29kZShGKS5ieXRlTGVuZ3RoOkYubGVuZ3RoKSksdHlwZW9mIHQ9PWBudW1iZXJgJiZ0PncpdGhyb3cgbmV3IEgoYG1heENvbnRlbnRMZW5ndGggc2l6ZSBvZiBgK3crYCBleGNlZWRlZGAsSC5FUlJfQkFEX1JFU1BPTlNFLGUsQSl9cmV0dXJuIWFlJiZqJiZqKCksYXdhaXQgbmV3IFByb21pc2UoKHQsbik9PntGdCh0LG4se2RhdGE6RixoZWFkZXJzOlYuZnJvbShQLmhlYWRlcnMpLHN0YXR1czpQLnN0YXR1cyxzdGF0dXNUZXh0OlAuc3RhdHVzVGV4dCxjb25maWc6ZSxyZXF1ZXN0OkF9KX0pfWNhdGNoKHQpe2lmKGomJmooKSxrJiZrLmFib3J0ZWQmJmsucmVhc29uIGluc3RhbmNlb2YgSCl7bGV0IG49ay5yZWFzb247dGhyb3cgbi5jb25maWc9ZSxBJiYobi5yZXF1ZXN0PUEpLHQhPT1uJiZPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiY2F1c2UiLHtfX3Byb3RvX186bnVsbCx2YWx1ZTp0LHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksbn1pZihOKXRocm93IEEmJiFOLnJlcXVlc3QmJihOLnJlcXVlc3Q9QSksTjtpZih0IGluc3RhbmNlb2YgSCl0aHJvdyBBJiYhdC5yZXF1ZXN0JiYodC5yZXF1ZXN0PUEpLHQ7aWYodCYmdC5uYW1lPT09YFR5cGVFcnJvcmAmJi9Mb2FkIGZhaWxlZHxmZXRjaC9pLnRlc3QodC5tZXNzYWdlKSl7bGV0IG49bmV3IEgoYE5ldHdvcmsgRXJyb3JgLEguRVJSX05FVFdPUkssZSxBLHQmJnQucmVzcG9uc2UpO3Rocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJjYXVzZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOnQuY2F1c2V8fHQsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxufXRocm93IEguZnJvbSh0LHQmJnQuY29kZSxlLEEsdCYmdC5yZXNwb25zZSl9fX0seG49bmV3IE1hcCxTbj1lPT57bGV0IHQ9ZSYmZS5lbnZ8fHt9LHtmZXRjaDpuLFJlcXVlc3Q6cixSZXNwb25zZTppfT10LGE9W3IsaSxuXSxvPWEubGVuZ3RoLHMsYyxsPXhuO2Zvcig7by0tOylzPWFbb10sYz1sLmdldChzKSxjPT09dm9pZCAwJiZsLnNldChzLGM9bz9uZXcgTWFwOmJuKHQpKSxsPWM7cmV0dXJuIGN9O1NuKCk7dmFyIENuPXtodHRwOm51bGwseGhyOnJuLGZldGNoOntnZXQ6U259fTtSLmZvckVhY2goQ24sKGUsdCk9PntpZihlKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIm5hbWUiLHtfX3Byb3RvX186bnVsbCx2YWx1ZTp0fSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJhZGFwdGVyTmFtZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOnR9KX19KTt2YXIgd249ZT0+YC0gJHtlfWAsVG49ZT0+Ui5pc0Z1bmN0aW9uKGUpfHxlPT09bnVsbHx8ZT09PSExO2Z1bmN0aW9uIEVuKGUsdCl7ZT1SLmlzQXJyYXkoZSk/ZTpbZV07bGV0e2xlbmd0aDpufT1lLHIsaSxhPXt9O2ZvcihsZXQgbz0wO288bjtvKyspe3I9ZVtvXTtsZXQgbjtpZihpPXIsIVRuKHIpJiYoaT1Dblsobj1TdHJpbmcocikpLnRvTG93ZXJDYXNlKCldLGk9PT12b2lkIDApKXRocm93IG5ldyBIKGBVbmtub3duIGFkYXB0ZXIgJyR7bn0nYCk7aWYoaSYmKFIuaXNGdW5jdGlvbihpKXx8KGk9aS5nZXQodCkpKSlicmVhazthW258fGAjYCtvXT1pfWlmKCFpKXtsZXQgZT1PYmplY3QuZW50cmllcyhhKS5tYXAoKFtlLHRdKT0+YGFkYXB0ZXIgJHtlfSBgKyh0PT09ITE/YGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50YDpgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGRgKSk7dGhyb3cgbmV3IEgoYFRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgYCsobj9lLmxlbmd0aD4xP2BzaW5jZSA6CmArZS5tYXAod24pLmpvaW4oYApgKTpgIGArd24oZVswXSk6YGFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkYCksSC5FUlJfTk9UX1NVUFBPUlQpfXJldHVybiBpfXZhciBEbj17Z2V0QWRhcHRlcjpFbixhZGFwdGVyczpDbn07ZnVuY3Rpb24gT24oZSl7aWYoZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksZS5zaWduYWwmJmUuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IHEobnVsbCxlKX1mdW5jdGlvbiBrbihlKXtyZXR1cm4gT24oZSksZS5oZWFkZXJzPVYuZnJvbShlLmhlYWRlcnMpLGUuZGF0YT1OdC5jYWxsKGUsZS50cmFuc2Zvcm1SZXF1ZXN0KSxbYHBvc3RgLGBwdXRgLGBwYXRjaGBdLmluZGV4T2YoZS5tZXRob2QpIT09LTEmJmUuaGVhZGVycy5zZXRDb250ZW50VHlwZShgYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkYCwhMSksRG4uZ2V0QWRhcHRlcihlLmFkYXB0ZXJ8fEsuYWRhcHRlcixlKShlKS50aGVuKGZ1bmN0aW9uKHQpe09uKGUpLGUucmVzcG9uc2U9dDt0cnl7dC5kYXRhPU50LmNhbGwoZSxlLnRyYW5zZm9ybVJlc3BvbnNlLHQpfWZpbmFsbHl7ZGVsZXRlIGUucmVzcG9uc2V9cmV0dXJuIHQuaGVhZGVycz1WLmZyb20odC5oZWFkZXJzKSx0fSxmdW5jdGlvbih0KXtpZighUHQodCkmJihPbihlKSx0JiZ0LnJlc3BvbnNlKSl7ZS5yZXNwb25zZT10LnJlc3BvbnNlO3RyeXt0LnJlc3BvbnNlLmRhdGE9TnQuY2FsbChlLGUudHJhbnNmb3JtUmVzcG9uc2UsdC5yZXNwb25zZSl9ZmluYWxseXtkZWxldGUgZS5yZXNwb25zZX10LnJlc3BvbnNlLmhlYWRlcnM9Vi5mcm9tKHQucmVzcG9uc2UuaGVhZGVycyl9cmV0dXJuIFByb21pc2UucmVqZWN0KHQpfSl9dmFyIEFuPXt9O1tgb2JqZWN0YCxgYm9vbGVhbmAsYG51bWJlcmAsYGZ1bmN0aW9uYCxgc3RyaW5nYCxgc3ltYm9sYF0uZm9yRWFjaCgoZSx0KT0+e0FuW2VdPWZ1bmN0aW9uKG4pe3JldHVybiB0eXBlb2Ygbj09PWV8fGBhYCsodDwxP2BuIGA6YCBgKStlfX0pO3ZhciBqbj17fTtBbi50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9uIHIoZSx0KXtyZXR1cm5gW0F4aW9zIHZgK3BuK2BdIFRyYW5zaXRpb25hbCBvcHRpb24gJ2ArZStgJ2ArdCsobj9gLiBgK246YGApfXJldHVybihuLGksYSk9PntpZihlPT09ITEpdGhyb3cgbmV3IEgocihpLGAgaGFzIGJlZW4gcmVtb3ZlZGArKHQ/YCBpbiBgK3Q6YGApKSxILkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gdCYmIWpuW2ldJiYoam5baV09ITAsY29uc29sZS53YXJuKHIoaSxgIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdmArdCtgIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlYCkpKSxlP2UobixpLGEpOiEwfX0sQW4uc3BlbGxpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuKHQsbik9Pihjb25zb2xlLndhcm4oYCR7bn0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHtlfWApLCEwKX07ZnVuY3Rpb24gTW4oZSx0LG4pe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpdGhyb3cgbmV3IEgoYG9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3RgLEguRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCByPU9iamVjdC5rZXlzKGUpLGk9ci5sZW5ndGg7Zm9yKDtpLS0+MDspe2xldCBhPXJbaV0sbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxhKT90W2FdOnZvaWQgMDtpZihvKXtsZXQgdD1lW2FdLG49dD09PXZvaWQgMHx8byh0LGEsZSk7aWYobiE9PSEwKXRocm93IG5ldyBIKGBvcHRpb24gYCthK2AgbXVzdCBiZSBgK24sSC5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYobiE9PSEwKXRocm93IG5ldyBIKGBVbmtub3duIG9wdGlvbiBgK2EsSC5FUlJfQkFEX09QVElPTil9fXZhciBObj17YXNzZXJ0T3B0aW9uczpNbix2YWxpZGF0b3JzOkFufSxZPU5uLnZhbGlkYXRvcnMsWD1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmRlZmF1bHRzPWV8fHt9LHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBfdCxyZXNwb25zZTpuZXcgX3R9fWFzeW5jIHJlcXVlc3QoZSx0KXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QoZSx0KX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgRXJyb3Ipe2xldCB0PXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHQpOnQ9RXJyb3IoKTtsZXQgbj0oKCk9PntpZighdC5zdGFjaylyZXR1cm5gYDtsZXQgZT10LnN0YWNrLmluZGV4T2YoYApgKTtyZXR1cm4gZT09PS0xP2BgOnQuc3RhY2suc2xpY2UoZSsxKX0pKCk7dHJ5e2lmKCFlLnN0YWNrKWUuc3RhY2s9bjtlbHNlIGlmKG4pe2xldCB0PW4uaW5kZXhPZihgCmApLHI9dD09PS0xPy0xOm4uaW5kZXhPZihgCmAsdCsxKSxpPXI9PT0tMT9gYDpuLnNsaWNlKHIrMSk7U3RyaW5nKGUuc3RhY2spLmVuZHNXaXRoKGkpfHwoZS5zdGFjays9YApgK24pfX1jYXRjaHt9fXRocm93IGV9fV9yZXF1ZXN0KGUsdCl7dHlwZW9mIGU9PWBzdHJpbmdgPyh0fHw9e30sdC51cmw9ZSk6dD1lfHx7fSx0PUoodGhpcy5kZWZhdWx0cyx0KTtsZXR7dHJhbnNpdGlvbmFsOm4scGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6aX09dDtuIT09dm9pZCAwJiZObi5hc3NlcnRPcHRpb25zKG4se3NpbGVudEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksbGVnYWN5SW50ZXJjZXB0b3JSZXFSZXNPcmRlcmluZzpZLnRyYW5zaXRpb25hbChZLmJvb2xlYW4pLGFkdmVydGlzZVpzdGRBY2NlcHRFbmNvZGluZzpZLnRyYW5zaXRpb25hbChZLmJvb2xlYW4pLHZhbGlkYXRlU3RhdHVzVW5kZWZpbmVkUmVzb2x2ZXM6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKX0sITEpLHIhPW51bGwmJihSLmlzRnVuY3Rpb24ocik/dC5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6cn06Tm4uYXNzZXJ0T3B0aW9ucyhyLHtlbmNvZGU6WS5mdW5jdGlvbixzZXJpYWxpemU6WS5mdW5jdGlvbn0sITApKSx0LmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscz09PXZvaWQgMD90LmFsbG93QWJzb2x1dGVVcmxzPSEwOnQuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyksTm4uYXNzZXJ0T3B0aW9ucyh0LHtiYXNlVXJsOlkuc3BlbGxpbmcoYGJhc2VVUkxgKSx3aXRoWHNyZlRva2VuOlkuc3BlbGxpbmcoYHdpdGhYU1JGVG9rZW5gKX0sITApLHQubWV0aG9kPSh0Lm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fGBnZXRgKS50b0xvd2VyQ2FzZSgpO2xldCBhPWkmJlIubWVyZ2UoaS5jb21tb24saVt0Lm1ldGhvZF0pO2kmJlIuZm9yRWFjaChbYGRlbGV0ZWAsYGdldGAsYGhlYWRgLGBwb3N0YCxgcHV0YCxgcGF0Y2hgLGBxdWVyeWAsYGNvbW1vbmBdLGU9PntkZWxldGUgaVtlXX0pLHQuaGVhZGVycz1WLmNvbmNhdChhLGkpO2xldCBvPVtdLHM9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKHR5cGVvZiBlLnJ1bldoZW49PWBmdW5jdGlvbmAmJmUucnVuV2hlbih0KT09PSExKXJldHVybjtzJiY9ZS5zeW5jaHJvbm91cztsZXQgbj10LnRyYW5zaXRpb25hbHx8dnQ7biYmbi5sZWdhY3lJbnRlcmNlcHRvclJlcVJlc09yZGVyaW5nP28udW5zaGlmdChlLmZ1bGZpbGxlZCxlLnJlamVjdGVkKTpvLnB1c2goZS5mdWxmaWxsZWQsZS5yZWplY3RlZCl9KTtsZXQgYz1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2MucHVzaChlLmZ1bGZpbGxlZCxlLnJlamVjdGVkKX0pO2xldCBsLHU9MCxkO2lmKCFzKXtsZXQgZT1ba24uYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihlLnVuc2hpZnQoLi4ubyksZS5wdXNoKC4uLmMpLGQ9ZS5sZW5ndGgsbD1Qcm9taXNlLnJlc29sdmUodCk7dTxkOylsPWwudGhlbihlW3UrK10sZVt1KytdKTtyZXR1cm4gbH1kPW8ubGVuZ3RoO2xldCBmPXQ7Zm9yKDt1PGQ7KXtsZXQgZT1vW3UrK10sdD1vW3UrK107dHJ5e2Y9ZShmKX1jYXRjaChlKXt0LmNhbGwodGhpcyxlKTticmVha319dHJ5e2w9a24uY2FsbCh0aGlzLGYpfWNhdGNoKGUpe3JldHVybiBQcm9taXNlLnJlamVjdChlKX1mb3IodT0wLGQ9Yy5sZW5ndGg7dTxkOylsPWwudGhlbihjW3UrK10sY1t1KytdKTtyZXR1cm4gbH1nZXRVcmkoZSl7cmV0dXJuIGU9Sih0aGlzLmRlZmF1bHRzLGUpLGd0KFp0KGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzLGUpLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcil9fTtSLmZvckVhY2goW2BkZWxldGVgLGBnZXRgLGBoZWFkYCxgb3B0aW9uc2BdLGZ1bmN0aW9uKGUpe1gucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMucmVxdWVzdChKKG58fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOm4mJlIuaGFzT3duUHJvcChuLGBkYXRhYCk/bi5kYXRhOnZvaWQgMH0pKX19KSxSLmZvckVhY2goW2Bwb3N0YCxgcHV0YCxgcGF0Y2hgLGBxdWVyeWBdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIGZ1bmN0aW9uKG4scixpKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KEooaXx8e30se21ldGhvZDplLGhlYWRlcnM6dD97IkNvbnRlbnQtVHlwZSI6YG11bHRpcGFydC9mb3JtLWRhdGFgfTp7fSx1cmw6bixkYXRhOnJ9KSl9fVgucHJvdG90eXBlW2VdPXQoKSxlIT09YHF1ZXJ5YCYmKFgucHJvdG90eXBlW2UrYEZvcm1gXT10KCEwKSl9KTt2YXIgUG49Y2xhc3MgZXtjb25zdHJ1Y3RvcihlKXtpZih0eXBlb2YgZSE9YGZ1bmN0aW9uYCl0aHJvdyBUeXBlRXJyb3IoYGV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi5gKTtsZXQgdDt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7dD1lfSk7bGV0IG49dGhpczt0aGlzLnByb21pc2UudGhlbihlPT57aWYoIW4uX2xpc3RlbmVycylyZXR1cm47bGV0IHQ9bi5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO3QtLT4wOyluLl9saXN0ZW5lcnNbdF0oZSk7bi5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1lPT57bGV0IHQscj1uZXcgUHJvbWlzZShlPT57bi5zdWJzY3JpYmUoZSksdD1lfSkudGhlbihlKTtyZXR1cm4gci5jYW5jZWw9ZnVuY3Rpb24oKXtuLnVuc3Vic2NyaWJlKHQpfSxyfSxlKGZ1bmN0aW9uKGUscixpKXtuLnJlYXNvbnx8KG4ucmVhc29uPW5ldyBxKGUscixpKSx0KG4ucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKGUpe2lmKHRoaXMucmVhc29uKXtlKHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19dW5zdWJzY3JpYmUoZSl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IHQ9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoZSk7dCE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHQsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsdD10PT57ZS5hYm9ydCh0KX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKHQpLGUuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKHQpLGUuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgdDtyZXR1cm57dG9rZW46bmV3IGUoZnVuY3Rpb24oZSl7dD1lfSksY2FuY2VsOnR9fX07ZnVuY3Rpb24gRm4oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KG51bGwsdCl9fWZ1bmN0aW9uIEluKGUpe3JldHVybiBSLmlzT2JqZWN0KGUpJiZlLmlzQXhpb3NFcnJvcj09PSEwfXZhciBMbj17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMSxXZWJTZXJ2ZXJJc0Rvd246NTIxLENvbm5lY3Rpb25UaW1lZE91dDo1MjIsT3JpZ2luSXNVbnJlYWNoYWJsZTo1MjMsVGltZW91dE9jY3VycmVkOjUyNCxTc2xIYW5kc2hha2VGYWlsZWQ6NTI1LEludmFsaWRTc2xDZXJ0aWZpY2F0ZTo1MjZ9O09iamVjdC5lbnRyaWVzKExuKS5mb3JFYWNoKChbZSx0XSk9PntMblt0XT1lfSk7ZnVuY3Rpb24gUm4oZSl7bGV0IHQ9bmV3IFgoZSksbj1kKFgucHJvdG90eXBlLnJlcXVlc3QsdCk7cmV0dXJuIFIuZXh0ZW5kKG4sWC5wcm90b3R5cGUsdCx7YWxsT3duS2V5czohMH0pLFIuZXh0ZW5kKG4sdCxudWxsLHthbGxPd25LZXlzOiEwfSksbi5jcmVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIFJuKEooZSx0KSl9LG59dmFyIFo9Um4oSyk7Wi5BeGlvcz1YLFouQ2FuY2VsZWRFcnJvcj1xLFouQ2FuY2VsVG9rZW49UG4sWi5pc0NhbmNlbD1QdCxaLlZFUlNJT049cG4sWi50b0Zvcm1EYXRhPVUsWi5BeGlvc0Vycm9yPUgsWi5DYW5jZWw9Wi5DYW5jZWxlZEVycm9yLFouYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX0sWi5zcHJlYWQ9Rm4sWi5pc0F4aW9zRXJyb3I9SW4sWi5tZXJnZUNvbmZpZz1KLFouQXhpb3NIZWFkZXJzPVYsWi5mb3JtVG9KU09OPWU9Pmp0KFIuaXNIVE1MRm9ybShlKT9uZXcgRm9ybURhdGEoZSk6ZSksWi5nZXRBZGFwdGVyPURuLmdldEFkYXB0ZXIsWi5IdHRwU3RhdHVzQ29kZT1MbixaLmRlZmF1bHQ9Wjt2YXIgem49cygoKGUsdCk9Pnt0LmV4cG9ydHM9e319KSksQm49cygoKGUsdCk9PnsoZnVuY3Rpb24oKXt2YXIgZT1gaW5wdXQgaXMgaW52YWxpZCB0eXBlYCxuPXR5cGVvZiB3aW5kb3c9PWBvYmplY3RgLHI9bj93aW5kb3c6e307ci5KU19NRDVfTk9fV0lORE9XJiYobj0hMSk7dmFyIGk9IW4mJnR5cGVvZiBzZWxmPT1gb2JqZWN0YCxhPSFyLkpTX01ENV9OT19OT0RFX0pTJiZ0eXBlb2YgcHJvY2Vzcz09YG9iamVjdGAmJnByb2Nlc3MudmVyc2lvbnMmJnByb2Nlc3MudmVyc2lvbnMubm9kZTthP3I9Z2xvYmFsOmkmJihyPXNlbGYpO3ZhciBvPSFyLkpTX01ENV9OT19DT01NT05fSlMmJnR5cGVvZiB0PT1gb2JqZWN0YCYmdC5leHBvcnRzLHM9dHlwZW9mIGRlZmluZT09YGZ1bmN0aW9uYCYmZGVmaW5lLmFtZCxjPSFyLkpTX01ENV9OT19BUlJBWV9CVUZGRVImJnR5cGVvZiBBcnJheUJ1ZmZlcjxgdWAsbD1gMDEyMzQ1Njc4OWFiY2RlZmAuc3BsaXQoYGApLHU9WzEyOCwzMjc2OCw4Mzg4NjA4LC0yMTQ3NDgzNjQ4XSxkPVswLDgsMTYsMjRdLGY9W2BoZXhgLGBhcnJheWAsYGRpZ2VzdGAsYGJ1ZmZlcmAsYGFycmF5QnVmZmVyYCxgYmFzZTY0YF0scD1gQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL2Auc3BsaXQoYGApLG09W10saDtpZihjKXt2YXIgZz1uZXcgQXJyYXlCdWZmZXIoNjgpO2g9bmV3IFVpbnQ4QXJyYXkoZyksbT1uZXcgVWludDMyQXJyYXkoZyl9dmFyIF89QXJyYXkuaXNBcnJheTsoci5KU19NRDVfTk9fTk9ERV9KU3x8IV8pJiYoXz1mdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpPT09YFtvYmplY3QgQXJyYXldYH0pO3ZhciB2PUFycmF5QnVmZmVyLmlzVmlldztjJiYoci5KU19NRDVfTk9fQVJSQVlfQlVGRkVSX0lTX1ZJRVd8fCF2KSYmKHY9ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlPT1gb2JqZWN0YCYmZS5idWZmZXImJmUuYnVmZmVyLmNvbnN0cnVjdG9yPT09QXJyYXlCdWZmZXJ9KTt2YXIgeT1mdW5jdGlvbih0KXt2YXIgbj10eXBlb2YgdDtpZihuPT09YHN0cmluZ2ApcmV0dXJuW3QsITBdO2lmKG4hPT1gb2JqZWN0YHx8dD09PW51bGwpdGhyb3cgRXJyb3IoZSk7aWYoYyYmdC5jb25zdHJ1Y3Rvcj09PUFycmF5QnVmZmVyKXJldHVybltuZXcgVWludDhBcnJheSh0KSwhMV07aWYoIV8odCkmJiF2KHQpKXRocm93IEVycm9yKGUpO3JldHVyblt0LCExXX0sYj1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBUKCEwKS51cGRhdGUodClbZV0oKX19LHg9ZnVuY3Rpb24oKXt2YXIgZT1iKGBoZXhgKTthJiYoZT1TKGUpKSxlLmNyZWF0ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgVH0sZS51cGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGUuY3JlYXRlKCkudXBkYXRlKHQpfTtmb3IodmFyIHQ9MDt0PGYubGVuZ3RoOysrdCl7dmFyIG49Zlt0XTtlW25dPWIobil9cmV0dXJuIGV9LFM9ZnVuY3Rpb24odCl7dmFyIG49em4oKSxpPXpuKCkuQnVmZmVyLGE9aS5mcm9tJiYhci5KU19NRDVfTk9fQlVGRkVSX0ZST00/aS5mcm9tOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgaShlKX07cmV0dXJuIGZ1bmN0aW9uKHIpe2lmKHR5cGVvZiByPT1gc3RyaW5nYClyZXR1cm4gbi5jcmVhdGVIYXNoKGBtZDVgKS51cGRhdGUocixgdXRmOGApLmRpZ2VzdChgaGV4YCk7aWYocj09bnVsbCl0aHJvdyBFcnJvcihlKTtyZXR1cm4gci5jb25zdHJ1Y3Rvcj09PUFycmF5QnVmZmVyJiYocj1uZXcgVWludDhBcnJheShyKSksXyhyKXx8dihyKXx8ci5jb25zdHJ1Y3Rvcj09PWk/bi5jcmVhdGVIYXNoKGBtZDVgKS51cGRhdGUoYShyKSkuZGlnZXN0KGBoZXhgKTp0KHIpfX0sQz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuKXtyZXR1cm4gbmV3IEUodCwhMCkudXBkYXRlKG4pW2VdKCl9fSx3PWZ1bmN0aW9uKCl7dmFyIGU9QyhgaGV4YCk7ZS5jcmVhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBFKGUpfSxlLnVwZGF0ZT1mdW5jdGlvbih0LG4pe3JldHVybiBlLmNyZWF0ZSh0KS51cGRhdGUobil9O2Zvcih2YXIgdD0wO3Q8Zi5sZW5ndGg7Kyt0KXt2YXIgbj1mW3RdO2Vbbl09QyhuKX1yZXR1cm4gZX07ZnVuY3Rpb24gVChlKXtpZihlKW1bMF09bVsxNl09bVsxXT1tWzJdPW1bM109bVs0XT1tWzVdPW1bNl09bVs3XT1tWzhdPW1bOV09bVsxMF09bVsxMV09bVsxMl09bVsxM109bVsxNF09bVsxNV09MCx0aGlzLmJsb2Nrcz1tLHRoaXMuYnVmZmVyOD1oO2Vsc2UgaWYoYyl7dmFyIHQ9bmV3IEFycmF5QnVmZmVyKDY4KTt0aGlzLmJ1ZmZlcjg9bmV3IFVpbnQ4QXJyYXkodCksdGhpcy5ibG9ja3M9bmV3IFVpbnQzMkFycmF5KHQpfWVsc2UgdGhpcy5ibG9ja3M9WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF07dGhpcy5oMD10aGlzLmgxPXRoaXMuaDI9dGhpcy5oMz10aGlzLnN0YXJ0PXRoaXMuYnl0ZXM9dGhpcy5oQnl0ZXM9MCx0aGlzLmZpbmFsaXplZD10aGlzLmhhc2hlZD0hMSx0aGlzLmZpcnN0PSEwfVQucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlKXtpZih0aGlzLmZpbmFsaXplZCl0aHJvdyBFcnJvcihgZmluYWxpemUgYWxyZWFkeSBjYWxsZWRgKTt2YXIgdD15KGUpO2U9dFswXTtmb3IodmFyIG49dFsxXSxyLGk9MCxhLG89ZS5sZW5ndGgscz10aGlzLmJsb2NrcyxsPXRoaXMuYnVmZmVyODtpPG87KXtpZih0aGlzLmhhc2hlZCYmKHRoaXMuaGFzaGVkPSExLHNbMF09c1sxNl0sc1sxNl09c1sxXT1zWzJdPXNbM109c1s0XT1zWzVdPXNbNl09c1s3XT1zWzhdPXNbOV09c1sxMF09c1sxMV09c1sxMl09c1sxM109c1sxNF09c1sxNV09MCksbilpZihjKWZvcihhPXRoaXMuc3RhcnQ7aTxvJiZhPDY0OysraSlyPWUuY2hhckNvZGVBdChpKSxyPDEyOD9sW2ErK109cjpyPDIwNDg/KGxbYSsrXT0xOTJ8cj4+PjYsbFthKytdPTEyOHxyJjYzKTpyPDU1Mjk2fHxyPj01NzM0ND8obFthKytdPTIyNHxyPj4+MTIsbFthKytdPTEyOHxyPj4+NiY2MyxsW2ErK109MTI4fHImNjMpOihyPTY1NTM2KygociYxMDIzKTw8MTB8ZS5jaGFyQ29kZUF0KCsraSkmMTAyMyksbFthKytdPTI0MHxyPj4+MTgsbFthKytdPTEyOHxyPj4+MTImNjMsbFthKytdPTEyOHxyPj4+NiY2MyxsW2ErK109MTI4fHImNjMpO2Vsc2UgZm9yKGE9dGhpcy5zdGFydDtpPG8mJmE8NjQ7KytpKXI9ZS5jaGFyQ29kZUF0KGkpLHI8MTI4P3NbYT4+PjJdfD1yPDxkW2ErKyYzXTpyPDIwNDg/KHNbYT4+PjJdfD0oMTkyfHI+Pj42KTw8ZFthKysmM10sc1thPj4+Ml18PSgxMjh8ciY2Myk8PGRbYSsrJjNdKTpyPDU1Mjk2fHxyPj01NzM0ND8oc1thPj4+Ml18PSgyMjR8cj4+PjEyKTw8ZFthKysmM10sc1thPj4+Ml18PSgxMjh8cj4+PjYmNjMpPDxkW2ErKyYzXSxzW2E+Pj4yXXw9KDEyOHxyJjYzKTw8ZFthKysmM10pOihyPTY1NTM2KygociYxMDIzKTw8MTB8ZS5jaGFyQ29kZUF0KCsraSkmMTAyMyksc1thPj4+Ml18PSgyNDB8cj4+PjE4KTw8ZFthKysmM10sc1thPj4+Ml18PSgxMjh8cj4+PjEyJjYzKTw8ZFthKysmM10sc1thPj4+Ml18PSgxMjh8cj4+PjYmNjMpPDxkW2ErKyYzXSxzW2E+Pj4yXXw9KDEyOHxyJjYzKTw8ZFthKysmM10pO2Vsc2UgaWYoYylmb3IoYT10aGlzLnN0YXJ0O2k8byYmYTw2NDsrK2kpbFthKytdPWVbaV07ZWxzZSBmb3IoYT10aGlzLnN0YXJ0O2k8byYmYTw2NDsrK2kpc1thPj4+Ml18PWVbaV08PGRbYSsrJjNdO3RoaXMubGFzdEJ5dGVJbmRleD1hLHRoaXMuYnl0ZXMrPWEtdGhpcy5zdGFydCxhPj02ND8odGhpcy5zdGFydD1hLTY0LHRoaXMuaGFzaCgpLHRoaXMuaGFzaGVkPSEwKTp0aGlzLnN0YXJ0PWF9cmV0dXJuIHRoaXMuYnl0ZXM+NDI5NDk2NzI5NSYmKHRoaXMuaEJ5dGVzKz10aGlzLmJ5dGVzLzQyOTQ5NjcyOTY8PDAsdGhpcy5ieXRlcyU9NDI5NDk2NzI5NiksdGhpc30sVC5wcm90b3R5cGUuZmluYWxpemU9ZnVuY3Rpb24oKXtpZighdGhpcy5maW5hbGl6ZWQpe3RoaXMuZmluYWxpemVkPSEwO3ZhciBlPXRoaXMuYmxvY2tzLHQ9dGhpcy5sYXN0Qnl0ZUluZGV4O2VbdD4+PjJdfD11W3QmM10sdD49NTYmJih0aGlzLmhhc2hlZHx8dGhpcy5oYXNoKCksZVswXT1lWzE2XSxlWzE2XT1lWzFdPWVbMl09ZVszXT1lWzRdPWVbNV09ZVs2XT1lWzddPWVbOF09ZVs5XT1lWzEwXT1lWzExXT1lWzEyXT1lWzEzXT1lWzE0XT1lWzE1XT0wKSxlWzE0XT10aGlzLmJ5dGVzPDwzLGVbMTVdPXRoaXMuaEJ5dGVzPDwzfHRoaXMuYnl0ZXM+Pj4yOSx0aGlzLmhhc2goKX19LFQucHJvdG90eXBlLmhhc2g9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLGEsbz10aGlzLmJsb2Nrczt0aGlzLmZpcnN0PyhlPW9bMF0tNjgwODc2OTM3LGU9KGU8PDd8ZT4+PjI1KS0yNzE3MzM4Nzk8PDAscj0oLTE3MzI1ODQxOTReZSYyMDA0MzE4MDcxKStvWzFdLTExNzgzMDcwOCxyPShyPDwxMnxyPj4+MjApK2U8PDAsbj0oLTI3MTczMzg3OV5yJihlXi0yNzE3MzM4NzkpKStvWzJdLTExMjY0NzgzNzUsbj0objw8MTd8bj4+PjE1KStyPDwwLHQ9KGVebiYocl5lKSkrb1szXS0xMzE2MjU5MjA5LHQ9KHQ8PDIyfHQ+Pj4xMCkrbjw8MCk6KGU9dGhpcy5oMCx0PXRoaXMuaDEsbj10aGlzLmgyLHI9dGhpcy5oMyxlKz0ocl50JihuXnIpKStvWzBdLTY4MDg3NjkzNixlPShlPDw3fGU+Pj4yNSkrdDw8MCxyKz0obl5lJih0Xm4pKStvWzFdLTM4OTU2NDU4NixyPShyPDwxMnxyPj4+MjApK2U8PDAsbis9KHReciYoZV50KSkrb1syXSs2MDYxMDU4MTksbj0objw8MTd8bj4+PjE1KStyPDwwLHQrPShlXm4mKHJeZSkpK29bM10tMTA0NDUyNTMzMCx0PSh0PDwyMnx0Pj4+MTApK248PDApLGUrPShyXnQmKG5ecikpK29bNF0tMTc2NDE4ODk3LGU9KGU8PDd8ZT4+PjI1KSt0PDwwLHIrPShuXmUmKHRebikpK29bNV0rMTIwMDA4MDQyNixyPShyPDwxMnxyPj4+MjApK2U8PDAsbis9KHReciYoZV50KSkrb1s2XS0xNDczMjMxMzQxLG49KG48PDE3fG4+Pj4xNSkrcjw8MCx0Kz0oZV5uJihyXmUpKStvWzddLTQ1NzA1OTgzLHQ9KHQ8PDIyfHQ+Pj4xMCkrbjw8MCxlKz0ocl50JihuXnIpKStvWzhdKzE3NzAwMzU0MTYsZT0oZTw8N3xlPj4+MjUpK3Q8PDAscis9KG5eZSYodF5uKSkrb1s5XS0xOTU4NDE0NDE3LHI9KHI8PDEyfHI+Pj4yMCkrZTw8MCxuKz0odF5yJihlXnQpKStvWzEwXS00MjA2MyxuPShuPDwxN3xuPj4+MTUpK3I8PDAsdCs9KGVebiYocl5lKSkrb1sxMV0tMTk5MDQwNDE2Mix0PSh0PDwyMnx0Pj4+MTApK248PDAsZSs9KHJedCYobl5yKSkrb1sxMl0rMTgwNDYwMzY4MixlPShlPDw3fGU+Pj4yNSkrdDw8MCxyKz0obl5lJih0Xm4pKStvWzEzXS00MDM0MTEwMSxyPShyPDwxMnxyPj4+MjApK2U8PDAsbis9KHReciYoZV50KSkrb1sxNF0tMTUwMjAwMjI5MCxuPShuPDwxN3xuPj4+MTUpK3I8PDAsdCs9KGVebiYocl5lKSkrb1sxNV0rMTIzNjUzNTMyOSx0PSh0PDwyMnx0Pj4+MTApK248PDAsZSs9KG5eciYodF5uKSkrb1sxXS0xNjU3OTY1MTAsZT0oZTw8NXxlPj4+MjcpK3Q8PDAscis9KHRebiYoZV50KSkrb1s2XS0xMDY5NTAxNjMyLHI9KHI8PDl8cj4+PjIzKStlPDwwLG4rPShlXnQmKHJeZSkpK29bMTFdKzY0MzcxNzcxMyxuPShuPDwxNHxuPj4+MTgpK3I8PDAsdCs9KHJeZSYobl5yKSkrb1swXS0zNzM4OTczMDIsdD0odDw8MjB8dD4+PjEyKStuPDwwLGUrPShuXnImKHRebikpK29bNV0tNzAxNTU4NjkxLGU9KGU8PDV8ZT4+PjI3KSt0PDwwLHIrPSh0Xm4mKGVedCkpK29bMTBdKzM4MDE2MDgzLHI9KHI8PDl8cj4+PjIzKStlPDwwLG4rPShlXnQmKHJeZSkpK29bMTVdLTY2MDQ3ODMzNSxuPShuPDwxNHxuPj4+MTgpK3I8PDAsdCs9KHJeZSYobl5yKSkrb1s0XS00MDU1Mzc4NDgsdD0odDw8MjB8dD4+PjEyKStuPDwwLGUrPShuXnImKHRebikpK29bOV0rNTY4NDQ2NDM4LGU9KGU8PDV8ZT4+PjI3KSt0PDwwLHIrPSh0Xm4mKGVedCkpK29bMTRdLTEwMTk4MDM2OTAscj0ocjw8OXxyPj4+MjMpK2U8PDAsbis9KGVedCYocl5lKSkrb1szXS0xODczNjM5NjEsbj0objw8MTR8bj4+PjE4KStyPDwwLHQrPShyXmUmKG5ecikpK29bOF0rMTE2MzUzMTUwMSx0PSh0PDwyMHx0Pj4+MTIpK248PDAsZSs9KG5eciYodF5uKSkrb1sxM10tMTQ0NDY4MTQ2NyxlPShlPDw1fGU+Pj4yNykrdDw8MCxyKz0odF5uJihlXnQpKStvWzJdLTUxNDAzNzg0LHI9KHI8PDl8cj4+PjIzKStlPDwwLG4rPShlXnQmKHJeZSkpK29bN10rMTczNTMyODQ3MyxuPShuPDwxNHxuPj4+MTgpK3I8PDAsdCs9KHJeZSYobl5yKSkrb1sxMl0tMTkyNjYwNzczNCx0PSh0PDwyMHx0Pj4+MTIpK248PDAsaT10Xm4sZSs9KGlecikrb1s1XS0zNzg1NTgsZT0oZTw8NHxlPj4+MjgpK3Q8PDAscis9KGleZSkrb1s4XS0yMDIyNTc0NDYzLHI9KHI8PDExfHI+Pj4yMSkrZTw8MCxhPXJeZSxuKz0oYV50KStvWzExXSsxODM5MDMwNTYyLG49KG48PDE2fG4+Pj4xNikrcjw8MCx0Kz0oYV5uKStvWzE0XS0zNTMwOTU1Nix0PSh0PDwyM3x0Pj4+OSkrbjw8MCxpPXRebixlKz0oaV5yKStvWzFdLTE1MzA5OTIwNjAsZT0oZTw8NHxlPj4+MjgpK3Q8PDAscis9KGleZSkrb1s0XSsxMjcyODkzMzUzLHI9KHI8PDExfHI+Pj4yMSkrZTw8MCxhPXJeZSxuKz0oYV50KStvWzddLTE1NTQ5NzYzMixuPShuPDwxNnxuPj4+MTYpK3I8PDAsdCs9KGFebikrb1sxMF0tMTA5NDczMDY0MCx0PSh0PDwyM3x0Pj4+OSkrbjw8MCxpPXRebixlKz0oaV5yKStvWzEzXSs2ODEyNzkxNzQsZT0oZTw8NHxlPj4+MjgpK3Q8PDAscis9KGleZSkrb1swXS0zNTg1MzcyMjIscj0ocjw8MTF8cj4+PjIxKStlPDwwLGE9cl5lLG4rPShhXnQpK29bM10tNzIyNTIxOTc5LG49KG48PDE2fG4+Pj4xNikrcjw8MCx0Kz0oYV5uKStvWzZdKzc2MDI5MTg5LHQ9KHQ8PDIzfHQ+Pj45KStuPDwwLGk9dF5uLGUrPShpXnIpK29bOV0tNjQwMzY0NDg3LGU9KGU8PDR8ZT4+PjI4KSt0PDwwLHIrPShpXmUpK29bMTJdLTQyMTgxNTgzNSxyPShyPDwxMXxyPj4+MjEpK2U8PDAsYT1yXmUsbis9KGFedCkrb1sxNV0rNTMwNzQyNTIwLG49KG48PDE2fG4+Pj4xNikrcjw8MCx0Kz0oYV5uKStvWzJdLTk5NTMzODY1MSx0PSh0PDwyM3x0Pj4+OSkrbjw8MCxlKz0obl4odHx+cikpK29bMF0tMTk4NjMwODQ0LGU9KGU8PDZ8ZT4+PjI2KSt0PDwwLHIrPSh0XihlfH5uKSkrb1s3XSsxMTI2ODkxNDE1LHI9KHI8PDEwfHI+Pj4yMikrZTw8MCxuKz0oZV4ocnx+dCkpK29bMTRdLTE0MTYzNTQ5MDUsbj0objw8MTV8bj4+PjE3KStyPDwwLHQrPShyXihufH5lKSkrb1s1XS01NzQzNDA1NSx0PSh0PDwyMXx0Pj4+MTEpK248PDAsZSs9KG5eKHR8fnIpKStvWzEyXSsxNzAwNDg1NTcxLGU9KGU8PDZ8ZT4+PjI2KSt0PDwwLHIrPSh0XihlfH5uKSkrb1szXS0xODk0OTg2NjA2LHI9KHI8PDEwfHI+Pj4yMikrZTw8MCxuKz0oZV4ocnx+dCkpK29bMTBdLTEwNTE1MjMsbj0objw8MTV8bj4+PjE3KStyPDwwLHQrPShyXihufH5lKSkrb1sxXS0yMDU0OTIyNzk5LHQ9KHQ8PDIxfHQ+Pj4xMSkrbjw8MCxlKz0obl4odHx+cikpK29bOF0rMTg3MzMxMzM1OSxlPShlPDw2fGU+Pj4yNikrdDw8MCxyKz0odF4oZXx+bikpK29bMTVdLTMwNjExNzQ0LHI9KHI8PDEwfHI+Pj4yMikrZTw8MCxuKz0oZV4ocnx+dCkpK29bNl0tMTU2MDE5ODM4MCxuPShuPDwxNXxuPj4+MTcpK3I8PDAsdCs9KHJeKG58fmUpKStvWzEzXSsxMzA5MTUxNjQ5LHQ9KHQ8PDIxfHQ+Pj4xMSkrbjw8MCxlKz0obl4odHx+cikpK29bNF0tMTQ1NTIzMDcwLGU9KGU8PDZ8ZT4+PjI2KSt0PDwwLHIrPSh0XihlfH5uKSkrb1sxMV0tMTEyMDIxMDM3OSxyPShyPDwxMHxyPj4+MjIpK2U8PDAsbis9KGVeKHJ8fnQpKStvWzJdKzcxODc4NzI1OSxuPShuPDwxNXxuPj4+MTcpK3I8PDAsdCs9KHJeKG58fmUpKStvWzldLTM0MzQ4NTU1MSx0PSh0PDwyMXx0Pj4+MTEpK248PDAsdGhpcy5maXJzdD8odGhpcy5oMD1lKzE3MzI1ODQxOTM8PDAsdGhpcy5oMT10LTI3MTczMzg3OTw8MCx0aGlzLmgyPW4tMTczMjU4NDE5NDw8MCx0aGlzLmgzPXIrMjcxNzMzODc4PDwwLHRoaXMuZmlyc3Q9ITEpOih0aGlzLmgwPXRoaXMuaDArZTw8MCx0aGlzLmgxPXRoaXMuaDErdDw8MCx0aGlzLmgyPXRoaXMuaDIrbjw8MCx0aGlzLmgzPXRoaXMuaDMrcjw8MCl9LFQucHJvdG90eXBlLmhleD1mdW5jdGlvbigpe3RoaXMuZmluYWxpemUoKTt2YXIgZT10aGlzLmgwLHQ9dGhpcy5oMSxuPXRoaXMuaDIscj10aGlzLmgzO3JldHVybiBsW2U+Pj40JjE1XStsW2UmMTVdK2xbZT4+PjEyJjE1XStsW2U+Pj44JjE1XStsW2U+Pj4yMCYxNV0rbFtlPj4+MTYmMTVdK2xbZT4+PjI4JjE1XStsW2U+Pj4yNCYxNV0rbFt0Pj4+NCYxNV0rbFt0JjE1XStsW3Q+Pj4xMiYxNV0rbFt0Pj4+OCYxNV0rbFt0Pj4+MjAmMTVdK2xbdD4+PjE2JjE1XStsW3Q+Pj4yOCYxNV0rbFt0Pj4+MjQmMTVdK2xbbj4+PjQmMTVdK2xbbiYxNV0rbFtuPj4+MTImMTVdK2xbbj4+PjgmMTVdK2xbbj4+PjIwJjE1XStsW24+Pj4xNiYxNV0rbFtuPj4+MjgmMTVdK2xbbj4+PjI0JjE1XStsW3I+Pj40JjE1XStsW3ImMTVdK2xbcj4+PjEyJjE1XStsW3I+Pj44JjE1XStsW3I+Pj4yMCYxNV0rbFtyPj4+MTYmMTVdK2xbcj4+PjI4JjE1XStsW3I+Pj4yNCYxNV19LFQucHJvdG90eXBlLnRvU3RyaW5nPVQucHJvdG90eXBlLmhleCxULnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oKXt0aGlzLmZpbmFsaXplKCk7dmFyIGU9dGhpcy5oMCx0PXRoaXMuaDEsbj10aGlzLmgyLHI9dGhpcy5oMztyZXR1cm5bZSYyNTUsZT4+PjgmMjU1LGU+Pj4xNiYyNTUsZT4+PjI0JjI1NSx0JjI1NSx0Pj4+OCYyNTUsdD4+PjE2JjI1NSx0Pj4+MjQmMjU1LG4mMjU1LG4+Pj44JjI1NSxuPj4+MTYmMjU1LG4+Pj4yNCYyNTUsciYyNTUscj4+PjgmMjU1LHI+Pj4xNiYyNTUscj4+PjI0JjI1NV19LFQucHJvdG90eXBlLmFycmF5PVQucHJvdG90eXBlLmRpZ2VzdCxULnByb3RvdHlwZS5hcnJheUJ1ZmZlcj1mdW5jdGlvbigpe3RoaXMuZmluYWxpemUoKTt2YXIgZT1uZXcgQXJyYXlCdWZmZXIoMTYpLHQ9bmV3IFVpbnQzMkFycmF5KGUpO3JldHVybiB0WzBdPXRoaXMuaDAsdFsxXT10aGlzLmgxLHRbMl09dGhpcy5oMix0WzNdPXRoaXMuaDMsZX0sVC5wcm90b3R5cGUuYnVmZmVyPVQucHJvdG90eXBlLmFycmF5QnVmZmVyLFQucHJvdG90eXBlLmJhc2U2ND1mdW5jdGlvbigpe2Zvcih2YXIgZSx0LG4scj1gYCxpPXRoaXMuYXJyYXkoKSxhPTA7YTwxNTspZT1pW2ErK10sdD1pW2ErK10sbj1pW2ErK10scis9cFtlPj4+Ml0rcFsoZTw8NHx0Pj4+NCkmNjNdK3BbKHQ8PDJ8bj4+PjYpJjYzXStwW24mNjNdO3JldHVybiBlPWlbYV0scis9cFtlPj4+Ml0rcFtlPDw0JjYzXStgPT1gLHJ9O2Z1bmN0aW9uIEUoZSx0KXt2YXIgbixyPXkoZSk7aWYoZT1yWzBdLHJbMV0pe3ZhciBpPVtdLGE9ZS5sZW5ndGgsbz0wLHM7Zm9yKG49MDtuPGE7KytuKXM9ZS5jaGFyQ29kZUF0KG4pLHM8MTI4P2lbbysrXT1zOnM8MjA0OD8oaVtvKytdPTE5MnxzPj4+NixpW28rK109MTI4fHMmNjMpOnM8NTUyOTZ8fHM+PTU3MzQ0PyhpW28rK109MjI0fHM+Pj4xMixpW28rK109MTI4fHM+Pj42JjYzLGlbbysrXT0xMjh8cyY2Myk6KHM9NjU1MzYrKChzJjEwMjMpPDwxMHxlLmNoYXJDb2RlQXQoKytuKSYxMDIzKSxpW28rK109MjQwfHM+Pj4xOCxpW28rK109MTI4fHM+Pj4xMiY2MyxpW28rK109MTI4fHM+Pj42JjYzLGlbbysrXT0xMjh8cyY2Myk7ZT1pfWUubGVuZ3RoPjY0JiYoZT1uZXcgVCghMCkudXBkYXRlKGUpLmFycmF5KCkpO3ZhciBjPVtdLGw9W107Zm9yKG49MDtuPDY0Oysrbil7dmFyIHU9ZVtuXXx8MDtjW25dPTkyXnUsbFtuXT01NF51fVQuY2FsbCh0aGlzLHQpLHRoaXMudXBkYXRlKGwpLHRoaXMub0tleVBhZD1jLHRoaXMuaW5uZXI9ITAsdGhpcy5zaGFyZWRNZW1vcnk9dH1FLnByb3RvdHlwZT1uZXcgVCxFLnByb3RvdHlwZS5maW5hbGl6ZT1mdW5jdGlvbigpe2lmKFQucHJvdG90eXBlLmZpbmFsaXplLmNhbGwodGhpcyksdGhpcy5pbm5lcil7dGhpcy5pbm5lcj0hMTt2YXIgZT10aGlzLmFycmF5KCk7VC5jYWxsKHRoaXMsdGhpcy5zaGFyZWRNZW1vcnkpLHRoaXMudXBkYXRlKHRoaXMub0tleVBhZCksdGhpcy51cGRhdGUoZSksVC5wcm90b3R5cGUuZmluYWxpemUuY2FsbCh0aGlzKX19O3ZhciBEPXgoKTtELm1kNT1ELEQubWQ1LmhtYWM9dygpLG8/dC5leHBvcnRzPUQ6KHIubWQ1PUQscyYmZGVmaW5lKGZ1bmN0aW9uKCl7cmV0dXJuIER9KSl9KSgpfSkpLFZuPXUoQm4oKSwxKSxIbj1gbGFuZ3VhZ2VgLFVuPSgpPT5lLmdldChIbiksV249KHQsbixyKT0+e3IgaW5zdGFuY2VvZiBEYXRlfHx0eXBlb2Ygcj09YG51bWJlcmA/ZS5zZXQodCxuLHtleHBpcmVzOnJ9KTplLnNldCh0LG4pfSxHbj10PT5lLmdldCh0KXx8YGAsS249Wi5jcmVhdGUoe2Jhc2VVUkw6YC9hcGkvdjJgLHRpbWVvdXQ6MTVlMyxoZWFkZXJzOntBY2NlcHQ6YGFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKmAsIkNvbnRlbnQtVHlwZSI6YGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLThgfX0pO0tuLmludGVyY2VwdG9ycy5yZXF1ZXN0LnVzZSh0PT57bGV0IG49bG9jYWxTdG9yYWdlLmdldEl0ZW0oYHRva2VuYCk7bj8/PWUuZ2V0KGB0b2tlbmApLG4mJih0LmhlYWRlcnMudG9rZW49bik7bGV0IHI9VW4oKTtyZXR1cm4gcnx8PWBlbmAsdC5oZWFkZXJzLmxhbmc9cix0fSxlPT4oY29uc29sZS5lcnJvcihlKSxQcm9taXNlLnJlamVjdChlKSkpLEtuLmludGVyY2VwdG9ycy5yZXNwb25zZS51c2UoZT0+e2xldHtkYXRhOnQsc3RhdHVzOm59PWU7cmV0dXJue2RhdGE6dCxzdGF0dXM6bn19LGU9Pntjb25zb2xlLmxvZyhlKX0pO2Z1bmN0aW9uIFEoZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoKG4scik9PntsZXQgaT1KU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGB1c2VySW5mb2ApKXx8YGA7aT09PWBgPyh0LnNfdT1gYCx0LnNfbD1gYCk6KHQuc191PWkudXNlcl9pZCx0LnNfbD1pLmxldmVsKTtsZXQgYT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShgc2hpamlhbmNoYWApO2lmKGE9PW51bGwpdC5zX3Q9RGF0ZS5wYXJzZShuZXcgRGF0ZSkvMWUzO2Vsc2V7bGV0IGU9bmV3IERhdGUoKS5nZXRUaW1lKCk7ZSs9cGFyc2VJbnQoYSksdC5zX3Q9TWF0aC5jZWlsKGUvMWUzKX10LnNfaD0oMCxWbi5kZWZhdWx0KSh0LnNfdStgfGArdC5zX2wrYHxgK3Quc190K2B8aGVsbG9gKS5zdWJzdHJpbmcoMjYpLEtuLmdldChlLHtwYXJhbXM6dH0pLnRoZW4oZT0+e3FuKGUpPT09ITEmJm4oZSl9KS5jYXRjaChlPT57cihlKX0pfSl9ZnVuY3Rpb24gJChlLHQpe3JldHVybiBuZXcgUHJvbWlzZSgobixyKT0+e2xldCBpPUpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oYHVzZXJJbmZvYCkpfHxgYCxhPWBgLG89YGA7aSE9PWBgJiYoYT1pLnVzZXJfaWQsbz1pLmxldmVsKTtsZXQgcz1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShgc2hpamlhbmNoYWApLGM9bmV3IERhdGUoKS5nZXRUaW1lKCk7Yys9cGFyc2VJbnQocyl8fDA7bGV0IGw9TWF0aC5jZWlsKGMvMWUzKSx1PSgwLFZuLmRlZmF1bHQpKGErYHxgK28rYHxgK2wrYHxoZWxsb2ApLnN1YnN0cmluZygyNik7ZT1lK2A/MSZzX3U9YCthK2Amc19sPWArbytgJnNfdD1gK2wrYCZzX2g9YCt1LEtuLnBvc3QoZSx0KS50aGVuKGU9PntxbihlKT09PSExJiZuKGUpfSkuY2F0Y2goZT0+e3IoZSl9KX0pfWZ1bmN0aW9uIHFuKGUpe3JldHVybiBlIT1udWxsJiZlLmhhc093blByb3BlcnR5KGBkYXRhYCkmJmUuZGF0YS5oYXNPd25Qcm9wZXJ0eShgbG9ja2ApPyhsb2NhbFN0b3JhZ2Uuc2V0SXRlbShgbG9ja2AsYDFgKSx3aW5kb3cubG9jYXRpb24uaHJlZj1gLyMvbG9ja2AsITApOiExfXZhciBKbj1lPT5RKGAvYXV0aC91c2VyaW5mb2AsZSksWW49ZT0+UShgL2FwcF9pbml0YCxlKSxYbj1lPT4kKGAvbG9naW5gLGUpLFpuPWU9PlEoYC9sb3RfZ2V0X3NlcnZlcnRpbWVgLGUpLFFuPWU9PlEoYC9hdXRoL2dldF9wYXlfbGlzdDJgLGUpLCRuPWU9PlEoYC9hdXRoL2dldF9yZWNoYXJnZV9saXN0YCxlKSxlcj1lPT5RKGAvYXV0aC9nZXRfd2l0aGRyYXdfbGlzdGAsZSksdHI9ZT0+UShgL2F1dGgvZ2V0X2FjY291bnRfbGlzdGAsZSksbnI9ZT0+JChgL2F1dGgvZWRpdF9zYWZlX3B3ZGAsZSkscnI9ZT0+JChgL2F1dGgvZWRpdF9wd2RgLGUpLGlyPWU9PiQoYC9hdXRoL2FkZF93aXRoZHJhd2AsZSksYXI9ZT0+JChgL2ludml0YXRpb25fcmVnaXN0ZXIyYCxlKSxvcj1lPT5RKGAvYXV0aC9sb3RfZ2V0X29yZGVyYCxlKSxzcj1lPT5RKGAvYXV0aC9sb3RfZ2V0X29yZGVyX2RldGFpbGAsZSksY3I9ZT0+JChgL2F1dGgvc2V0X2FkZHJlc3NgLGUpLGxyPWU9PiQoYC9hdXRoL2dldF9iYW5raW5mb2AsZSksdXI9ZT0+JChgL2F1dGgvc2V0X2JhbmtpbmZvYCxlKSxkcj1lPT4kKGAvYXV0aC9nZXRfZ3JhYmluZm9gLGUpLGZyPWU9PiQoYC9hdXRoL2F1dG9fZ3JhYmAsZSkscHI9ZT0+JChgL2F1dGgvcGF5X29yZGVyYCxlKSxtcj1lPT5RKGAvYXV0aC9nZXRfc2hvd3VzZXJgLGUpO2V4cG9ydHtXbiBhcyBDLEduIGFzIFMsdSBhcyBULHByIGFzIF8sbHIgYXMgYSxjciBhcyBiLGRyIGFzIGMsc3IgYXMgZCxtciBhcyBmLFFuIGFzIGcsSm4gYXMgaCx0ciBhcyBpLFhuIGFzIGwsWm4gYXMgbSxyciBhcyBuLCRuIGFzIG8sZXIgYXMgcCxuciBhcyByLFluIGFzIHMsaXIgYXMgdCxvciBhcyB1LGFyIGFzIHYsQm4gYXMgdyx1ciBhcyB4LGZyIGFzIHl9Ow=="}},"time_used":292,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":292,"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":"amazonenterprise3.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"ultradns","sensor_type":"DNS","title":"DigiCert UltraDNS","description":"DigiCert UltraDNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://vercara.digicert.com/ultra-dns-public","meta":null},{"sensor_name":"cloudflare_dns","sensor_type":"DNS","title":"Cloudflare DNS","description":"Cloudflare DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cloudflare.com/application-services/products/dns/","meta":null},{"sensor_name":"cira_dns","sensor_type":"DNS","title":"CIRA Canadian Shield DNS","description":"CIRA Canadian Shield DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cira.ca/en/canadian-shield/","meta":null}],"urlquery":[{"sensor_name":"urlquery","alert":"Phishing - Amazon","verdict":"phishing","severity":"medium","comment":"Resource associated with Amazon phishing","tags":["amazon","phishing"],"meta":null}]}},{"url":{"schema":"https","addr":"amazonenterprise3.com/assets/index-B0h_foJK.css","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://amazonenterprise3.com/","date":"2026-07-27T14:02:22.636Z","timestamp":1785160942636,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"amazonenterprise3.com","organization":""},"issuer":{"commonName":"LiteSSL RSA CA 2025","organization":"TrustAsia Technologies, Inc."},"validity":{"start":"Mon, 20 Jul 2026 11:00:00 GMT","end":"Sun, 18 Oct 2026 10:59:59 GMT"},"fingerprint":{"sha1":"4A:8A:66:B3:B0:81:D6:26:E2:8C:1F:FF:74:BC:A3:71:A3:81:C0:42","sha256":"E4:66:EB:64:6C:32:49:49:72:14:0B:E8:64:1D:03:F1:C0:70:AF:96:1E:F3:BF:6A:58:42:F7:06:1F:E0:51:A0"}}},"request":{"raw":"GET /assets/index-B0h_foJK.css HTTP/1.1\r\nHost: amazonenterprise3.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://amazonenterprise3.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: 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 14:02:22 GMT\r\ncontent-type: text/css\r\nlast-modified: Tue, 21 Jul 2026 18:45:13 GMT\r\nvary: Accept-Encoding\r\netag: W/\"6a5fbe39-31427\"\r\nexpires: Tue, 28 Jul 2026 02:02:22 GMT\r\ncache-control: max-age=43200\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\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":201767,"size_decoded":56386,"mime_type":"text/css","magic":"Unicode text, UTF-8 text, with very long lines (65018), with no line terminators","md5":"4242f5889c5fb2e68f8822060a8a8584","sha1":"5b147a56c78c9064145a069cfde851ed4350d766","sha256":"e7fc948b6642a7f3cea1a7142574aa1db504367842149ad697f569f05364e552","sha512":"0871bf8a4cd9d6917ead9ac9d38bfc8b6ff21f29aa4d3927bbe5a36dc9e01f44c24c0aa2c57ebd8592618243b60bfc48c632bd0c5ee4282587113d7e248ba49b","ssdeep":"1536:FIyNBi3MFYaQj7FCwsBlDOFIxuVoxNBNlQiQy7rAqa4z5FVqJB1:fNIClDsIxuVSMg3y","tlshash":"481494a9e790917d7f27f1759b8b96dcf13cba62dd01daa4f10091680ec3bf10623626","first_seen":"2026-07-27T12:42:47.695923Z","last_seen":"2026-07-27T14:03:28.940724Z","times_seen":3,"resource_available":false,"data":"OnJvb3QsOmhvc3R7LS12YW4tYmxhY2s6IzAwMDstLXZhbi13aGl0ZTojZmZmOy0tdmFuLWdyYXktMTojZjdmOGZhOy0tdmFuLWdyYXktMjojZjJmM2Y1Oy0tdmFuLWdyYXktMzojZWJlZGYwOy0tdmFuLWdyYXktNDojZGNkZWUwOy0tdmFuLWdyYXktNTojYzhjOWNjOy0tdmFuLWdyYXktNjojOTY5Nzk5Oy0tdmFuLWdyYXktNzojNjQ2NTY2Oy0tdmFuLWdyYXktODojMzIzMjMzOy0tdmFuLXJlZDojZWUwYTI0Oy0tdmFuLWJsdWU6IzE5ODlmYTstLXZhbi1vcmFuZ2U6I2ZmOTc2YTstLXZhbi1vcmFuZ2UtZGFyazojZWQ2YTBjOy0tdmFuLW9yYW5nZS1saWdodDojZmZmYmU4Oy0tdmFuLWdyZWVuOiMwN2MxNjA7LS12YW4tZ3JhZGllbnQtcmVkOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2ZmNjAzNCwgI2VlMGEyNCk7LS12YW4tZ3JhZGllbnQtb3JhbmdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2ZmZDAxZSwgI2ZmODkxNyk7LS12YW4tcHJpbWFyeS1jb2xvcjp2YXIoLS12YW4tYmx1ZSk7LS12YW4tc3VjY2Vzcy1jb2xvcjp2YXIoLS12YW4tZ3JlZW4pOy0tdmFuLWRhbmdlci1jb2xvcjp2YXIoLS12YW4tcmVkKTstLXZhbi13YXJuaW5nLWNvbG9yOnZhcigtLXZhbi1vcmFuZ2UpOy0tdmFuLXRleHQtY29sb3I6dmFyKC0tdmFuLWdyYXktOCk7LS12YW4tdGV4dC1jb2xvci0yOnZhcigtLXZhbi1ncmF5LTYpOy0tdmFuLXRleHQtY29sb3ItMzp2YXIoLS12YW4tZ3JheS01KTstLXZhbi1hY3RpdmUtY29sb3I6dmFyKC0tdmFuLWdyYXktMik7LS12YW4tYWN0aXZlLW9wYWNpdHk6LjY7LS12YW4tZGlzYWJsZWQtb3BhY2l0eTouNTstLXZhbi1iYWNrZ3JvdW5kOnZhcigtLXZhbi1ncmF5LTEpOy0tdmFuLWJhY2tncm91bmQtMjp2YXIoLS12YW4td2hpdGUpOy0tdmFuLWJhY2tncm91bmQtMzp2YXIoLS12YW4td2hpdGUpOy0tdmFuLXBhZGRpbmctYmFzZTo0cHg7LS12YW4tcGFkZGluZy14czo4cHg7LS12YW4tcGFkZGluZy1zbToxMnB4Oy0tdmFuLXBhZGRpbmctbWQ6MTZweDstLXZhbi1wYWRkaW5nLWxnOjI0cHg7LS12YW4tcGFkZGluZy14bDozMnB4Oy0tdmFuLWZvbnQtYm9sZDo2MDA7LS12YW4tZm9udC1zaXplLXhzOjEwcHg7LS12YW4tZm9udC1zaXplLXNtOjEycHg7LS12YW4tZm9udC1zaXplLW1kOjE0cHg7LS12YW4tZm9udC1zaXplLWxnOjE2cHg7LS12YW4tbGluZS1oZWlnaHQteHM6MTRweDstLXZhbi1saW5lLWhlaWdodC1zbToxOHB4Oy0tdmFuLWxpbmUtaGVpZ2h0LW1kOjIwcHg7LS12YW4tbGluZS1oZWlnaHQtbGc6MjJweDstLXZhbi1iYXNlLWZvbnQ6LWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiSGVsdmV0aWNhIE5ldWUiLCBIZWx2ZXRpY2EsIFNlZ29lIFVJLCBBcmlhbCwgUm9ib3RvLCAiUGluZ0ZhbmcgU0MiLCAibWl1aSIsICJIaXJhZ2lubyBTYW5zIEdCIiwgIk1pY3Jvc29mdCBZYWhlaSIsIHNhbnMtc2VyaWY7LS12YW4tcHJpY2UtZm9udDphdmVuaXItaGVhdnksICJQaW5nRmFuZyBTQyIsIGhlbHZldGljYSBuZXVlLCBhcmlhbCwgc2Fucy1zZXJpZjstLXZhbi1kdXJhdGlvbi1iYXNlOi4zczstLXZhbi1kdXJhdGlvbi1mYXN0Oi4yczstLXZhbi1lYXNlLW91dDplYXNlLW91dDstLXZhbi1lYXNlLWluOmVhc2UtaW47LS12YW4tYm9yZGVyLWNvbG9yOnZhcigtLXZhbi1ncmF5LTMpOy0tdmFuLWJvcmRlci13aWR0aDoxcHg7LS12YW4tcmFkaXVzLXNtOjJweDstLXZhbi1yYWRpdXMtbWQ6NHB4Oy0tdmFuLXJhZGl1cy1sZzo4cHg7LS12YW4tcmFkaXVzLW1heDo5OTlweH0udmFuLXRoZW1lLWRhcmt7LS12YW4tdGV4dC1jb2xvcjojZjVmNWY1Oy0tdmFuLXRleHQtY29sb3ItMjojNzA3MDcwOy0tdmFuLXRleHQtY29sb3ItMzojNGQ0ZDRkOy0tdmFuLWJvcmRlci1jb2xvcjojM2EzYTNjOy0tdmFuLWFjdGl2ZS1jb2xvcjojM2EzYTNjOy0tdmFuLWJhY2tncm91bmQ6IzAwMDstLXZhbi1iYWNrZ3JvdW5kLTI6IzFjMWMxZTstLXZhbi1iYWNrZ3JvdW5kLTM6IzM3MzYzYn1odG1sey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH1ib2R5e2ZvbnQtZmFtaWx5OnZhcigtLXZhbi1iYXNlLWZvbnQpO21hcmdpbjowfWF7dGV4dC1kZWNvcmF0aW9uOm5vbmV9aW5wdXQsYnV0dG9uLHRleHRhcmVhe2NvbG9yOmluaGVyaXQ7Zm9udDppbmhlcml0fWE6Zm9jdXMsaW5wdXQ6Zm9jdXMsYnV0dG9uOmZvY3VzLHRleHRhcmVhOmZvY3VzLFtjbGFzcyo9dmFuLV06Zm9jdXN7b3V0bGluZTpub25lfW9sLHVse21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9QGtleWZyYW1lcyB2YW4tc2xpZGUtdXAtZW50ZXJ7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSl9fUBrZXlmcmFtZXMgdmFuLXNsaWRlLXVwLWxlYXZle3Rve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpfX1Aa2V5ZnJhbWVzIHZhbi1zbGlkZS1kb3duLWVudGVyezAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMDAlKX19QGtleWZyYW1lcyB2YW4tc2xpZGUtZG93bi1sZWF2ZXt0b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTAwJSl9fUBrZXlmcmFtZXMgdmFuLXNsaWRlLWxlZnQtZW50ZXJ7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTAwJSl9fUBrZXlmcmFtZXMgdmFuLXNsaWRlLWxlZnQtbGVhdmV7dG97dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTAwJSl9fUBrZXlmcmFtZXMgdmFuLXNsaWRlLXJpZ2h0LWVudGVyezAle3RyYW5zZm9ybTp0cmFuc2xhdGUoMTAwJSl9fUBrZXlmcmFtZXMgdmFuLXNsaWRlLXJpZ2h0LWxlYXZle3Rve3RyYW5zZm9ybTp0cmFuc2xhdGUoMTAwJSl9fUBrZXlmcmFtZXMgdmFuLWZhZGUtaW57MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19QGtleWZyYW1lcyB2YW4tZmFkZS1vdXR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MH19QGtleWZyYW1lcyB2YW4tcm90YXRlezAle3RyYW5zZm9ybTpyb3RhdGUoMCl9dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0udmFuLWZhZGUtZW50ZXItYWN0aXZle2FuaW1hdGlvbjp2YXIoLS12YW4tZHVyYXRpb24tYmFzZSkgdmFuLWZhZGUtaW4gYm90aCB2YXIoLS12YW4tZWFzZS1vdXQpfS52YW4tZmFkZS1sZWF2ZS1hY3RpdmV7YW5pbWF0aW9uOnZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKSB2YW4tZmFkZS1vdXQgYm90aCB2YXIoLS12YW4tZWFzZS1pbil9LnZhbi1zbGlkZS11cC1lbnRlci1hY3RpdmV7YW5pbWF0aW9uOnZhbi1zbGlkZS11cC1lbnRlciB2YXIoLS12YW4tZHVyYXRpb24tYmFzZSkgYm90aCB2YXIoLS12YW4tZWFzZS1vdXQpfS52YW4tc2xpZGUtdXAtbGVhdmUtYWN0aXZle2FuaW1hdGlvbjp2YW4tc2xpZGUtdXAtbGVhdmUgdmFyKC0tdmFuLWR1cmF0aW9uLWJhc2UpIGJvdGggdmFyKC0tdmFuLWVhc2UtaW4pfS52YW4tc2xpZGUtZG93bi1lbnRlci1hY3RpdmV7YW5pbWF0aW9uOnZhbi1zbGlkZS1kb3duLWVudGVyIHZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKSBib3RoIHZhcigtLXZhbi1lYXNlLW91dCl9LnZhbi1zbGlkZS1kb3duLWxlYXZlLWFjdGl2ZXthbmltYXRpb246dmFuLXNsaWRlLWRvd24tbGVhdmUgdmFyKC0tdmFuLWR1cmF0aW9uLWJhc2UpIGJvdGggdmFyKC0tdmFuLWVhc2UtaW4pfS52YW4tc2xpZGUtbGVmdC1lbnRlci1hY3RpdmV7YW5pbWF0aW9uOnZhbi1zbGlkZS1sZWZ0LWVudGVyIHZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKSBib3RoIHZhcigtLXZhbi1lYXNlLW91dCl9LnZhbi1zbGlkZS1sZWZ0LWxlYXZlLWFjdGl2ZXthbmltYXRpb246dmFuLXNsaWRlLWxlZnQtbGVhdmUgdmFyKC0tdmFuLWR1cmF0aW9uLWJhc2UpIGJvdGggdmFyKC0tdmFuLWVhc2UtaW4pfS52YW4tc2xpZGUtcmlnaHQtZW50ZXItYWN0aXZle2FuaW1hdGlvbjp2YW4tc2xpZGUtcmlnaHQtZW50ZXIgdmFyKC0tdmFuLWR1cmF0aW9uLWJhc2UpIGJvdGggdmFyKC0tdmFuLWVhc2Utb3V0KX0udmFuLXNsaWRlLXJpZ2h0LWxlYXZlLWFjdGl2ZXthbmltYXRpb246dmFuLXNsaWRlLXJpZ2h0LWxlYXZlIHZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKSBib3RoIHZhcigtLXZhbi1lYXNlLWluKX0udmFuLWNsZWFyZml4OmFmdGVye2NsZWFyOmJvdGg7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlfS52YW4tZWxsaXBzaXN7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVufS52YW4tbXVsdGktZWxsaXBzaXMtLWwye3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7LXdlYmtpdC1saW5lLWNsYW1wOjI7bGluZS1icmVhazphbnl3aGVyZTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW59LnZhbi1tdWx0aS1lbGxpcHNpcy0tbDN7dGV4dC1vdmVyZmxvdzplbGxpcHNpczstd2Via2l0LWxpbmUtY2xhbXA6MztsaW5lLWJyZWFrOmFueXdoZXJlOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbn0udmFuLXNhZmUtYXJlYS10b3B7cGFkZGluZy10b3A6Y29uc3RhbnQoc2FmZS1hcmVhLWluc2V0LXRvcCk7cGFkZGluZy10b3A6ZW52KHNhZmUtYXJlYS1pbnNldC10b3ApfS52YW4tc2FmZS1hcmVhLWJvdHRvbXtwYWRkaW5nLWJvdHRvbTpjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtwYWRkaW5nLWJvdHRvbTplbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSl9LnZhbi1oYXB0aWNzLWZlZWRiYWNre2N1cnNvcjpwb2ludGVyfS52YW4taGFwdGljcy1mZWVkYmFjazphY3RpdmV7b3BhY2l0eTp2YXIoLS12YW4tYWN0aXZlLW9wYWNpdHkpfVtjbGFzcyo9dmFuLWhhaXJsaW5lXTphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiICI7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXI6MCBzb2xpZCB2YXIoLS12YW4tYm9yZGVyLWNvbG9yKTtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDotNTAlO3RyYW5zZm9ybTpzY2FsZSguNSl9LnZhbi1oYWlybGluZSwudmFuLWhhaXJsaW5lLS10b3AsLnZhbi1oYWlybGluZS0tbGVmdCwudmFuLWhhaXJsaW5lLS1yaWdodCwudmFuLWhhaXJsaW5lLS1ib3R0b20sLnZhbi1oYWlybGluZS0tc3Vycm91bmQsLnZhbi1oYWlybGluZS0tdG9wLWJvdHRvbXtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLWhhaXJsaW5lLS10b3A6YWZ0ZXJ7Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS12YW4tYm9yZGVyLXdpZHRoKX0udmFuLWhhaXJsaW5lLS1sZWZ0OmFmdGVye2JvcmRlci1sZWZ0LXdpZHRoOnZhcigtLXZhbi1ib3JkZXItd2lkdGgpfS52YW4taGFpcmxpbmUtLXJpZ2h0OmFmdGVye2JvcmRlci1yaWdodC13aWR0aDp2YXIoLS12YW4tYm9yZGVyLXdpZHRoKX0udmFuLWhhaXJsaW5lLS1ib3R0b206YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS12YW4tYm9yZGVyLXdpZHRoKX0udmFuLWhhaXJsaW5lLS10b3AtYm90dG9tOmFmdGVyLC52YW4taGFpcmxpbmUtdW5zZXQtLXRvcC1ib3R0b206YWZ0ZXJ7Ym9yZGVyLXdpZHRoOnZhcigtLXZhbi1ib3JkZXItd2lkdGgpIDB9LnZhbi1oYWlybGluZS0tc3Vycm91bmQ6YWZ0ZXJ7Ym9yZGVyLXdpZHRoOnZhcigtLXZhbi1ib3JkZXItd2lkdGgpfTpyb290LDpob3N0ey0tdmFuLWFjdGlvbi1iYXItYmFja2dyb3VuZDp2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1hY3Rpb24tYmFyLWhlaWdodDo1MHB4fS52YW4tYWN0aW9uLWJhcntib3gtc2l6aW5nOmNvbnRlbnQtYm94O2hlaWdodDp2YXIoLS12YW4tYWN0aW9uLWJhci1oZWlnaHQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWFjdGlvbi1iYXItYmFja2dyb3VuZCk7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpmaXhlZDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MH06cm9vdCw6aG9zdHstLXZhbi1iYWRnZS1zaXplOjE2cHg7LS12YW4tYmFkZ2UtY29sb3I6dmFyKC0tdmFuLXdoaXRlKTstLXZhbi1iYWRnZS1wYWRkaW5nOjAgM3B4Oy0tdmFuLWJhZGdlLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLXNtKTstLXZhbi1iYWRnZS1mb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKTstLXZhbi1iYWRnZS1ib3JkZXItd2lkdGg6dmFyKC0tdmFuLWJvcmRlci13aWR0aCk7LS12YW4tYmFkZ2UtYmFja2dyb3VuZDp2YXIoLS12YW4tZGFuZ2VyLWNvbG9yKTstLXZhbi1iYWRnZS1kb3QtY29sb3I6dmFyKC0tdmFuLWRhbmdlci1jb2xvcik7LS12YW4tYmFkZ2UtZG90LXNpemU6OHB4Oy0tdmFuLWJhZGdlLWZvbnQ6LWFwcGxlLXN5c3RlbS1mb250LCBoZWx2ZXRpY2EgbmV1ZSwgYXJpYWwsIHNhbnMtc2VyaWZ9LnZhbi1iYWRnZXtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWluLXdpZHRoOnZhcigtLXZhbi1iYWRnZS1zaXplKTtwYWRkaW5nOnZhcigtLXZhbi1iYWRnZS1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tYmFkZ2UtY29sb3IpO2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1iYWRnZS1mb250LXdlaWdodCk7Zm9udC1zaXplOnZhcigtLXZhbi1iYWRnZS1mb250LXNpemUpO2ZvbnQtZmFtaWx5OnZhcigtLXZhbi1iYWRnZS1mb250KTt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWRnZS1iYWNrZ3JvdW5kKTtib3JkZXI6dmFyKC0tdmFuLWJhZGdlLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tdmFuLWJhY2tncm91bmQtMik7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLW1heCk7bGluZS1oZWlnaHQ6MS4yO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS52YW4tYmFkZ2UtLWZpeGVke3RyYW5zZm9ybS1vcmlnaW46MTAwJTtwb3NpdGlvbjphYnNvbHV0ZX0udmFuLWJhZGdlLS10b3AtbGVmdHt0b3A6MDtsZWZ0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpfS52YW4tYmFkZ2UtLXRvcC1yaWdodHt0b3A6MDtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGUoNTAlLC01MCUpfS52YW4tYmFkZ2UtLWJvdHRvbS1sZWZ0e2JvdHRvbTowO2xlZnQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsNTAlKX0udmFuLWJhZGdlLS1ib3R0b20tcmlnaHR7Ym90dG9tOjA7cmlnaHQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKDUwJSw1MCUpfS52YW4tYmFkZ2UtLWRvdHt3aWR0aDp2YXIoLS12YW4tYmFkZ2UtZG90LXNpemUpO21pbi13aWR0aDowO2hlaWdodDp2YXIoLS12YW4tYmFkZ2UtZG90LXNpemUpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWJhZGdlLWRvdC1jb2xvcik7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoxMDAlO3BhZGRpbmc6MH0udmFuLWJhZGdlX193cmFwcGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4taWNvbntmb250OjE0cHgvMSB2YW50LWljb247Zm9udDpub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgdmFyKC0tdmFuLWljb24tZm9udC1mYW1pbHksInZhbnQtaWNvbiIpO2ZvbnQtc2l6ZTppbmhlcml0O3RleHQtcmVuZGVyaW5nOmF1dG87LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLWljb246YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrfS52YW4taWNvbi1hcnJvdy1kb3VibGUtbGVmdDpiZWZvcmV7Y29udGVudDoi7pmTIn0udmFuLWljb24tYXJyb3ctZG91YmxlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiLumZQifS52YW4taWNvbi1jb250YWN0OmJlZm9yZXtjb250ZW50OiLunZMifS52YW4taWNvbi1ub3RlczpiZWZvcmV7Y29udGVudDoi7pi8In0udmFuLWljb24tcmVjb3JkczpiZWZvcmV7Y29udGVudDoi7pi9In0udmFuLWljb24tY2FzaC1iYWNrLXJlY29yZDpiZWZvcmV7Y29udGVudDoi7pi+In0udmFuLWljb24tbmV3c3BhcGVyOmJlZm9yZXtjb250ZW50OiLumL8ifS52YW4taWNvbi1kaXNjb3VudDpiZWZvcmV7Y29udGVudDoi7pmAIn0udmFuLWljb24tY29tcGxldGVkOmJlZm9yZXtjb250ZW50OiLumYEifS52YW4taWNvbi11c2VyOmJlZm9yZXtjb250ZW50OiLumYIifS52YW4taWNvbi1kZXNjcmlwdGlvbjpiZWZvcmV7Y29udGVudDoi7pmDIn0udmFuLWljb24tbGlzdC1zd2l0Y2g6YmVmb3Jle2NvbnRlbnQ6Iu6arSJ9LnZhbi1pY29uLWxpc3Qtc3dpdGNoaW5nOmJlZm9yZXtjb250ZW50OiLumZoifS52YW4taWNvbi1saW5rLW86YmVmb3Jle2NvbnRlbnQ6Iu6dkSJ9LnZhbi1pY29uLW1pbmlwcm9ncmFtLW86YmVmb3Jle2NvbnRlbnQ6Iu6dkiJ9LnZhbi1pY29uLXFxOmJlZm9yZXtjb250ZW50OiLunY4ifS52YW4taWNvbi13ZWNoYXQtbW9tZW50czpiZWZvcmV7Y29udGVudDoi7p2PIn0udmFuLWljb24td2VpYm86YmVmb3Jle2NvbnRlbnQ6Iu6dkCJ9LnZhbi1pY29uLWNhc2gtbzpiZWZvcmV7Y29udGVudDoi7p2NIn0udmFuLWljb24tZ3VpZGUtbzpiZWZvcmV7Y29udGVudDoi7p2MIn0udmFuLWljb24taW52aXRhdGlvbjpiZWZvcmV7Y29udGVudDoi7puWIn0udmFuLWljb24tc2hpZWxkLW86YmVmb3Jle2NvbnRlbnQ6Iu6diyJ9LnZhbi1pY29uLWV4Y2hhbmdlOmJlZm9yZXtjb250ZW50OiLumq8ifS52YW4taWNvbi1leWU6YmVmb3Jle2NvbnRlbnQ6Iu6asCJ9LnZhbi1pY29uLWVubGFyZ2U6YmVmb3Jle2NvbnRlbnQ6Iu6asSJ9LnZhbi1pY29uLWV4cGFuZC1vOmJlZm9yZXtjb250ZW50OiLumrIifS52YW4taWNvbi1leWUtbzpiZWZvcmV7Y29udGVudDoi7pqzIn0udmFuLWljb24tZXhwYW5kOmJlZm9yZXtjb250ZW50OiLumrQifS52YW4taWNvbi1maWx0ZXItbzpiZWZvcmV7Y29udGVudDoi7pq1In0udmFuLWljb24tZmlyZTpiZWZvcmV7Y29udGVudDoi7pq2In0udmFuLWljb24tZmFpbDpiZWZvcmV7Y29udGVudDoi7pq3In0udmFuLWljb24tZmFpbHVyZTpiZWZvcmV7Y29udGVudDoi7pq4In0udmFuLWljb24tZmlyZS1vOmJlZm9yZXtjb250ZW50OiLumrkifS52YW4taWNvbi1mbGFnLW86YmVmb3Jle2NvbnRlbnQ6Iu6auiJ9LnZhbi1pY29uLWZvbnQ6YmVmb3Jle2NvbnRlbnQ6Iu6auyJ9LnZhbi1pY29uLWZvbnQtbzpiZWZvcmV7Y29udGVudDoi7pq8In0udmFuLWljb24tZ2VtLW86YmVmb3Jle2NvbnRlbnQ6Iu6avSJ9LnZhbi1pY29uLWZsb3dlci1vOmJlZm9yZXtjb250ZW50OiLumr4ifS52YW4taWNvbi1nZW06YmVmb3Jle2NvbnRlbnQ6Iu6avyJ9LnZhbi1pY29uLWdpZnQtY2FyZDpiZWZvcmV7Y29udGVudDoi7puAIn0udmFuLWljb24tZnJpZW5kczpiZWZvcmV7Y29udGVudDoi7puBIn0udmFuLWljb24tZnJpZW5kcy1vOmJlZm9yZXtjb250ZW50OiLum4IifS52YW4taWNvbi1nb2xkLWNvaW46YmVmb3Jle2NvbnRlbnQ6Iu6bgyJ9LnZhbi1pY29uLWdvbGQtY29pbi1vOmJlZm9yZXtjb250ZW50OiLum4QifS52YW4taWNvbi1nb29kLWpvYi1vOmJlZm9yZXtjb250ZW50OiLum4UifS52YW4taWNvbi1naWZ0OmJlZm9yZXtjb250ZW50OiLum4YifS52YW4taWNvbi1naWZ0LW86YmVmb3Jle2NvbnRlbnQ6Iu6bhyJ9LnZhbi1pY29uLWdpZnQtY2FyZC1vOmJlZm9yZXtjb250ZW50OiLum4gifS52YW4taWNvbi1nb29kLWpvYjpiZWZvcmV7Y29udGVudDoi7puJIn0udmFuLWljb24taG9tZS1vOmJlZm9yZXtjb250ZW50OiLum4oifS52YW4taWNvbi1nb29kcy1jb2xsZWN0OmJlZm9yZXtjb250ZW50OiLum4sifS52YW4taWNvbi1ncmFwaGljOmJlZm9yZXtjb250ZW50OiLum4wifS52YW4taWNvbi1nb29kcy1jb2xsZWN0LW86YmVmb3Jle2NvbnRlbnQ6Iu6bjSJ9LnZhbi1pY29uLWhvdC1vOmJlZm9yZXtjb250ZW50OiLum44ifS52YW4taWNvbi1pbmZvOmJlZm9yZXtjb250ZW50OiLum48ifS52YW4taWNvbi1ob3RlbC1vOmJlZm9yZXtjb250ZW50OiLum5AifS52YW4taWNvbi1pbmZvLW86YmVmb3Jle2NvbnRlbnQ6Iu6bkSJ9LnZhbi1pY29uLWhvdC1zYWxlLW86YmVmb3Jle2NvbnRlbnQ6Iu6bkiJ9LnZhbi1pY29uLWhvdDpiZWZvcmV7Y29udGVudDoi7puTIn0udmFuLWljb24tbGlrZTpiZWZvcmV7Y29udGVudDoi7puUIn0udmFuLWljb24taWRjYXJkOmJlZm9yZXtjb250ZW50OiLum5UifS52YW4taWNvbi1saWtlLW86YmVmb3Jle2NvbnRlbnQ6Iu6blyJ9LnZhbi1pY29uLWhvdC1zYWxlOmJlZm9yZXtjb250ZW50OiLum5gifS52YW4taWNvbi1sb2NhdGlvbi1vOmJlZm9yZXtjb250ZW50OiLum5kifS52YW4taWNvbi1sb2NhdGlvbjpiZWZvcmV7Y29udGVudDoi7puaIn0udmFuLWljb24tbGFiZWw6YmVmb3Jle2NvbnRlbnQ6Iu6bmyJ9LnZhbi1pY29uLWxvY2s6YmVmb3Jle2NvbnRlbnQ6Iu6bnCJ9LnZhbi1pY29uLWxhYmVsLW86YmVmb3Jle2NvbnRlbnQ6Iu6bnSJ9LnZhbi1pY29uLW1hcC1tYXJrZWQ6YmVmb3Jle2NvbnRlbnQ6Iu6bniJ9LnZhbi1pY29uLWxvZ2lzdGljczpiZWZvcmV7Y29udGVudDoi7pufIn0udmFuLWljb24tbWFuYWdlcjpiZWZvcmV7Y29udGVudDoi7pugIn0udmFuLWljb24tbW9yZTpiZWZvcmV7Y29udGVudDoi7puhIn0udmFuLWljb24tbGl2ZTpiZWZvcmV7Y29udGVudDoi7puiIn0udmFuLWljb24tbWFuYWdlci1vOmJlZm9yZXtjb250ZW50OiLum6MifS52YW4taWNvbi1tZWRhbDpiZWZvcmV7Y29udGVudDoi7pukIn0udmFuLWljb24tbW9yZS1vOmJlZm9yZXtjb250ZW50OiLum6UifS52YW4taWNvbi1tdXNpYy1vOmJlZm9yZXtjb250ZW50OiLum6YifS52YW4taWNvbi1tdXNpYzpiZWZvcmV7Y29udGVudDoi7punIn0udmFuLWljb24tbmV3LWFycml2YWwtbzpiZWZvcmV7Y29udGVudDoi7puoIn0udmFuLWljb24tbWVkYWwtbzpiZWZvcmV7Y29udGVudDoi7pupIn0udmFuLWljb24tbmV3LW86YmVmb3Jle2NvbnRlbnQ6Iu6bqiJ9LnZhbi1pY29uLWZyZWUtcG9zdGFnZTpiZWZvcmV7Y29udGVudDoi7purIn0udmFuLWljb24tbmV3c3BhcGVyLW86YmVmb3Jle2NvbnRlbnQ6Iu6brCJ9LnZhbi1pY29uLW5ldy1hcnJpdmFsOmJlZm9yZXtjb250ZW50OiLum60ifS52YW4taWNvbi1taW51czpiZWZvcmV7Y29udGVudDoi7puuIn0udmFuLWljb24tb3JkZXJzLW86YmVmb3Jle2NvbnRlbnQ6Iu6bryJ9LnZhbi1pY29uLW5ldzpiZWZvcmV7Y29udGVudDoi7puwIn0udmFuLWljb24tcGFpZDpiZWZvcmV7Y29udGVudDoi7puxIn0udmFuLWljb24tbm90ZXMtbzpiZWZvcmV7Y29udGVudDoi7puyIn0udmFuLWljb24tb3RoZXItcGF5OmJlZm9yZXtjb250ZW50OiLum7MifS52YW4taWNvbi1wYXVzZS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6Iu6btCJ9LnZhbi1pY29uLXBhdXNlOmJlZm9yZXtjb250ZW50OiLum7UifS52YW4taWNvbi1wYXVzZS1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoi7pu2In0udmFuLWljb24tcGVlci1wYXk6YmVmb3Jle2NvbnRlbnQ6Iu6btyJ9LnZhbi1pY29uLXBlbmRpbmctcGF5bWVudDpiZWZvcmV7Y29udGVudDoi7pu4In0udmFuLWljb24tcGFzc2VkOmJlZm9yZXtjb250ZW50OiLum7kifS52YW4taWNvbi1wbHVzOmJlZm9yZXtjb250ZW50OiLum7oifS52YW4taWNvbi1waG9uZS1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoi7pu7In0udmFuLWljb24tcGhvbmUtbzpiZWZvcmV7Y29udGVudDoi7pu8In0udmFuLWljb24tcHJpbnRlcjpiZWZvcmV7Y29udGVudDoi7pu9In0udmFuLWljb24tcGhvdG8tZmFpbDpiZWZvcmV7Y29udGVudDoi7pu+In0udmFuLWljb24tcGhvbmU6YmVmb3Jle2NvbnRlbnQ6Iu6bvyJ9LnZhbi1pY29uLXBob3RvLW86YmVmb3Jle2NvbnRlbnQ6Iu6cgCJ9LnZhbi1pY29uLXBsYXktY2lyY2xlOmJlZm9yZXtjb250ZW50OiLunIEifS52YW4taWNvbi1wbGF5OmJlZm9yZXtjb250ZW50OiLunIIifS52YW4taWNvbi1waG9uZS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6Iu6cgyJ9LnZhbi1pY29uLXBvaW50LWdpZnQtbzpiZWZvcmV7Y29udGVudDoi7pyEIn0udmFuLWljb24tcG9pbnQtZ2lmdDpiZWZvcmV7Y29udGVudDoi7pyFIn0udmFuLWljb24tcGxheS1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoi7pyGIn0udmFuLWljb24tc2hyaW5rOmJlZm9yZXtjb250ZW50OiLunIcifS52YW4taWNvbi1waG90bzpiZWZvcmV7Y29udGVudDoi7pyIIn0udmFuLWljb24tcXI6YmVmb3Jle2NvbnRlbnQ6Iu6ciSJ9LnZhbi1pY29uLXFyLWludmFsaWQ6YmVmb3Jle2NvbnRlbnQ6Iu6ciiJ9LnZhbi1pY29uLXF1ZXN0aW9uLW86YmVmb3Jle2NvbnRlbnQ6Iu6ciyJ9LnZhbi1pY29uLXJldm9rZTpiZWZvcmV7Y29udGVudDoi7pyMIn0udmFuLWljb24tcmVwbGF5OmJlZm9yZXtjb250ZW50OiLunI0ifS52YW4taWNvbi1zZXJ2aWNlOmJlZm9yZXtjb250ZW50OiLunI4ifS52YW4taWNvbi1xdWVzdGlvbjpiZWZvcmV7Y29udGVudDoi7pyPIn0udmFuLWljb24tc2VhcmNoOmJlZm9yZXtjb250ZW50OiLunJAifS52YW4taWNvbi1yZWZ1bmQtbzpiZWZvcmV7Y29udGVudDoi7pyRIn0udmFuLWljb24tc2VydmljZS1vOmJlZm9yZXtjb250ZW50OiLunJIifS52YW4taWNvbi1zY2FuOmJlZm9yZXtjb250ZW50OiLunJMifS52YW4taWNvbi1zaGFyZTpiZWZvcmV7Y29udGVudDoi7pyUIn0udmFuLWljb24tc2VuZC1naWZ0LW86YmVmb3Jle2NvbnRlbnQ6Iu6clSJ9LnZhbi1pY29uLXNoYXJlLW86YmVmb3Jle2NvbnRlbnQ6Iu6cliJ9LnZhbi1pY29uLXNldHRpbmc6YmVmb3Jle2NvbnRlbnQ6Iu6clyJ9LnZhbi1pY29uLXBvaW50czpiZWZvcmV7Y29udGVudDoi7pyYIn0udmFuLWljb24tcGhvdG9ncmFwaDpiZWZvcmV7Y29udGVudDoi7pyZIn0udmFuLWljb24tc2hvcDpiZWZvcmV7Y29udGVudDoi7pyaIn0udmFuLWljb24tc2hvcC1vOmJlZm9yZXtjb250ZW50OiLunJsifS52YW4taWNvbi1zaG9wLWNvbGxlY3QtbzpiZWZvcmV7Y29udGVudDoi7pycIn0udmFuLWljb24tc2hvcC1jb2xsZWN0OmJlZm9yZXtjb250ZW50OiLunJ0ifS52YW4taWNvbi1zbWlsZTpiZWZvcmV7Y29udGVudDoi7pyeIn0udmFuLWljb24tc2hvcHBpbmctY2FydC1vOmJlZm9yZXtjb250ZW50OiLunJ8ifS52YW4taWNvbi1zaWduOmJlZm9yZXtjb250ZW50OiLunKAifS52YW4taWNvbi1zb3J0OmJlZm9yZXtjb250ZW50OiLunKEifS52YW4taWNvbi1zdGFyLW86YmVmb3Jle2NvbnRlbnQ6Iu6coiJ9LnZhbi1pY29uLXNtaWxlLWNvbW1lbnQtbzpiZWZvcmV7Y29udGVudDoi7pyjIn0udmFuLWljb24tc3RvcDpiZWZvcmV7Y29udGVudDoi7pykIn0udmFuLWljb24tc3RvcC1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoi7pylIn0udmFuLWljb24tc21pbGUtbzpiZWZvcmV7Y29udGVudDoi7pymIn0udmFuLWljb24tc3RhcjpiZWZvcmV7Y29udGVudDoi7pynIn0udmFuLWljb24tc3VjY2VzczpiZWZvcmV7Y29udGVudDoi7pyoIn0udmFuLWljb24tc3RvcC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6Iu6cqSJ9LnZhbi1pY29uLXJlY29yZHMtbzpiZWZvcmV7Y29udGVudDoi7pyqIn0udmFuLWljb24tc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDoi7pyrIn0udmFuLWljb24tdG9zZW5kOmJlZm9yZXtjb250ZW50OiLunKwifS52YW4taWNvbi10b2RvLWxpc3Q6YmVmb3Jle2NvbnRlbnQ6Iu6crSJ9LnZhbi1pY29uLXRodW1iLWNpcmNsZS1vOmJlZm9yZXtjb250ZW50OiLunK4ifS52YW4taWNvbi10aHVtYi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6Iu6cryJ9LnZhbi1pY29uLXVtYnJlbGxhLWNpcmNsZTpiZWZvcmV7Y29udGVudDoi7pywIn0udmFuLWljb24tdW5kZXJ3YXk6YmVmb3Jle2NvbnRlbnQ6Iu6csSJ9LnZhbi1pY29uLXVwZ3JhZGU6YmVmb3Jle2NvbnRlbnQ6Iu6csiJ9LnZhbi1pY29uLXRvZG8tbGlzdC1vOmJlZm9yZXtjb250ZW50OiLunLMifS52YW4taWNvbi10di1vOmJlZm9yZXtjb250ZW50OiLunLQifS52YW4taWNvbi11bmRlcndheS1vOmJlZm9yZXtjb250ZW50OiLunLUifS52YW4taWNvbi11c2VyLW86YmVmb3Jle2NvbnRlbnQ6Iu6ctiJ9LnZhbi1pY29uLXZpcC1jYXJkLW86YmVmb3Jle2NvbnRlbnQ6Iu6ctyJ9LnZhbi1pY29uLXZpcC1jYXJkOmJlZm9yZXtjb250ZW50OiLunLgifS52YW4taWNvbi1zZW5kLWdpZnQ6YmVmb3Jle2NvbnRlbnQ6Iu6cuSJ9LnZhbi1pY29uLXdhcC1ob21lOmJlZm9yZXtjb250ZW50OiLunLoifS52YW4taWNvbi13YXAtbmF2OmJlZm9yZXtjb250ZW50OiLunLsifS52YW4taWNvbi12b2x1bWUtbzpiZWZvcmV7Y29udGVudDoi7py8In0udmFuLWljb24tdmlkZW86YmVmb3Jle2NvbnRlbnQ6Iu6cvSJ9LnZhbi1pY29uLXdhcC1ob21lLW86YmVmb3Jle2NvbnRlbnQ6Iu6cviJ9LnZhbi1pY29uLXZvbHVtZTpiZWZvcmV7Y29udGVudDoi7py/In0udmFuLWljb24td2FybmluZzpiZWZvcmV7Y29udGVudDoi7p2AIn0udmFuLWljb24td2VhcHAtbmF2OmJlZm9yZXtjb250ZW50OiLunYEifS52YW4taWNvbi13ZWNoYXQtcGF5OmJlZm9yZXtjb250ZW50OiLunYIifS52YW4taWNvbi13YXJuaW5nLW86YmVmb3Jle2NvbnRlbnQ6Iu6dgyJ9LnZhbi1pY29uLXdlY2hhdDpiZWZvcmV7Y29udGVudDoi7p2EIn0udmFuLWljb24tc2V0dGluZy1vOmJlZm9yZXtjb250ZW50OiLunYUifS52YW4taWNvbi15b3V6YW4tc2hpZWxkOmJlZm9yZXtjb250ZW50OiLunYYifS52YW4taWNvbi13YXJuLW86YmVmb3Jle2NvbnRlbnQ6Iu6dhyJ9LnZhbi1pY29uLXNtaWxlLWNvbW1lbnQ6YmVmb3Jle2NvbnRlbnQ6Iu6diCJ9LnZhbi1pY29uLXVzZXItY2lyY2xlLW86YmVmb3Jle2NvbnRlbnQ6Iu6diSJ9LnZhbi1pY29uLXZpZGVvLW86YmVmb3Jle2NvbnRlbnQ6Iu6diiJ9LnZhbi1pY29uLWFkZC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6Iu6ZnCJ9LnZhbi1pY29uLWFkZDpiZWZvcmV7Y29udGVudDoi7pmdIn0udmFuLWljb24tYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoi7pmeIn0udmFuLWljb24tYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6Iu6ZnyJ9LnZhbi1pY29uLWFycm93OmJlZm9yZXtjb250ZW50OiLumaAifS52YW4taWNvbi1hZnRlci1zYWxlOmJlZm9yZXtjb250ZW50OiLumaEifS52YW4taWNvbi1hZGQtbzpiZWZvcmV7Y29udGVudDoi7pmiIn0udmFuLWljb24tYWxpcGF5OmJlZm9yZXtjb250ZW50OiLumaMifS52YW4taWNvbi1hc2NlbmRpbmc6YmVmb3Jle2NvbnRlbnQ6Iu6ZpCJ9LnZhbi1pY29uLWFwcHMtbzpiZWZvcmV7Y29udGVudDoi7pmlIn0udmFuLWljb24tYWltOmJlZm9yZXtjb250ZW50OiLumaYifS52YW4taWNvbi1hd2FyZDpiZWZvcmV7Y29udGVudDoi7pmnIn0udmFuLWljb24tYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoi7pmoIn0udmFuLWljb24tYXdhcmQtbzpiZWZvcmV7Y29udGVudDoi7pmpIn0udmFuLWljb24tYXVkaW86YmVmb3Jle2NvbnRlbnQ6Iu6ZqiJ9LnZhbi1pY29uLWJhZy1vOmJlZm9yZXtjb250ZW50OiLumasifS52YW4taWNvbi1iYWxhbmNlLWxpc3Q6YmVmb3Jle2NvbnRlbnQ6Iu6ZrCJ9LnZhbi1pY29uLWJhY2stdG9wOmJlZm9yZXtjb250ZW50OiLuma0ifS52YW4taWNvbi1iYWc6YmVmb3Jle2NvbnRlbnQ6Iu6ZriJ9LnZhbi1pY29uLWJhbGFuY2UtcGF5OmJlZm9yZXtjb250ZW50OiLuma8ifS52YW4taWNvbi1iYWxhbmNlLW86YmVmb3Jle2NvbnRlbnQ6Iu6ZsCJ9LnZhbi1pY29uLWJhci1jaGFydC1vOmJlZm9yZXtjb250ZW50OiLumbEifS52YW4taWNvbi1iYXJzOmJlZm9yZXtjb250ZW50OiLumbIifS52YW4taWNvbi1iYWxhbmNlLWxpc3QtbzpiZWZvcmV7Y29udGVudDoi7pmzIn0udmFuLWljb24tYmlydGhkYXktY2FrZS1vOmJlZm9yZXtjb250ZW50OiLumbQifS52YW4taWNvbi1ib29rbWFyazpiZWZvcmV7Y29udGVudDoi7pm1In0udmFuLWljb24tYmlsbDpiZWZvcmV7Y29udGVudDoi7pm2In0udmFuLWljb24tYmVsbDpiZWZvcmV7Y29udGVudDoi7pm3In0udmFuLWljb24tYnJvd3NpbmctaGlzdG9yeS1vOmJlZm9yZXtjb250ZW50OiLumbgifS52YW4taWNvbi1icm93c2luZy1oaXN0b3J5OmJlZm9yZXtjb250ZW50OiLumbkifS52YW4taWNvbi1ib29rbWFyay1vOmJlZm9yZXtjb250ZW50OiLumboifS52YW4taWNvbi1idWxiLW86YmVmb3Jle2NvbnRlbnQ6Iu6ZuyJ9LnZhbi1pY29uLWJ1bGxob3JuLW86YmVmb3Jle2NvbnRlbnQ6Iu6ZvCJ9LnZhbi1pY29uLWJpbGwtbzpiZWZvcmV7Y29udGVudDoi7pm9In0udmFuLWljb24tY2FsZW5kYXItbzpiZWZvcmV7Y29udGVudDoi7pm+In0udmFuLWljb24tYnJ1c2gtbzpiZWZvcmV7Y29udGVudDoi7pm/In0udmFuLWljb24tY2FyZDpiZWZvcmV7Y29udGVudDoi7pqAIn0udmFuLWljb24tY2FydC1vOmJlZm9yZXtjb250ZW50OiLumoEifS52YW4taWNvbi1jYXJ0LWNpcmNsZTpiZWZvcmV7Y29udGVudDoi7pqCIn0udmFuLWljb24tY2FydC1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoi7pqDIn0udmFuLWljb24tY2FydDpiZWZvcmV7Y29udGVudDoi7pqEIn0udmFuLWljb24tY2FzaC1vbi1kZWxpdmVyOmJlZm9yZXtjb250ZW50OiLumoUifS52YW4taWNvbi1jYXNoLWJhY2stcmVjb3JkLW86YmVmb3Jle2NvbnRlbnQ6Iu6ahiJ9LnZhbi1pY29uLWNhc2hpZXItbzpiZWZvcmV7Y29udGVudDoi7pqHIn0udmFuLWljb24tY2hhcnQtdHJlbmRpbmctbzpiZWZvcmV7Y29udGVudDoi7pqIIn0udmFuLWljb24tY2VydGlmaWNhdGU6YmVmb3Jle2NvbnRlbnQ6Iu6aiSJ9LnZhbi1pY29uLWNoYXQ6YmVmb3Jle2NvbnRlbnQ6Iu6aiiJ9LnZhbi1pY29uLWNsZWFyOmJlZm9yZXtjb250ZW50OiLumosifS52YW4taWNvbi1jaGF0LW86YmVmb3Jle2NvbnRlbnQ6Iu6ajCJ9LnZhbi1pY29uLWNoZWNrZWQ6YmVmb3Jle2NvbnRlbnQ6Iu6ajSJ9LnZhbi1pY29uLWNsb2NrOmJlZm9yZXtjb250ZW50OiLumo4ifS52YW4taWNvbi1jbG9jay1vOmJlZm9yZXtjb250ZW50OiLumo8ifS52YW4taWNvbi1jbG9zZTpiZWZvcmV7Y29udGVudDoi7pqQIn0udmFuLWljb24tY2xvc2VkLWV5ZTpiZWZvcmV7Y29udGVudDoi7pqRIn0udmFuLWljb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiLumpIifS52YW4taWNvbi1jbHVzdGVyLW86YmVmb3Jle2NvbnRlbnQ6Iu6akyJ9LnZhbi1pY29uLWNvbHVtbjpiZWZvcmV7Y29udGVudDoi7pqUIn0udmFuLWljb24tY29tbWVudC1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoi7pqVIn0udmFuLWljb24tY2x1c3RlcjpiZWZvcmV7Y29udGVudDoi7pqWIn0udmFuLWljb24tY29tbWVudDpiZWZvcmV7Y29udGVudDoi7pqXIn0udmFuLWljb24tY29tbWVudC1vOmJlZm9yZXtjb250ZW50OiLumpgifS52YW4taWNvbi1jb21tZW50LWNpcmNsZTpiZWZvcmV7Y29udGVudDoi7pqZIn0udmFuLWljb24tY29tcGxldGVkLW86YmVmb3Jle2NvbnRlbnQ6Iu6amiJ9LnZhbi1pY29uLWNyZWRpdC1wYXk6YmVmb3Jle2NvbnRlbnQ6Iu6amyJ9LnZhbi1pY29uLWNvdXBvbjpiZWZvcmV7Y29udGVudDoi7pqcIn0udmFuLWljb24tZGViaXQtcGF5OmJlZm9yZXtjb250ZW50OiLump0ifS52YW4taWNvbi1jb3Vwb24tbzpiZWZvcmV7Y29udGVudDoi7pqeIn0udmFuLWljb24tY29udGFjdC1vOmJlZm9yZXtjb250ZW50OiLump8ifS52YW4taWNvbi1kZXNjZW5kaW5nOmJlZm9yZXtjb250ZW50OiLumqAifS52YW4taWNvbi1kZXNrdG9wLW86YmVmb3Jle2NvbnRlbnQ6Iu6aoSJ9LnZhbi1pY29uLWRpYW1vbmQtbzpiZWZvcmV7Y29udGVudDoi7pqiIn0udmFuLWljb24tZGVzY3JpcHRpb24tbzpiZWZvcmV7Y29udGVudDoi7pqjIn0udmFuLWljb24tZGVsZXRlOmJlZm9yZXtjb250ZW50OiLumqQifS52YW4taWNvbi1kaWFtb25kOmJlZm9yZXtjb250ZW50OiLumqUifS52YW4taWNvbi1kZWxldGUtbzpiZWZvcmV7Y29udGVudDoi7pqmIn0udmFuLWljb24tY3Jvc3M6YmVmb3Jle2NvbnRlbnQ6Iu6apyJ9LnZhbi1pY29uLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6Iu6aqCJ9LnZhbi1pY29uLWVsbGlwc2lzOmJlZm9yZXtjb250ZW50OiLumqkifS52YW4taWNvbi1kb3duOmJlZm9yZXtjb250ZW50OiLumqoifS52YW4taWNvbi1kaXNjb3VudC1vOmJlZm9yZXtjb250ZW50OiLumqsifS52YW4taWNvbi1lY2FyZC1wYXk6YmVmb3Jle2NvbnRlbnQ6Iu6arCJ9LnZhbi1pY29uLWVudmVsb3AtbzpiZWZvcmV7Y29udGVudDoi7pquIn1AZm9udC1mYWNle2ZvbnQtd2VpZ2h0OjQwMDtmb250LWZhbWlseTp2YW50LWljb247Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmF1dG87c3JjOnVybChkYXRhOmZvbnQvd29mZjI7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R01nQUJBQUFBQUdOQUFBMEFBQUFBNm5nQUFHTGxBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwWkdWRTBjR2g0R1lBQ0NXaEVJQ29PcUhJTEtGQXVFRGdBQk5nSWtBNFFVQkNBRmhRNEhsbEFiZTdkRkIycllPSUF4T0cvbktPckVwS1diR2JWbFZIUlo5djgxNlRpczBSYmhQQzRKWlFrMXdzNzJXbEJHSkpJc0wzYmM1WS94NUhkdEJyendvWlFYL0xzL3VBaHNYTVpJVms3M0RzL250dmQzY2V6dmhPMS8ySEV4cm8zQjJJRC80ZDdHeGpYT2Jad3F4eTBnRzhwUVBEQkZNQVc5ODBoVE5JdWhwcVpsZVZ3SmxIU0tSNldrRE0zS0VDdXowODNRdSs4QkNuYWJkKzR0c2VtUkd0Qm5IQkFIeHVUbXVMV05VYmQ3ZnVTWkE4OGZPQmx6ZWtDcWZEUG5WMUJBcnBUS2pwL3IwQWZFMCtMYzk3U1hOYTN1Z2FTcVcyQWZJbzVHaHIyWUFvczhIK2tyZlEzTDhEd0ErRjFWNE1lY3I5SlYybGpTTS93VXpRV0FJVGx4b0pTZkVtZnNpMzIxcndISDJUamhFdVVQZ05KdStIY3R5NXVGM2wwQ3kwa0VhUjI4cW14ZDhoS2tBdDVUcmMzOEpyOVBJdGplVGh6Vm1UVUJqNXo4MnRTOFVQcGFnM2p3N1djaHlvYU5HdWNaWXhtY1YxSmI2dkpCcW5DTWtQZEtuZFBqdWxFYnQyVlNCTlM0WlZ0SVpMTjZUOU9uTGM0Y09CdmU2dmM2bTFwbEhPMG94c1hLUC9lVy8yWm51WHlkZEF1S1FiZ1lSMUVLNGNBaHJPZi9OOVhlWDg2UVZPRC9EcVJUL0NGWFRxY1BLVlZ1dWp2M3ZjRzhlVy9lWURBZ3VPQ0E1Q0pJYXhDZy9pSklheENnZGdrQ3dnbmswcUMwMUJGL3lIRUFydmFRM0FTUjBrWUhPdVZRNWRqRlRzZlZsbHVVTGwyVXJsTm8zZlV1U3BjdTNaUXVxcENXcFZZcm1XS25UQXlpZElOYlhsdnU4YnUvL2RJV2M1RHNiUzdHSUtIRVBKRllqcXVXVkgvM2IvZkg5SHYrMjZPOWp1MjFXbEdwb2dFU1NOQWVZNU1peWtXRUV4U1ZPT0s0N1VNaHZhUzF4UFZxRFd2eVhBQUFvQmN3UlFsdkkvYndDL2R0a0lTRXNjNGxvVm9USWJJVkNaMEFJSkhZZkRNZ3I5Y1RKcGFuVGVRTjlBdUlocnp2ZjAwbWdyOC81TmVuMTRMTGp4Ti9MQ0wyZUhwZ1Fid0hWaTlERWpOQlBBWmZUQXNLd25NU3dQN3FDN3dCQVJBZTZ4OWJIcGY5V09UeEFQQTQ4WEZSN2oydStEWi9MT0Jzd1BzQnAxVE9BRVJaUVNnSVZwemYvZmVBdnp2STQ3RjZBRkY2QkxoSEN1a1pGNDVMVk10QkpLbG5JdkFHRkh0SkFHUkFhSG9MUWlLTFNOcUtHSi9pU2gxcTR0WFVSS3Q2SUJkUzVBcFZNSTI2Q2xZVlp1VlFWbmhWWmdZNENZeXpDcE9vcXcxcnNnY0V1N1EzR3V4S1hHM2FKbjBxanhNSFZJbXExanJIbHdKNVBWdHZIclgzS28ySUVmZ2psYmNGbnlZYXRoSzRQZ0tqcWF0T1BiQk1WVjh4R3V3VDFERTBBeEM2eCs1U0pKeUJ6K0ZuMkFrSnhaNGdsckFTdWpTZHhzbGVxL1BIV2JFMFJ5d2lzYWVLOFZFSlpMTHJkaWdrT2F0MnkxQ1pMWXdaMVluUlJwVGRUazY0ZU40Q2ZnZnNqcW51Y3ZEQUxWUjNBMnZsYjJoWDB3TmNleWU1SG1tNWZFQnpkUCtReWIwODVrSDFQdUFOVTc1SnpzdjdaUy9sTG5DNFpvS25WK2RKTGY0Tmxla0N6SEIzWkxlbGZxbXVMNDVKblp2clhKc0prSGsxNStUZGZkcWd3RytpemYzSkNYT2oyUnlpblh2L1ZNZWZDU2RQVk1pWThqalhPbzJNQVA0bUkvQXR5Y2F0a3FtSUFMbjZsMFVxMGxJODdCSUowNHpZd2RxK3VWalpDeFkyalYrcndoREF3Z01wb2l6WmEwNVNZRklJUjNKSFIrSUt4cG5oNDBCcGt6U2lyWkdFT0NBdU9SL0tSQWplNTVDS1pvZDEzNXF6bGZiWE9NdU9QSHgxaDdZeGluSDVVaWovNUR3eTczSGhYMUI1Wkt2VndSRGFucUZVRmZmM3dPblF5eHlXZEVSb2I2cUs3R2kxMm5PaENQdlZ0Wm5JWXRtMk53Zk0zazVFWEEzSCs2WUMyQjVBTjJlakhaUW9mRDUwc2RSY1JXaXEremJabXdXeFVVNCtlMjZYS3lDeVF6MW5rWW1WbFpJcW1Ibkh5bmlNd0FMZzdXMGdlOWlUeHUzSHVpNUx6WmlyclNueGNOelFiclZPRW9ocmJoNFI2aWxFeGRSRzNvazdWNHdselJHT0hpd3YwY0I1MHBaKzNtK3VycUpqdDBueW4xbWR3VFM3R2VCQVpkN2J1cXBPTE9KT3pqc3d3eUhHSFpZVWw2VlNiWHlPRis3MVhSVWQzSVZPd1BONFN4VDlXaXJuR3k2MjRvTml5YzVPcjlvSDBYazdjbnV4TzhwQ3dZYjVoRXpOSWRmc2JyS29yTnFCMlF6d1FRbW4vUXdiNU5SWWNiRHoxbzI2TVNGM2RQZlNySk1pTC9kQUdsUk5ITXRDRVZ0M25EU3NWckhhdWZPRXVzT0RtVEtZOERyaUhOMDdoTDBFenFGa055SnBuTGZGenNWTm1SNzRhaGtrNmdHVGU5Si9HSGxJcEkyR05QbHFaM3IrSWV2RSszV3Q3MDNuK0dvNE93VnV2Q3JBdXpqdW9NeHRFeFZLT1BkbHl1aTl1STVBb3FkeEY4M0tHSVVqSW9JZkREMDZuT1h1M1NNVWlqdjBxYzQvd25rbUkxN1cyRUJBcGRKQU5YNHpGTkM0c1ZyaGZLSkNpSE1mSFlNTEtxdTRFMzdRelcvbWhTTmZHY1lYWXh3elIwblZpTVd5Q3pBaVRPUWNLVEtaTGNkdUorRndKVUd1R0Z3cmJtT1VueUtFT3VYWmlWVXVnT05SRkxTK2hiYmlrRDZOT3dqTU5IV2RseWhrS0c2NEdQdUdnbkVZYTVXcUIyS2lTZ1gxTW1md0VCbTAydmhFMWRabDlseU5TQ0ZocnNyZmU1WEdpcVZhMWNNa1UrVXdUbFF4VE9QdjFYaW9XWDVnQi9HU0tNeXhEV2FmdnMvRkRUazZ0K1hnVmg1aERyRURLcVZDSkJHVGtTWVVnbGp2RXFRNmJYOGluMGl1dGFXVUxjU2lyTENRY2grQis0THFXTFpWdTk2RjNZVGNVV0ViVGZVdVdNWUdsWUxjbDF6ZENUcEVCRGZzMDE0TTZPaVltdnNNQ0lYd3gwVjdKQXhqZlJ5S2tWRmFHRVZzQ0JuWjI1Q1BySFkxSDBaSFNHRWNMNmN3M1pYclY0ZmgrOHR0RXhGS09QWGxWVG1aMmg4c3kyTDczUS9LRjZoMEFFallDdUVMSVZra0w5VGU4K090S0VGOTdVdW55bDRZU2FKVWtLbU1vY0NPV3dqWS9IaFJrMk0xWXBLRTgwVGtWa3BPelJQeFhmY1lwZm93WUVPbytKYlJJL2xCcEZ2MWlLaFh0ZkRjM3A2UEsySzByS1FLcnFpWk5wWmdRdDRwSHhvdHh6Z0dpMmxkUGRCWVgrM01ZNWt2ZER0czVGNlhQQVJsMFlOTkp2L0dHSnd3Y01DcXJGTEg0SGxvM1Mwc3h6YUFpY01oWnlmZUVlQnRpdEZFY3NjVURrVU5ER3RxbXJ6QURVMWtZbkxPY2xPNHliYStkd21TSzRpeCtxeXJOUE00aTR6MHRpbndDQUVCYnkrUFBaeTJwZG1pVm1UVFUxbTVRZFYrMmlTRWNWKy9JQlgycjJEdUw3MGJ6Yjg3VitENWpsMFVtdDFybnk2aHB1ZkxQc1RQRUlkMmZ4S3N3dm52OEU2WmhnTmlPVm42ayswdGJmZkN2SHpsNzlmVzFWdVRua2hUQ0ZzcFMrdVpuRXpMbkZtcXdMOUw1U2JmM2dVK0dDT014K0NKOWR2bElnNXFoSllnbHRCTUhjRUtRNHc5QWFWSGViblhUKzBSZlNmNFBQb3kvT29NNHdZa2lJcmJLQ05YRUl4TCt0UVRibFM3Zm1SZS9ZVS9uMXJYZmwwbU51U2VubllGWkZCWEQ1b0RwZllON0w0dkx2UitCb3pwNWZETDZQUGdpMVhhbjFmVzlUdC92VFF2WGtaVUNQN1J1cFNFczV3MmROdlVsaVRlckJWVVVyQ0Rza2x3QUZBU2ptKzdibFhOVEtsZFB3TGtNODJsTk1RTS93ejd6UHEvck00a290SXYvcnJaRlh5OGZhUC9zYUUrQXR6ZHlpcVF5OWt4MXRqem5XYW1GdkEybG9zNjRPTkNnOWVyeDgwUkdqWUNHYnRYeUZrUGdpRGQ0cTFGbGFjZ29PNitSVWVxMGdrcEZmYmVQWndYUXh5d1l0QnNCdFExb2V2VWhsVjd6ckVmanJaMXpPRk9NM0pyNTJPcVZPZHdrTUxUbVo3cFZ2Y0xGU3F2RHFwYzFqc2V2dU1JczQxSHZoOGpFZElyNVZDeiszY2hjRHhlMDlJUzBud1ZZRFkyUlhPdG5rK2pTdzc3ZzdsckJldnZ5ZVBmaEl3T2xrUnE0WVc5TTVVZkhHU1dablVhcHNYcHJhaDJBaDR6VUJVbzNMai9hdEErcHAxd1duSnZINkpVcFlMei9YM1p1eUxuKzgwWXpiblpHMy9MS2F6dDNJVjJmaG4yYThwa3hnRzhJaW9ETDFwbzhCMFhkc2lVc3JHLzBMNFRoQSs5TVdiU01TK2QyZXRtdWVyMU1hV2NUamZxTmhoU0QrRXhFdnRTQlZVb3lMMVJUVWM5L0tTOS9IUjA2YnRvUER3cUpuQ1FDR1oxckNNT3VEZjBibFJEN3NyUDl0TUpCR3hlTEZpWndoR0d6dnRiWEZ4VkNKNzI1U3FnSzN2THU3YTczOVB1SmdTMkJjalpKUzVPRlNpb0V6QXZQSk0vdEw5Z3A4cGlhU2hUSFZzMTV4Qk52ZnA4OWpEZ2FSbnk5MnhLZjJ2bG1jQU9aRE9RRE11MzF0ZGV0N3RXbncyZFVMRkMxVjRTTGRuYWNHdFFrNGR3SXBwd1ZnS09weGowYXNQb1o5eW85dWJ5MDc3bFMwWWdtM1pnYjZ5N3didlhub3VXUktvZEtwWVRPcHZyYnc3b040NDFtYlN1LzVheVltak5Yam4rYmZhaWJzUHZiV3paa2tPNmc5eFVaT2ZKVkVHS1MyMHBidHl4TThDblZadlJ4dlVwZ0FFSTlGbjNMZDU1UTQ3cERnSWJnUmQweldLVFBZdzZ2UlFlbytpYlo4K2pLQTNoREkxZjN3bFRqWmtVbGJ1Zk92d1JuRnhKaTBkSjI4VmQ4QmR3a0VTaWs0UitINXR3cjFOUk1Ua3d1blpDZVhCMlJjWnZjeVcxRXpMN3B6WDBxSmdDeDZZVk1CcjY4TGlVNlU2bjRxL1J1SVBDQjgvNEFkR0tXWFRuLzQ0SCs4SUJWOXhEUmpKZlZPaThyRm5kK1A5MjVsbHdTOXVXUE1EZ1NHaXU0eUlvQ2ZnUmh0QVNSUHcxaW9RRkF3VzZUMkNTYk9JQmpiaXYybjFjUlNaeGpjV3BkMWt5Rm80dk5KR1R4aXcvY3NKNUZ2WU41K2FmVTZ6MTdqMi9pMVBQYlZBd1dpZGM4VG1UaXhsenhwaTVPeStiTkhvZjRsc21sQWwxOHZKbnB2ZVV0QWFuRk9oTnpxUTAzRE1PLzJpRXFqV3ZncHBQWXZYSDk3YkNPck1iOTl0aDJvczZTWG5MTzk2Tm5jQzJGSHFwSmRpTk9nb3IzeFIxR1FQNm1QMlNIa0tJcGg1TmNTOS9ER1RXcW1PQXdoOWZSSVFoNS9URFhxZnNlVkRCV0RRNFBMYUlUZFh0SDM1clZNSGFWd3UvTmNFTklrakV6dXdOMm5kTHJWOEhkVGNhZTBidUxZK2Vmb2kxaytaeUhRTU9qV09GZS8zczRpUzlWcUdPRUk0cEZZQXBBTFlxd3ZYZW85TGlLV0k1SGhIbUZpMW4zbGFwNTM0Ky9rMkYyUHNyNnBXcmMwcVJJNEJFWkgyQUJPY2IzaHFRYk9JQnFqTjcvTXI2czBJTC9JUzEyY09xZ2VxcjRUV0pLdnRCZksxdTduS0wycEhCK3BRKzVLWnRHSVNEMVBGTnhqeXF3K1dIOTNDS3dwWWs5UFU5RmNyRXJTQXBLSWdxNytRMElkQkFteHhpQ3FNVWN3RUhFVXV6QUdVL0ZOSXVHYmtwcUNXZzRCeUFXcHNzOTk5Zkc4ejVJdndLeFo5VlFobmxoekdvTUVJOHFLaFB6MU9iRW1NTU1NQlh0ZldYdVNoeHJlN0R5M1g3ZHoycVRCSFdGeXdMUG9qTzZqQktDeld1UmJlbmZaU2dSZ3dmbHc1SGJDT3VDeDlSZTA1WWhtUmRLa0dOVUF4a1pUNnpCRjJteVdTZjc3eXcxNW1NdHFJckxlWmIwUFJ2S0lxdzJ4R1VXN3VNTVFEWDZXSDg2MjFSTnBaSHFpcmQ3Sko5MW1sU1E4aEpyVE9NQks4SkNQOVNSL2ZmUGNydUF5dllvb1JoU1VyQ0xvczRRN2pJU2VDL0wxUHlpUWNqTGpsQzVXZDQ3d0JtNTJTdERnOUVnMXhIeTljTTJ5VVpTQlhpcFNHUGV1TGxNVWFBRTk2cGh4K3IzcVhVWWhWMktTdTUrQUZVZXZHTU5NM1kwcys4bkpzS3hCZHZLWW9WV2M3V2VyMFNCclk2cjFWSWMwV0xvSzVWa1c1dERiaXpWZWFIV3RybHl5TUhLTHhTSFNPYytuQm5UanowS0p0V053eE9lLzFlVTdwMUplVUNaandXN3JnNFFJckJGUVdRYVBOZFFxWDA4R1JxV2lqZ09hUjBsVWZtQjZKd2JIM2ZqdmhpbWwxMVR5MVhyNnd4OVlPKytuRFFLb0hhV0JETlJneTQyTUs0dHYzUGgwelg5UlhiSGV0d2hvYTlpRDJQZ213Y2JNU0dzWGVFcnZOTEFLQUN0R2lwRnBhSFZzeW9ERVN6Umh6SWFSNEJaS2dEUjVwNlRlaEdnY0dheGFFV3VvbXNDcWFrZEJmTGVqSjRCTndVcVpCQy84bUpKdUh0ZDdBSjFYRUwrMVRSb0VadVd3azAwV1FqaFVwYnZWYTBudkVvODArcHhEQVNGYkNySU03b3V3ZEVBSGZLUGJnRXpXbWo5dHlvY3JvWVc2QlNKSnZpRUJ1K29QbHpjeXM3QTNqOXRNNUloRnVpRWczaFdCWU51clBueHR2TmJoeHUrZTdTUUJQb3NRdmJ0QmNNbENCR05FM3JQdGlrRy91bzJveFp1ZW93VlFqV2VXSDE1RWlWbTNzbCt2bDVSRlFnT05mV2NTTU9sQm56S1hLdTJNb1hUVXVWOTIyUXpLSWwwYXg1WDNsdHFoSmZOUXZJdndvR29yS2lGc1h1OC9ETVo3cFpOallydHM0TThTaFJVQWZEdERyYUcveTB2ei9qdnBpUXNaTTFEdHl3VjF4MkNvZnE5OEpncFkrbXJWR0VmVFNtNGNWY3Z5UVZodHc0cEFwWHZEZVVGU3c2ZE5HZ0RUdzFpb1dHZi94SkZCbzdlbDRpQ0JvL0VCRVdldlJncHB4LzRJSXBMdURrOWFab0Vpc2VPanV1dHdVQk1tY2hQRTJPYTFCcjUzdFIxbXBSd00xWXBhR3djaHNuTk5vWDVlVmZ3RkJFNElaODc3dlVjTnN5a0NabWJmZTdGU1dOOElGcTNaTCtTSTZwUThWRytuYVN2ZlhxZU82WllmOWUvTUtRcnpsZm5jNG5OUWx4YVNFOHpDUUIvMTBOS1lvUlphSTBSZEhHL25vM1lEL1g1SGhndDJINi9pK0s3SmxsRjJyM2ZNbjNxci84eXR4RFVlak1Mci9ZZDB6VGtXRjczVlE3TkQvNXQvVTFyZ2VJR0pNeDUwWVA3bzI3enltMkJ0YmhVd0lZVFlrSkNYMkw1a0FTM202alhDM0w0aUw1REVraVVqdnVLVStxN1VYWWwwU1lZSFJJRXJQYThFMEFWclM5R0h4MVRBRE9QdUMzK2hlUTV3S1dML1M2eTAvbmcyWmJraWdhTHkvTjZqRHAzYXZkV1RZVExKM2V1djM4YmtkczA1dDkrM1dsNWJQaGlya2Q1WmNPR0t3Wmt3MHREYkc1dGEwWUxjMVNLNHh2eG1ZTHRSYStJVXJ6SXhiRkdLWHc2bFh0UGQxTTNtK05FT0Rqa0ZJQnY4K0djbVdGdzR6dTZJR3REbWJHQ3hkSUZDSlYyRlptZG96Y0FYWkZLVDBZS3BaS1FXcjByZldsMHpOVHExREhqU3RwVXdyOVkwczdvcGNPSXVVVlN5ZUl1YktLcUJFMGZOU2lRZkhUQWNwMDd2ZkNqWS9CNE9ESEgwYUZTT1M5UHZuNDRFZWZFQ3pkMHVNWEN3cEsyRDV0ZmR3Mm81dlBpbFBUbXUzbitjUG85aFNnRkRObC9VVFBlZjF1aXlFMmxwbDVaU2RKWm1PMDdzYURaUWx3QjNnMmtLKzRibk5uSG5wOUFlT1lZS05HNklxVXB0Qm45V1ZQT2tpVS8vZlFQbmYwRzVWSGpRbllkdVptdUgxenpyaUp1N0pXcDhteG00S0p2bUwycnZaMUVVRi8wRDY0WldaazVSbG5VNkNyNzhPRWRXMHJxOCs2bTBNUkdsZWJ6amVNc1ZTZGMyeUpHWEFpcDdVWGx5RDNTVVptbUJJS1o2VWhFZUZMT1o0U2NZcGk1b1JJZkc3Uk9kRmNZQnZ6N053TVcvQ0FDbW5KOE1MaFJKYStwcTVsMnBGNTFyV2k0U3J0bGdnTmtjUU1zZW1sUnZ0bGd2U01xVU01U3ArNHFwUTdkZGc2M3VSd0IrWldYQXJvMjRKZEFqYXA2WUhYbGMrNlU3Rm9rZDlNbFZlekVPTTdFWFJRS05PL0UrS0QwRFo3T2Qzc254RG1WL1FYTUcvREFvdnhmaUlSSVRrVFl6QkVCNFhZUzJBbDI0Z28wUTcxViszcXFabHRWelhuUjJYV29qVEN5Z2pzVnVXMmErZi9QbkZDRWxvQndSbitZOHovNk9Ndm5wQ1IwZXFDbXVQVWpMeDJLbjVublVSNU9QWkUzMmNuUDgzaHM1blZIM01NaVB2c2M4cE5PNEJNRjBJUVhJR0NXUG5LLzN2Z0dZMTE0VHhqem1Ja1k0aWRiR1B0NEx2RDBXWG1qODg0UUx0U29GN1NqQnNOTmdTbk1RUHNsYlVvNlY4UGVlVmlYNHBvTVc2SUFkRkdUbUVKTmNMek9zTE9zeDljTHU4d1pWbDZsaUU4Y2RsYnRVYVVhSTBHUkJMYUtjSmYxaVV6TkhhYUtyYnNTVnppTGZhb2RJazM0bkZKUnBneWNUd0NqblVadTN4dmxKcEV3RFgrYndYM0FpaTBFNFdvR1N1a1RqbkdYVnhLNnc1c1JuY2s5bVJteEJ1aDZEYzJucmhRbHNFYTYyakxsWnp2cWQwS3pzMlJOdngvNmdhL01HREFwR2NvNDFZTThRTGRaeTBCRCthMXdyckVIZGdrSDJvNnVRMFBRV3dtSGFIa0tDM0VnZTdxMWJPRFQ1ZEVORFlCQnB4dEN6Nys2SFB0OXNRL2xFNTg0cUdwbWJXZmNyVytwbktsUm9LQ3E3VGFpU2VYRDVlRlNLaUxtMlUwOXJ1RmpzSEJKZjFCaXQyc2JyTExlQmxpL1BSVzMrTHRZeVowamt0RXNOL3l4SWdPcC8zRDJtNFJkMlIvRXF5Wnk3RnMybzUvbTg3QkxjcEhUN1RCTVpIRkUrQmJkaGNiWFJKMkJZRDlNb1BRV2FvYzRyeE9RQ2h4Sm8xdDRCS2ZqVEdNOE1GRW1hWTNLallSQjdaZFdpa1RWL29VdDc0QUtOclN2TG43ZVc3MEc4Y0FuSVNZVkFDK2dLNGFiUFN0UmdRb0VnQkhZblBvbEJ3aVJBdWpYL3FOaDZKVm10VGFIa1lYRUtBVG1CRm5yb1hRbm5tU1JERzZLKzdzQVVoRXVPRWxyNGRla0JmSHQ2RHBKSm9zTzc5dG1ZWENNR3dzaDdZRTFMZTJMZ2VrV1hNNnI4blVJVnZzMHhRRlVSU1Vad3FtQ3N4MERnTWpBeUhqMW5kTklIZGhjaTl0R1dnazdXMTZFNTZyZzNOUHNjQ0pqTXRiQXhSYnJYWWlpSkFYQ2lhcm91eEdxM2UwaWpGL2VzVUttZmNEL0FZeEVDN2xMTE5MNk4wMDVaU2Z2TlJFcGNDSnprZE9GYXRNZjdyUm5waVNMUmd5RHVpeUc1MnRON3ZXNWZZc0lySElGNW83VmpiVmNoTUpXR0R1T25ObzVrbGJmWU8vV0xHenk5Yk45VDFOMDFaNzVNM1V0WWJMRmZPT3h5Y1U5UTllM3R2Sk9HN2oyOGNZSW1kRWVsWjRxRGF3VzBQeGNYWStFUjFOTnhKRndkZjdKSG9NT1VJM09ESEd4Kzcwek9KWFpGMVhrdGNEWEk3R3pVeml6eTdqaEsxNElRekVWZzU3ek9QT3dVSHJXT2sxTFFjRjZjUUN2SUJpWUtpNHFtQnlxY2loQ0pVNzNsWmo2aWZ5Z21CdUMyd0J4eUI1UzhxcVJIRUpqaFV1WWRSN29pUUJwS0ZXa0tjdTJoQXF5Nm5BMFhLbTFnY1hOUjkrWEVyRmVsazdlbitwS0xYb3d3bXRvYmwvOXRyTjlhMk96UUpmNXJ0dFdmV056bzZiWFJLSDlDdW9wQldLOXRVK01Ua2ZmSEdLdXpEYXNWa1VmbTNSQ3JWMXh1NndjbzlEN0ttSjUvNk1GZGxMTTgydG1JK2RabGhzRnpyMmZBNmNqWFVkNlB4bVZJOGVReS9ZT2FYZHVRbkdSY1lkWEFUNEpIZ004TEM0TW5BSGVmK1c4ajhvSW1IQUhqcjAvN2xOSDg3blRSZ2ZQU25mbmlSeVV3di9OWWpPOTdHbC83dHZFVzE5Y0NHNE9KekVuNDB2aDVkR2MyOEp5aVJzVVZ3WnJzZVNVZ3dkRGdBNjR6akMwKy9JRVRENWJJTWdQS1FBeGlRNjNtSlE1U29ickxXQk5Ka2srdEpjU3I2Y3JFREVxK0Z5eWh6VGtFa0luK1h3cis4RmJUaFhSa3NPbWlFanNJTTV2SlhUTysyMTA5bytaMHJMTDhZWHEyS1RzR2JldG41VURLRVR3TUszQkRrdFN5c2tBdWZ1MGtrSEVycHJ4NGgvR2ZLSzRKb25FV2lzUU9PR3BlZU9GREFnd2RvaytKUUFzWStoY1pVc3p5SWowV1ZMcm9OcTJicjZCZXhMVG5DRW8zcnlkNUp5R2VxbnFFVFRrTkZENEREZEM4eG9MRVdoMFBJcUpFbVN3QWNkd05JbnhFcy9TNU5rbEplaHFhc1ByeUMrZUYzKzNLOFVFQ3gyZE1KREF3QzBnWHg1YmZTMjVCYVRLaWRnR0IrM1cxSVNSeDVpWFpxbmNoN25LVlYrQmRybHVxN3FZR2pyejQvNmJlNTYydXc4ZGtXNDE1aVkrSHhQakZTK1FTVzZaV2RubWd6R2dRVkNyWHNOSHN3Nm5KLzFnTmhpeXR4QnRXNzVjY2IxVmNKaVEvdWNCLzZHRzBCU0xoTGQyNmVXZGpQamRZMldnclZNUzd3RVhzMG4rdnNGYnRrOWo4V2ZlMXhzRWdERGFWMEZBc3paRnNEUUF3eWpXZmh0c2w4aHFJK2d3ZTJZRE1iaWZwdkxoc1pZSk9kRHZVeHZ3dG5CbE14R2p5NjZNbFFWaVBPU0MraG1GVUMxZGIvQ3pmenlaZVd0UTVodjFKbUxaNFM0Q3M2cUVzYkp1eVVwSDZoMXdoWnMyUlgybDVZYnhJZy9JYXhqSkczSFBDMi9WbXQwUWszNDdxVUpMSElCNzA3d0N0cEtxVWh4ZVFLMzhMTDZabHZPck5lNWFrNmlFQ3RjbTFvMkZVUkxKS09RMVZRWTFlSnJ0YTg2aXhqQy9ONitXdlpBZlNPV05VRW1xZ2RFM2F0dlNKTUc5WG9Mc3hodHU4UmNLaDV5LzM2cVczRlQyb1d6OGREdS9MbkZhcU1wdDFnVnpkcG9BcW4rWTVpam83RUR2d2Mzb2RVSitMVjk2cWsycUNsZDRoVURBZ1ZaVTk4TG96T2F0T3BPbmlNdjhrMGhMQ3RndUpFUHFUTlYwaWpUU2VxbnloWWxWaW5nMkE5ckEyTHdURW9ROW9YTzA4UzNiaEhBL1h3T3lKUktuNkxPaU5rR2dzR2lQeWl2dHBPdktvbWtLUTB1T2xYcHJZMnlKNEpKMHdkbGMzL2QzTzJhR3RSanVxTCtxMVJ0ZTdxc0kyaWtFeGQwdXFLRmJtUlA2RWNnbThueU9May8rWmxaNjU1U2YxdjFza0o3WmpKNnVkcXBtUVNScW9aMmh1cnJEbkozY1lia0NSMWtsV3ZHWWQ0N2pQQ1VWWThEdFlSdnc3NGdnSXhxUXBIUzFLc3l1REpIS3ljM2E2VFRCNTRXR1hpdW9GRXpkK0xXckNCcVp6ajREQ1hJM1IwVWpxUVJQYUJqN0E4bTUrWkluQjZGSmQxTW5QQmZuUlQxRXExc1QrUmQ4YmdwdFpxakZpK0MyeFovSVp2SVdZZ0p3UmUyUUNIWWRKd3ZlaUR3aWFEUGkxMmI3cThYV1ByaXcwTnlGbDRZRE5yQStiYWozcVExYVQ1eDJKZWMwdmRSUTBQYThqMmxISk5idGo3ZFhqcW1hSEx6T0o1bXVjUGxnOERhSnVkeWljQkZIc2t6ZC9PREE0Vk1rK0RLTThiWE5ZZmJRRUZZS3V1RFF1eVVVQjJGclgzT3VNWlAxa3grOUZ6M1VGVmlKMnU2QUZXSXdWeEZuTG1uZmRkOUlnc1Z6dGY0S3R0UzdhTnI2ejRsSHBYMXB0dWhzYzdleGJFUThEV1BHVW1JR1FUbnRORnVSUGRlVjZyb1lsb3dzV0p1aStRQk5XVS96dWRFZ1lRZ2t2WkxJdzBNaTVEbUM5bmdHY1d4am1NUFVjZ2dKNFdtWjBaUkVxSkNRenIrTVRjYmFsYVg0bXFhZktxZWd4cTJKcmhXMkR0YzJTTnJqeHA3bko2ODNnQWxtYStHa0pzbVUwbkFmbXFHWE1PRFlhMnhhSjFQWHhnVWpub1hyejlxQ0JvTEJQblNjSWxzZG04eC9OSVIvU1BzNjYwdkJla3RLSENzWmk5ZVJPajd5RHVzdzNid1R5amdUVWtTTnlabnp4ODduNkVPQ2VtUWVLeWd0NEdPZmZQc0ZZdjNPTXFGUmJtU2MrUXJ3bXVmZnZYVFkyZ25JMHp1aUg2N0hhbEs1QUxkWjE2QUhIeGF0WWExS0tuM3dmdEtwZTFHaHhWbmtjbk5MM1RjYmFiQyt0SWd2YmY4Um5ieTlObjFtTFJmVDVqaHVpV0ZwRTJqek1vbWg3a0VnOUNwaGxUYSt2R09NaTdMRDZZMUNzMXFWVWlRTE9zMVozSS9wWkhvcDhkTnVRMUZ5a3RodGpMNWNWYVR3NWZud2xvU0wzUHZOUlh0clNHdm9UQU5vQU95ZWRQUGplSWRYVzZYbXNLaEtzT1l4blFwcVovaEJXeTZmRHB2NW1TYXBGbWkxQWpaTHQ5ZlNwKzNOd0hZWEkvN0NDOFhCejVpZHV4MmVlVWwwaWZ6SHpIODhWamtDN3ZtSjZ6bUhPcWxEbjVwRU8zTVlpMEc0QWRjOU54V3p4M2tMUDR3RDBtSWcwT0ZJRkd3elhJL25VMUhOQjZKQlBFajJHUTUzaEdpb2ljQVhDbTAvMnJjNzVDNWUzRWNyUnh1Z2xUOW1WM2tGanVwTndlNURZekw4Y0QvdW1OT0xzOFZNcnRCS2dDVjYxMWo1a29SMnl2NFFSYU9YZ2Y0Ym5OSnFscVYxa09uaGZIRWpFK1JNNFNmbUFyeU9CUnJzRlBnb1hadURVNXUxMG9WOTBhMU9XTE9JOVpDTGRzUk43b0J2RkpUVkVWdDRzRzdhV0RPM3ZGaTRCeTRDU1NJR0Q5a3Y4c0ZDM3U2NUNVSTJ2d2daZkU5eUlnT0t3M3FTYkRBRzBsc1UxTmFrLzBxT3RNU055S1ZkYndDdzRLV3pKZElORzRWRkRpMVNSUmVBRkU0WkVSbG83SVBQNDNwVldzS1lXODFZVDZNbE9ydFlneHkzSEc5WXQzeXJRcWhGOTlncTVQeno2MVkybkhKSjNacTloV0M3dGJvbTlta0xFNVJwbWNvc2VhcllUdytwM2tEMnc4YlVzTzV4WFFCRERsRlVZVGI2OVJLdGZiNWpTc0xqSzBTT2VoUFhmMGxrSmpZdlg3MDF6NFVHQnpZdDEveXdISTZGSjI3OXFzM3RaaHo2L1RBT2RFTTdOL2o3NFZkNUlITnRiUnYzK28vMEZ6Mjdwazl1NElLWkFya09Yd3VKQWw5WlAxemxHRGZNdWlQcXg2N0ljRkVPQlBVSjhuSXFIZDJuL2ptMjNFcUlCN3lWdW9vZktjNHJRY3lOTXVnWmUxZ0YzcjVxbXBIZE83Y1BndWJFaFNhY3pvOXhSWWRTelhCK2cyYlpmUHgwOFUreGwyYzBIamlBQXlILy9HRFVCZ0FXMGQ5enp4ZFdsbUFsY3RNaHFkNDRQbnovYTBIMjhFNzJqUU5FS1cxNEl4a1Q1WnByRmEzeGxTdGw3Y2x0TUxGSDhQbkVuTmxGb0F2RlRleTlaOGI4b3RQeU1uay9OM1MvNEFUeGRaTlM2bU5wb3NXMlh3ZFZ1bm9QTEdRcFpkbGFEb0xJdHYzSi9DbHQxZDhSNDJDem9Rcit0b3Y3c0IxbW4xSDlrcytKNlN3UHJQTlRiMm5Qd01vU0VWcTErLzRybHhsczRHcVYyZEw4SkxMZjg2S1JPS0QzYnhsUXlRZnFMM1kyc1JUL0loTVdJbmZsM2paMStZVWF0aDhWVkZrR2NvcWpJVnhvYmYwbXFBd09NOXd6R0gvODAwUms3c3JOVEZZbmF1TUlRelZNSGNKNjQrMW1PaUNBdDdBbkN1RnpDNzRyQkJDQVduZjc0eU1uS2lHKzRaRStBUm5TN2NIY2tLRGNJSXJNejlSbTdXME5vQjFrYTNZeFB5YWkzVFovQ3d0M09WNlBoM3lrZWdsRm5TTWNpRDJZSlRla1FKS3B4NGpiN0tJd0tFZXdpaDVoZjR4czBiVklvL2FTMllxbDE3QzVleUpIbDIvWCtQcHBzUThtNVZma0YrOWorV2VPWWFHWTlsdFpmYXcyc2hDeEJtSWNhMkdYbDFOajNEZWljWTB1V3RDQk9ZYyt5T3NOMFB4c1R4eHV0SjhXZlYySko3UEkxT0NCWTVvRk1Ybzh0WUZyYS9vY01rQmxjN050eFZyUnlhZDdPVXlUMkk3Ukdnb2plSHRLelRHUm9xdklFcTVBNFZndHYzQnBzRDJFdHBnY2pGVVZXaVVlVnpib2xwb2x6UWVEWkxWeVF1eHBoVkRjOUNiVThUQ1VseEJmdS9kRm1JQmF5ZExaSmw1RE5zSlpwNFJtQmU0UlI0WDhJK1NjSFNCWFdYNUdpbndiRWUwYXg0VW10WVhBVWhMUXF3am1NMFk5bDN6bjhJVDZGOVd4N1hqTit0UWFkQU82ZmJqdEhteGFnaWxoeEF0V3I2QTV0VjFjaHFDMDNneWt4alQ0OFB3c1VLMjlvL0RXQ1hiRnpETEVJSHJSL2JXNUdxT1ZxaU5kTE9sWVJFK2s1aDNjL3Z3UU85NnFISWd0ODU0U2U1aHRvREJ3YmJrQmFCbHNKNnZLMUJNbnJSWkFxbVFpSGxDWGdLMk4wRG9DQ0o3VnlRMWdCakNlT1R6Y0N5UTkvYUhYUlhTN2ZJTkluRVlWSzhKWW9vN1YveUhPZFNxZk5iQlpybHlpb0NhYm5xYnp4d2QyODM3Sll2bFpGdFhxc0RLZ2hKRFRwa05iTnhBVTI2ZHJQcy8xV0lEblNkN056b2s3NVJ4VWRNWmlXa1Y3a2JnTHd6RjU0UmRBZXg5bUh5NnN3UGEyQTFtSVZMeXAyd1k5aFJINTNEOHJ1R050dy90ektXY2NDaXl5Wld4eFlXN0pnN0tYSEVSaGxkZlJQY1RaaHlOaUp4em9pMDFSQXB1aDJ3K1lXcXpqRXBkSGZxSTRUbEdLRGpaSEdGcUYyYnRkMHVGdzF2bS9Ua3RmOXJjWmQ4RU9MdGwxM2xiTURFcERLYVV4c0RCOVRFeXd1QjU4UUlNOHBYNkR3ZnJJVjVEamFDQTRqSnY2VW5qQldmWGxzL3pVT0V2by9EMlRXWHA3bHQwK21TNVhCTGUzUlhBWllva05CT2pXVmIzMHhlaGYrV1NYdHhKbXlidFQvZDhPdTBmank5ZXNtTkJadVdQUzFtVWtPZ1dmd3hsYkNLN2ZpK2ZET2V0L25tbEhDbVZ2VTRWejB2ejVLcldGVjR0Y3lUWXJrdC96dFZPTFQyUFl3eTdicHE5MThMcDRFcFB4eHpubVZFZDNnQ3ZEYUZhQXFQbUNxU2tVTkY2SVcyUE5CbEZVeFZKQ2RXWUVLK1FwcldmZjFtemRvM0xjRkE5SHorMzEzVHM3azBGdjU0VnRwZXF5RDdDdThxQys4aVBrd09FYSs3Q2ZnMkg0Wno4ZmhnVks3cldJOTQrV2tiU01mTkhFYyszUHQxb3lkM2JlN3dZR1U4U0lYck56N1lueUY2cnlPOTAyS21WOHpzNUkzc3h2WGpxRXMvUUxzcFFCYkpYY0hSQk91SDZ4ME01c1NsNVlOSUFzT1FCYkhOR3RnYkU2WDd2dUp6Q3ROaVEvZXhWOVp3WmxEajVFTy82MGJkTys5S2hGS1oremh6MG1NRDYwTGpMUnpzd0lSbkw2aS9OU2JGUHh4VDhEMlFHTlVQNzNGR0pSMG1MOTNkanB3OC9wMWFQeVY4cXhjVCt5bEF2YStEcllKMkFrWFRRdHVwWmdPdnY4S1MvWHFtM1VtaTRwS0hKL2k2UFZHbFlnSjhIUHVvTUZlRHVuOSs2b205STZQSEw5R3JaOHVOeDI5VWNhNHUzb2JSNkZ0L2xTNzRnaWpWL2NzM2tmSHZOWFhESW54TVpKMGNrd1hja3JvWE11R1Fjd2NQZ24xZkJLVFk4MmR5REdOaVB2K3QwUldtNVNNU3ZwNTgzcE8yTlBHSUs1dWFIc3J4NEx6Z0EvSDBOdjE2NEIreG4zSUxhcXNtb3N2R0NZKzhzRXpDWEtTamphMDI1c2FMY2FnZG5aVWpZNHZPSEtFamxMZlFFNGcwMHFwc3Rucm1tTzNZd0l6c0JZenhsTmpMaksrZlRCZmRDVHQweEZXMVZwZWRXZEVSTDdteFEzcERWQm9XL3AwcXczVTUwOXkwOWQ2MXlZNWs1RGZyVHN0WE5ybkxRelliTGQ4eU1zb1ZRS3c2QzRlMnhSMGd0cWRlYjdTTlhhdmRTQ1VZV0RVeTdVbFU2dDNyV0NRMVhFYVpsWUlzMjBCN0FjWmQ3OU10dVpwak54VmZhd2pMQ3RaNjIrSldlN3FnSzJUeFN6cVNNeFpGZUQ3aXdyeDZDc2gvTFQ2a2p5bllvWUNXVnhiWUtsKzdwZXRDRUZEV2JMS0t2MHZnOFBRM083OG5uYTBkSG1mcFNJamduYVZDeExKa2VqNE04cWpWV0xBMi9DS2NqNGQ2UjVMRkQ4YVowaEhZNUdCa01ESTNXOFBaWVZTZFA5T3UvT3JTd2NsL3dYL1NHWlVjQmVwUXU4amJ0QXBpQmVtQ0JiVU1QeW9CZDdrRVlJQURlcnFMYVczUGNJMVNBTXFnalZ6OW5BRkN0aWJHeXJUZHNMTnVESHpRRkJSd2kwZmZMTUU0aFdSOTJkdlRJRVN1WDM1cEVwaE9qV2dYMjlDTnZ2OHU5ei9YbGtESWJEc1JrQmF6RzhXM25tdE1LSE82MllTZFB2ZUhuQ25iNTdmS3BiaHV5UkpSRTFyVlV4SlJxdGFVeEZYYzFUSkNnM0xTbDFoWmhVYmE5eFV6YlVWZWEwc2FmS2tyckVxeGxxb0xrSVdNT3pLR01PZHpvSERwWExXREpaN3FVV1VVTkFKZ093SjY5YXoyUVhsTU4xSmNWdUF2dmQ0ZHhQSWdqNXpBR1Jod2pBOWdJRmNCdUdGQkg0RG1mbXFOYUJ3Y0VXelNIZWtMc0R1OE1PNmp0ZlZ1b0JiR3JwTVJxbDlublJ5MndUOTArWCtNK3NOcGNJTXdOTXVZVGNuSUkrY1lnZnBOQ3J3QWhRZ1ViR01BdzFNUnZaaFZOdkNCVDk0ZkdGTVRyYis1Q2ZFNFdKeGZKeXM1Q3pFVTM1R2NLNUxUSTkzM2o1YmtoOGQxQjRQc21GLzlTZnljS1VEZEpqSHc2ZGZaZml2MUY1cU5wYWJFQzZ6Ly9hSHlqclRKcTlFOFhwRlJKU1h6MEZvMWlQUXhnbHgxZ2ZSaUFWNU9jMU5pUXVId0dGK3plVDFoTDdldnhTdHJoRDRzZlU1blhIUmkvenFRK2Jzb1AwNERkZTlzMnJtdTBBZjcxbzNOWHIzalFNaFM4N1lJWktBUG1udy96Mm1IUVNnRjQyTzVHNGFyOHdia2x2SDZyOVZ4UXYyd2lidTBkT3lIckR6cG50VHF0TDMwVUlrVTJjRjQ1UHloTGdwaURuZURoR3pJV3k2cFJiU1Vsd1BkOU9rQ1lLTjJIaFFBVU9nNTBBUUNHTVdBSDNnSGZuZG5vQWk0QUVBNnZpc2M1WVpJaGo0d00yNEg5RXVtbk1oSElvYjQrd0wxM25NcEFHZFJ4TnpLSHpsVXpEd2NiZG1WY0ZveldqSXdrTFV6RUhkV003emZUeTV1UzZoTVM2cE9hL3RJd1FZS3kvVi83N3VEdnphZjZMTllKV2Ivc1J0eEtISk5ydFRyVEFWemVCU0Qrd1lyNGhWdk1mdXc3VGtXWG4wZy9SSnVDMk0zVHNWVVorZjhXcWhhVWd6eWw2elgvN1FXZ1BDSlBWWGg0UHFkRTdEU3lnQnEzWUVGc2hYWmhLN2pVRnJ0QVc3RVF0TFpkK2hadEJtMHcwMk9aUDdCS2ZBTHVHc1M5ajAyMEgxSlFCZ3FTT2UvbmdmQk4vU205S1R1bS9FQm9lQWNvRmdQUlpjQzlkd3llZzhIUkhmMTBjcFpSUHdWalZBL3lMQzVZNEU3aEhpNDc3ZTl5YTErSWhlUExWdFR2ZE9uQlFPbitnNysvRVMvZVpVQS9Dc3RBNSsvRExvc3Z6OC8xaVdXVENxK0tyOFllRk9NemQ0djV2K1RTZnZteE5mdkxBejU1UWFiYWRiaFJGNVFxMDZZMVJIOXBJMHNERDBxRlNyaXd1U082OS93UEhqVkt4MVQ1MmdqUEY1dTMxWHpmWndUcXF5RTYvWTE0Ky9YM2JYQWZOSGlLQWpoc2tlMW5WelBzaEd4WHNkd3RkVm9OUXRRM21KeVVIZ3hQRHg5S0h3cE1EendZcWlsU3E0dnExQlkrVW1kUnN6b0VlUDVlWWdBQUQvWlJpU0RUZ3VvSklLL0FhTGRFNFU4eUVCTk5YcnV3Ti9BQjJJTjY0SUVxU2tGMHZscWRIMTFBcWJxRkFBVTAwSUV1N0p3d0lMc2lCd1ZSdFQ5d0xUNENBNWlTMXFJcUtaSDlIU3JCNVpRaitjR25TKy9OeTFYbEtDTnlJdkkrWXVBZ1Fkbis0MzI2d2kxS2RxdEVVbktTMjFjQ2xUUEE2clJZYjVRZkZzdDF0SGsvOEV5YWRjRXZGc2gxZStScDh0US9NdHV6c0Q4Q3ZHQ0o2aGE4eUdNNTJFZ1BZWTdJL1RnaVZ6TUEyZ3hBT1dGR3Q0RXUySld3TzM1M3dxNXgyY0ZBWThDUWNTakFHSGh3ZTdVOVV2VWNXdXRZaTFWWXNSRUxGbTVNVlBkYUxMejhoMHZpZ3lqQXZxb2xaU010L0pmYTgrMUdBWUxQZTJKd25oaWpsUFlLbDJKcTdmUFhzRkJ3VTRTcmxPWkRWZzdndGxSVk15d01lUVhETkZmT3RESGw4eXQvaCtobUJIQWJWZWFJQ1BNOEJBek8yMTlJL1NnSzBDVUxFcEliRXhNYms2UERpdk1XbHJyY1ZEOHIyeXFOTnV6Y2RDMnVBSjhKMW9SUE9EK2N6RVY5YnJCdStLQUs3MnJTVzhGSFRxRHJXdWVxRGEvWFdKM2QzUUpMa0xCT2MyR2RtMndHVnAvb0R3aHdvZ3pFK2ZQUFhyQ0xNbUF2eVp6Z29NNWVyRDkwdVl6QXo5UEFVbU9ZRXZHNlZjekIrZ25tOWltK2RXTEVUUkFsby92K0hDWWZSRGozT1RDcEgzeDZ3bjRiV0cvdXEyUFZGUlRtbFVaWjc3bUFxMzVmViszMmk2MDJhNy9zNGsvVXZvYUdQZ1FnL2ZlNXhXaEV3VmR3aEpBU1pUQkNnVGJqM3U5SEFGQlhSblNuQ2VVMHVmRi95VTR2UWdaOTA4ek5TeEw2aEpQYm5LTGN3YUtPVDBwZ2VGcnM2K1JHQ2tvT2VSbCsvaWhTanlBRE5HdXNYcHVXSzc3MmVvMzJUeTRINVhMLzFIWXN1MllXeDZURjZPbFc3b0N2N3FoTHY5aEFNeXd1Mm5NKzJEbi9pWFB2TzFFZmM5WjMraVY4bjZORExGd1FycWtienZjYWFqZ3loM3F1S2dDdVVaZmQxWTR0SFNuWlVvUHhIWHc3NWtDWUtCOWxJbzZCeW45VCs1aGpMSUZDeU5pR08yWlRKUWdFUm1zUVpxUlNRR3h0dGZzVGFOQjlMNTZibkR0WmZLSHordG5UYXRSbFVRRGg5VXNDdXA2K2tKZ0ExRGxLQWN3MTlvbHRqZW55Q0NWcitHa29udVFmNjE0QWc5M045VDMwdmU4LzVldTN1OTcvVi85NmlMV0w3MmI3enZxMzhBMUNnMWpBY1paejN6ZEEvdGhqeTlHcm4yWlpDelgvb0NBNUthajVlVHh3R2ZrdS9qRG1XdkRvaFBVZkY0NDd4ckJ4QkhJU1F4RGRrZ3Y5MHc1N1lBY0pGRzhjVm82azhsTWo4L2g1Z25nUUlnNjhYd29zenlNanpMa1JGUnFjaUp5elIwWHU1TlYxaStidGJudUdOL3g0Q0VEOWY1azgrbC9vZjJZNzRjekRTLzQ4RkFCd0ZrREFtWVNqZlo5ekZNYTdMRkFFS2lQcy96bXNHOVVBb0ZFN2pyQ1FHVG9aYmw4MDhyR0ZtNzRzOUFNV21veGxaTWtzSGxodEtMUlJCdWVGWm9ibGxQQnRRUkcyMTJ2VXhpOXBvUWY5UDBOc0ZDSHNBUjdhYXUrNzdiRmdmK21qUGZMSkE5NmJKMk5lZjVSNUhMU0I0NW1QWG8rWjNPeDlZRksrNTFIcGZsQlNtNk5mZ3FDTHMvV2Y2ZmhpRkZsU2p0ZGdYd2o0ZFhUaXozbTM4L0FGZ1lGQkpKK29Kem1idzd0NTdLK0NKK2FSNDhWaHdjcGV3V0FHWEpDOHI0aXFTSzlTUVJzR0NsOXd4TjBiRkdtMHJDdGVaM0diQmZVT3JMMDRkakU2cVRKaS90TDVFYTVndW9mS2dQR0ppK2RQaHpOeE8rcExyNVJhczIybEowcnJ0blYySWM1K0p6cUhkRG43RU5OU21BR0RPYWt2Z0JsTno3YlhsVjdPdENWQTZjbFNXL3ZDUHFUUGVURTBoMG9mQktpdlBrci82RGZiYnlhTmZmb1pDdDYrWTloSk53b2hOZ1JDM2Vrekxmdkc2UmFCSHlGT09oeTdiMnhjSmRwdjNGbWJUNDd6LzFzVCtldklKb0M2NmZnTVBvelpVK2xqMmQwWU5qMWhSNWxkaytrUGdhTG9oa1I5dC9vUGNVcUJhNi9kWlIrd3c1dGxDOWdIdUh1YjJUblZrZEZXZEFzVVd3OWQ4UFZsUkhYTFJJSFJwY3R5bGwwTlNBMkk3Qkd3b3dLaU9GakF4b0E0VHVTclVqL3F3bDJlWVp4L3RUUElDeVJHL3ZvQzFOZE1PRDdvOTA5TU04MmF0Zm9lamJncXlZdXZkZG8rci8vYzV0VHl2WkpXRVduM1ZtZFptMmt4Ly9nTjRuamNOUGI1emRvcjNKMC80cXZVU1h5cTBSSng2aE14ZDlFWmtjVkk1U2VwVitFLzd1UmVxYjNweEJ3WXdPYW9jL0FJRlNBUjUyRlB4T0FZZ0J5RlRXUFlJTGJSQjdDRTQ4eS85NHYyL3lUNjZTM1JXMytQMGVXQm4yN0RUMWREd3hmNzBueGYrUDRYa0dnTnYzbVFzaEpiNWQzT1hWL0ZOamEvRkwwUSs0cGpidnIrVDgzWEk4dkh1MDdrWUx3REMrd1BZUUNUL0dKY29ULzd1akFYbjNucFM4bVhsK3hNUVlQd1IzamdOVUNZRlNBc1JCRG9ZU2ZkZFFRS1BKZjVMb1NGdlBPaG94Mi9Td3FIWnZoM2YwRnUyWHNjRlJWdTVVNmtkZGN5WHFYTGZsdzF1QXN2SHE4ZFR3a3RiRDNCckdXZWFBMUduenpOZ3cvTis0K2ZhR3ljWDlKYU9Ra3NBT3pWS216czhXSVA2ekdwcFhBd0QvWUpnMUdxTlVJcnRXN2V2c05hWmx3RzYwUnAzUXZ5azZ5dnJjd0s3Sk9BRCt5WW5TT2lrc3ZVaU4wUlNGajg4R0lHM2ZoR2ZYK3p2bS9DbjBpRkZRSUZWZ3NVcEd1Q005RjM0M3I2d1pNWnFnZnhVTnRnRDl6MnI3VEkrU0c3amQwYTJ5WkRDSnYweFV4WWJFOWJ6MERoS2owcUY3TzgwTmpadHRtNHpHZHpoYmdNL09tVHdWM3pWYU44bldEbVNJelhtOXN0aDlKMzhOOGQwbEsrV1ZjTnNKTm53bmd0UGZtcUxlVUZ3YStsaTNQbllmOGF0RHlKQkw4SFZUNkR6aUZ6bDlzVDEzdkpFQ0xwZE8yMDRadWlsUmJkQTAwdTNmTEE0RFF3clBYMVRyUWZpSW4wNVUweDlkcUUwcVNLdXhvY0pDaHZ3WExES3NtaUxhcHRXQzhlM1owaWIwdG9PVHJlYlhGUm9mOFFnMlRMUFlFdUcrVVljNk5ZZlVqZmhvMnI1MFRCQzBqV0I2Tm8xMFo4UEs1ejQySEF2dmFhRjhrcWF2QmxyUldxVXFYR0hKTjdOaVpYd0J0Sys3c1BMN3lLMnFRaUxPRzhvdTMvYXRRRzNRTTQ0K2Zqd3VNL0MvOUVYWFNzSE5rdjJrK3lkUjQ2bmdWcW95UytSWExUeTJRbithVUdVQk9WbDBxaWt0ajNCckhtSzMyRVcwTlRPMHk2SzlvdkRMQis0NXBPenBJdHhCWFJhaVN4WUJvR2l2cFlvQ2ZIakJzR0VQZVlvVnl6M3R4N1o4Tkd3S0Q2Um5QSExsRzZobER5S080cU9vSGpTNzVOOFBuSmZ6NC9mbnJicmEzUk84TDc1Y3NYM1lQZnV2Znp5OWlXZGlXclBXRnhoV09kb3FPcVUxNFZ2aWlWblVvQWZYNnpVMzU5ZjF3VHE1Wld5WmRVcVpiNU94bW1CYS9iS3BZdHphcjVBSGdveldYYUVvMm1SRnMycVMzVGxKUm95dmFUSDliZWxLTFc3T2lrM1dFUFQxUzd2b2drMlkrb1FBRUN6VTdaZ3VXVEMxL29lWW5tOTYzanBzOWY5Sm8raTdRWjIyd2dRQUdOVDZLb1lHQmhxZGNvTmpwQmdBa1JuelVtSEVva09zbTJ3aDU0aGtLQVBaUHgrN0RrT2NSVCtjWUdSUUdOb2FaWEcrdk9jK3dZcGtscFJYUUpMWnlCclQzVHQ1REJvMG5vUmR2clBJSU5TdVZEUXhyQUN5OXVUQnRWalNPSWQrUGFDTm9uZ2dnYTI4YTdOY2RSbFliYUZ1ZjJBZmE5dXVyUzNzUzcxMXc3UHFSM1dzWXNmc2VBYXhMaU93NE1QTVdGeXhNQUh5U3MzdnVmajhYSHhnYmZmU0NxYTdBaHJUaFZQbjFaUCsrUXgxallkMll0eGdpUGxrZzFjNUZjQ3RUWDZMaDFhZzdGOGV1bk1oL1QvODlrUVZZQU1XWGVtbi8rcWUraGFCWXRpaVpCWk5tYm1pM1JKZkVTcXZTbkM1S2VkQjd1d2pGcUdvdWVLdUZoekJYRU1yR0MvaHdHMlBRdFdpejVpMEwxWlJkL2pJLzlDQTdTd3N1Uk9ZQTlEeTlwd05GT3ROMFMySithWFJ2MWwxQjY3TGdUZFhiMW9ReGI0T3hIaHJ5N1dBSmNKUUN5ekV2ZWg0RTQrN3JtQW15VS9pWWRlMENmUUdDY0hrSGNOMnZqM29yaWJqN3BwOEZWdlRyRGd2R3IxRWwxYmRqSzVnajhva25zQWI2MDhFT2Z2c0FUYmo4VHl6WVlWWWFrdUtBNFEySmt1a0Y2Sm00UlZyVlhXV3hXSXdweGtGakpqYmFaOXlxcVJxTW9NUzk2TnY2dHZwdWN4S0JaRVloaWZxdlhKd2hRUUgzZExaYlhyNkU2aGh6R0JtYURqa0hIcnRSWFRHUFkyTEI5QnAreDJzZGQ0OFExVmxUNjhGQTdMckNwTGptK2dFYmE1WkV4eEkrTUN0d1UwcUR6UWY5SnRmbnlqOUVUdDljSE5QZFBsR2JDVWppek5Id0xtd1BXNzc3MmhmS0xRMkhtVFJJc1dmRXdIOE1uRWg0aFhXT2RhbW5pdi9sQTFIYitCMXBoZDZWQW5IUmZ6TDZSSUE2Vm90b0FOaG9uNENBY2o0dGJjUENqZmVlRnd1Q05RRGFHMWd5am50amNOOU1UWTNxbDFxdlp0Nm9NSmxDWFZYZUdLMzk5NnNzUkVJQzBFQk9LdzYzWXpOVzlCSEVvTzBDTFN0RTRRYnV3MlEyNWswQ3JFR1pTM3dna0MrK0J5eFZvdHVyanVOTDlrbGFTeURlQytvUE9rMGtyU2Zjd01yaWs4MU1jSmltU2grd1BGRGNwWFYxTzFGbGJlK0FBUWFpZzZydnk4dnFjNWlMRVROMmRwZWIranRQUzlvdE9LaFVrc21oLzJuT1k1bGRUNDBlRHdkbEpqdlpoQ2VzVCt1dWsyb2xhWVgrdEJiUTFmYkhYc3lmdjNqMFhOUUVtZ3M2aEFZdzVnS0l4dWtzODBmbGwrU1I3TjNqZ016Mzk2K0FXVDFyVmJxNi9KK0RKbEVvMTlTVEE0OC9kWFpYbTJUTDQ2NWtybUZsNlJSTS9nZmdSWVFyaUZhbnVCc2R6elZPSG1WeE9GbVgzdXdnbGEvOUhKejRrVng3UE9NbTJ6OVBNYjVmWkYwVE50Lyt6ZGF0K094S1pka0czeEtkTkxhekxGWmNEenp6cVNieWR5dE9lVGhzYkh1NkhYTkE3d3lIRGZ3WDFheXpVSStnbTBrdGlJUzRCUEE0S1hoNzdYb3lQcVMvamZPVjJ4OGxWOW1GTC9KZjBZc3BlckNxeENtZ2ZmTUQ1NnJHS2JYYXR6Tm5idTF1d3U2K1BLVWs2a3hvNU40S3hhcnZmSE5yVnUvWTI5Q0VNdEE5NEptMjVRbjNBQ2NwcmY5cEVOSWJ0OGRhWGw4cEVudkI0M3NELzBzdXRqMjBNbXNqMjUydVVFeVdjT3FWMTJnN2xSM2hrTEJQTFNCVmdMNDNkejlyM0pyVE1PWXNDOUNOVy85Mk45ZEhLbEkzWlBnelBlczQxdlhtSjZRTHI3QUd4N3lVT1hKT3VsVEtRQzM5NVYrd2pjUkZKdW51TUQrQWxKaU8xanZmNmQ4NG13M1ZpNlU5RG8xY2VIeEQ5bXZkZkdjSWMwV0VOcnErLzNoMG9PKzhOK1JIYWJvck5hYmhKbUNYYUNnQ1E5c0FzdnRsRzhJTm9ZM0R1Wkg1T1lCcnlzWFkvVnF3SnF1bHMrc0x3MmN2TXdNMjRvNWVmR2I1bzZxd0owaFJqKzdVZnB5RTVnWGtEbW5KeUs0Qm05Ri9MWFhFdEJkUlhibFVyVnYvYWFtVzgxYS9WcTR2VlhBZGJLcmRhUnZLY3RQZHgralhOcS9iWU1mM1hSNUM5WFFNdDZhYjc3ZmFycFgvNGMrMXhhTW11NFRyQTd6QlZGYjVBdXVjZFhQeE93c3ByanhXUjc3OXg3blBpNC84bC92c2luZU9lcU5NUlBRRzFXOHJuRlJVSldtMXlZVTVteTRHMS9NcnhEUjhxdUlZVUU2MVVvSXZJakZvVW5sNW9majExei9ydTBrNW54V0V3K29yUzVXWHhjbnBSQTd6NktZbVVmaS9sUnlpSUJGRWdFaENNaFN6WjgrSENYVzdNalJ5MkNCK1k3VWRaYVArc3g0azZXZFRPczczcTRqcGk4VCtoNHNTejFla0xLbmEvZi9pTnhUY1ZvYWMyTFVvNEpGNGNrbWVFOWtrZVRvZndyYWxsZUNhVzBSU1oxdVJmeXlySU1Id201MjFZMkxVTThqLzVVbEEwUWw5NGROYStkYXhwVGNxcis2dnpXNWVNcGZRTkJWQmZCVFVxVTBrMXR2ODNOcU9mM2ZpUWxzcGQyTmJkU1BIQXROVjdOYmFLMHNxVldkS0dWaXc5Um5yc0t6K2gyVVNiZjVPMGdienB1VkNXbGdzK2UvVkIrUFhEM3VNN1Q2UVJzMUFUOU9ybHBYMC9wZnp6NFFjZmJjL2k5UHgySVoyUXVIem5uY1RrSDBGTnB5VXdOWnVRem02S3FVajh5K2ZLQnpsK09leUZteC9NNCt3eTVwaC8rdWZrYlErSUthTFA1dUE4Ti9QamlmdkRGckxMQVRPNC93V1FIU093Qi9saXkyWFJZY3kxaGdjd0lPRWpqTHpDb0R6MzN4V0F0b2J1L1ZOSTdhdGdrWFhFM1dEdmN6MUtqd3l1ZmhYeWs4OFl4dHhZdnJEODZNb0MzNEszNUxrWnVVZk1veCtEMFkzNEtQMjkwZk9tMFdzZzlGSnNhS291cEdvb2cyalhoNGJwRUM4bkEzQStyT3Y5TS96S216bjBPajFVZjc3cFFNakV1MTEzVG1XVTAwQUdoQU83cmpRR0s5YjczWHhVWGZjTjg5bXA5Tlo1dHpvZThQWXRUVy9lWUx6Mnc1dUhRa280SWI0bjVWaFpXV3oxcmg4TGVBV0plUStadGM2bFRhY2JXSEZkbWlYQkJkYWFKVFV3UUJtb0I1MnJaTUJ6eUJ4S240a3J6d1RYUlhmRnliUkdIeGpBOUExTG01eTF6SWVKZWJ3Q0VQb0xkdzRtK3dOcHJiVkdua3dWR1c0YjZKMWM5MmpUbzR5NmJZdTJEWFJ1cnR5TVlabWVsNkVIOU5vODlKaXpCd0oxSG9oL3FnRnJSZGJPVzdlMHI1U2l6UjlpSDd3bFVzNXFIejNhbVpVWmRMaitzRzE3azVhQk1acTAyMjNMeVpSdlF2SFg5enUvem9aTmhOeXI1eFBFUS9OSmxpRXhnVjkvTDJRaURJUm82TEhsV20xNWJFSnlaUWpJWUhjc0VPdkY2YmtRQkRPb0hWUkFwVUE1RW9NNHJXTitCZ3VFSmk5SWlJMHBMOU1lUzZOLy9YcEdkR2hwM3J5UXpuZTg2cHA5UC9jaE0rTGFLM012Z20yYWZIV0VJanRiQ1hRMzhUY1c2R0liRXlHQ3I5Z095cEdsaVpZV21uNkJEakJRQnZ6bE5zcnc0RFM1UE0wc1QwMEw1Z1ZVNUtseWxNb2NWZDQ4M0J5c1cvQmltMjhtWjBNOU9ibUhEajd2QTMzWWcvM3hYVEV5alJ2YjVwMDRncThrdkN4UkZJV2t5dVdwdVJwZXdkd1BQUnRqeTJPMFpTM2E4bkp0UzAwQldGbnpLQU9QTVV5Wk9zMno4bWg2YWxRNEFFNDZ0blRPelNzcUtHQmdRbDAxcStoaXdFNDZPcmtMODlVdEt1VHVNakF0R1h6OXREemY5Y0h6QlJTbmcyMUVWNkxkR1lQMW9jcTlSRC9DZW9nZDJobmlIUm1wYnNPa1JTaEFCMUdBRGlmM0QvdnlBN0VvbnBRV0J6Vks0MzVnQ2Exb0NUTk5WVVM5aGhTR3RuWUdmelJnSDdTRHFiM3JMOFpkWEord3haeWlrUjJMano4bTA1aFR0cFNnQUJsQkFXbzFOcm80T0lLNG5RZHp2dFRxQUpmREJkeTBnMjFMcmpVWnIxMDhSeUVyT29lNjdRN2M0Yks0cks2QjN3K0J1VWZjbzY0TnBubjhpK3NQcnIvbzRiMnJDM3M4Z24rZEdTUGkxbWNHWmUxODlFZzdxeFM5dFFKYnVWbWtmS1c5ZFd2bitaVlR3K0lEelNNWkhsVUxEV2d1TW0xLzQyc0g5ck5kM0w2NjZQL0QvemVKUHU1RGU5YkM1dmJtYzV1eHpieW5scWVCVWZ5bnY0Yi9pbE5SZ1p1citta1BORDIzcEFRNWlXcjI1NWlrUDNXZUJ0RyswZUN2ZDhVellENk5MQ2RJV2I4ZVBmOXJtaWYwMmVHWnc4L1VBK0Q3NThHQ0F5OWYzNGtDVkNJaTA3a2FKOE1rRHlPR1p3WkZwVHJUdVhTT1g1SXU3SUlvK0UrNUxvUkM2WU1nQ0F3L1N5OXFIM2lNTWhIY0d4aUdhUnlmQzlnTHFRS1lBUStNWm5yNEh4NndFMEFhSU93SS9CQk9JaEVJTW92dll3b05PWXZRS0NKQ0c2ZHh2c2h6ZHJ1TTF6NThXUzB1RUVaT2lzbXNLdTVDTmdBQVFKc1ZETVBhdkdqSldjR0hFR0JGcDJ6WFE4cUJITkRoUnhaUFJpYWZQUGdYOTduUkNDbC9DL0FpZU9OUVhPbmpDYW5qbzA5ckpEY2VsOHdMb1VBUWlSRHdtM1pBR2JTejdyTTR2R0VpbFA3ZEZabXZZdjVSdVBqUFJXbUwvaFJqVWFyOEJyblorT0xGaHcvVG91OXlBVlpUTXhjMXgvaEFHNENiWWtReDF2VWMrOVdkbUZmS2VIVjh4SkVJdlZxdlBGZ1kybUphR0NvZy9hNmVDejRmOEVJd3cwZGU4RiswNC8xaHFoWEtGYXJuYmtvc05iZ0M0TGhMdTd4Uk9ta0dVUUZ3UFI5empWRkpDY2xZSktLdG5NS29BTWFwQUlsYlkxUTNkU0dRL2VoeU93d2MyOEkvWi9xNjRhVGtjWGRHWFZhWEJiTVdvaTh1b2lSVTJDUG9NOEx4SnlZQURBVWRCWnhUdkZVS1ZvMkFza0NsNzBGR1J3UVpYL3lIbW1QWStPRDR4OTRZWGRraVhhcjlyU1I1Ly90NVJTeVZoVGxXdjF5YSsvWGYzdG5RWXl5WmovbDJJcFdTU200WFlyL2l2VzM1YzBrM3QxcFNqYVE2TW9DUEpJeGQ5d1dsZTNMOXJ5RTMvL3VFL2trem9YOXRhTUcrQnVxenJTRzlUMFAvRGtzM3hsV0hrcE1ZeDVRYlMzekVGeHJ6WkZKQ1M2bzBpZldVY0h2bmRmZW5QL0lTMUY0eW1TeXNBSVFFeTRKRHc2UmhLcGxFdkpybER3dk85Z3p0VUN0bHloRFE4WFZmS1VGZkhZbld4K21qN2Q3SHg4V3ZLUlRZb3VJMFFZTFFjL25ua1FDNVVJN3cvY1djVlF2RE5DdWlWMmpDUUZmR255U0N1QzlvWFUxTnIxVEZXYnQzcytBSDJGcHBiWTFzbmFpUFdMeVE4ZUI1M0RjMk9oenFrYmQ3YVJuZ1kzd3dZUExOQnVkNjlWdUJ4RnNDOHFMUy9sa1I3MFBpTjhScE5IRU5mS3ZqaSs0ZDNCM21tUC9HMjl0eGUxZEU3TGl3TitUcUV4eFlOTC9PMHRRWTBNeHZ5czF0REd3SXJHZEo2aTFFeDV5N2djSExMczdPMmIyYnRWYmFxK0RxK2JXMXFOWGQvOGlCTDBneGZqTDJHTXIyL3Z2clhPbnkrakVMVTFYRXludC9mM0xKYjlxbDBoWWxuWHRjaWxSTHFybmRrdWZMdDNsZnNTTmQzRXBKWlhXNVY1akVCMlRZQ09zbnV5bVgvSzU4UXYva3Y3ZjlLZnNLUXRmZVI1NzJobXoxWXNuQ1pES1psenFCOStPbjd1czdieE9lc3BLa3FTMEVxU3l2OFlMWXAyU2o4aGdqaVJ4YUhXZE1YeHdTRktLVUtkVTdobnJPQ21CLzFtcXhSS1lLazRhRkJzdUNnWmlZTVM4dklrZWh6RmJsbFArbjFBRHdZRTZwL2JkY2xhUE16bEhrUlpSajVqUjVhbEQyeXV3WlhoQmY5aWc3WitVZmFYTHphSEFheXRBeWZGaHc1TUY0UXdSRm1rQm9EOHJTL3htZlY3NzNtS0U0MVpQVy9HczR0bmV6MWZnL2htbGt5eXNmbFk5bmkycUx4eDk1dFFVTWhDZjBFT2dNcVE1SDE4NVdqK0lJRThVWkJ4Nnorcy93enJEN2J4OWc0Q0hWcFdjZFNReGJOTWxoT25EWURocG0yYmdqekozbE80TGxhVmlvZDFvd1VGL20vSTM5elJ2Z0hUSWo4MitLMDg0UVZxdVp6TSszVjlES3pyZW5lYXRxcWZEVEZmeEhvMi9zM3VXK09wRDRMVnVCQXBRMXNOUGR2WkZSZFdyRitDa0F3S254RmFmU3AvRngzRDJkWEkxZHhDeE5TUnV6all4M2RJeVAyTWJTVXBiR3FIaEowa0FjZmdPaE5mU3dhYWY4OGhvRng4eFdzcGdiS29kaWxBODFUempmNDd5QmtvV1YrbmVIeFlVS2lzRnh3L0xqTXIrZk1qVTZpckNDbVZaQlhacHM0aWlHUUIxeVc1UjdNL2xtYnRKM1dZQVZGK0JneTA5bzZpVVNVZFpGWjZwaEJ0WHg5QXdkVkFiMk82alpHUC9CY2dmY2dKa3poVnQyN0lDQWsvMnRyUmZMZnJKNitzdk90VVNWL09sRk9jRmlOeUxyT3NvN3VYUHdSNzZYN2V1QTY0UHJydXNmMkJLL2xLMzk2VmwrQzV3ZDU3cTNVck9QTXZEVVlEWkwxOTZiaTVyTHovZEVHcDdYQU5nczBxTm1Ja3pVY2VPWXpxZlQwV204WXpjY1FOTkY0M1U2WGQyakRzbUx5Q0g0dXlISFhDYi8rMkgzL0UyY2liRFBMMzY0V0ZmclRmUjk2Z05LbGdlYUJQRGwrTXRVZ1VsQXZTeWdRTXV5RlRXTTBkaFNHMitzYWJkcklRVTdGdXRxaS9ldTFPSnN3RWJBdmRlY0puK3hJRmkzUjJmYVRHNmV3ZHh4SStNalNZMUppUTNMTmJnOWZySDAwNEpWTW1HcUtGNFFYeUdVc0Z1cnZHQmZTNklnVWFRVEJsV3QvSGh0dmJqM1RPNi94NHZpbWtUaTk5VzVoOGtJcGVtTm4wSFoyNzk2M3J0SHhFcGhpZmNJOW9oWk92ODUvVkI3L2JUbFFFMkg4dXZHNGNHTDFzQ1VuSlI5MmJvY0hmeHYxOVd1QThMVjhhdS9iN0FucGdqZkZDWlZkSVB4K1lmNTNNSXI3K0VYNHZETXRzcnh5dm43S2N4MEFYK1BrSlNxa2hubG1VV0JzbWNyQ3NvTVN2ZVlXZ2JZbGRYSGo3Rks5a0RqWHJDa3QrQkh5QThwMVBtMjV2N3kxR2hHL3M0MXB6LzlkcW81THo5dlBWbElGeTlDQ2ZHMkFMcmVsQnZ3TFM2eWlmQnZBM0xiTVZkZldJVGVIS0t5cVF3RW43QnRRN0lSWVdJMVZDTktCVW0xME0wMFdjMUk3amRabWlCT2tCMDFJYzB5dVN2WXp3RWhEZ0hpZ0pBRmwweld1WWdjaDN0eTl3eDFscHFVSkhwWE9DSVlGaDBXZlNRWUVaNFZhWk9vczRrMlFhT2d5SGZXVjVVMzVzeFMvWEh2UFY1cXJ6M2U1eTUvV1h4TzBNVVBQR2xNSmUveTF2YVljM09UdkhhUmU4NXF2ZCtneEJrWEdaTFNjK01vYjFCeFF1M1R3NlBiUngwakRwNzd4WVlqYzhJdXF5bEFsWXdPdXowRXMwYWJoWXBJZ0pyczJIZllOY3RpWVdQbHY4c3JaY0kwWHFJbzBld0RrMWV2WkQrLy9sZ3hFY1pMRmtybVZXNU5rejRZZ0l6anUzUUVxeWhvT0doWUpHN1FSSjgvN2xpOVhjWk1ZTXJlMnRhN1hjcE1ZUVkxVmpvTHJ4UWR6UFVlTzdyaXUvcXdhR09DOFR0amlsSDc3dlhGMTJWRjJoWGFjcVdodVR4QnRFK1UzQUhrcGJ1WmRlSTY1dVB2SkZEZk5LR2lORUxKQjN3bGhHSVlMc0E5YmhWV2pIeDM4RjJXYnlpc1lTd1ZOWVllVGt4UkQ4djQ5UTFpd2hGWkhaUlVLM0NwR21odjlZTXFtNVFtUnpOSU80aHh5b0E5Zkl3L1poK1c1eVF1N2F2OFk0RGJaY2Y1UGpuR2oyT1JabnNzT0MrU3RzcjFoZSs3TGhnRmpQM0xRMDJ0ZUk2MlhFZG9QUjgrMGtUczFMOXJTNzRBbkRjL3lDUmpNR243eThkQVRMN0NibmNiU1p0akNacTFZY01rTmJ3eWRNR3F0aVkzb1d4cHFscktjWStFL1VLamNTNndESG1QbkdjbmpZQmNjdTdZR1FZR25ZVGd0dE5GYjhzRmx1ZEJyQ0FNaGVtaWM2bnNZaDA0RkQ1ZXk5Z2M3aTVtektyeWltUFRpakgrbVBxeUhYcklkTnhmNyttcXd1Zms1VGxSWjE1K1gvYTZYcTNubmJxc0Zaa1k1aGlPUzR3c3lEWGhBTlowaVBIc0lmL1hGNkFtQkhjYVlJTU82K1E0Ti9ZWllPMlgycTkxOXN6b3I2S1ZUL1ZmVWVPMmJRTjVxWmxwRTl1WVpuTithVFYzWER3YTVEKzB4aE8yZkRpUnJnZUFwSC85MGc4MFhrb2o1R0kycHZCby8vLzdycFlFZ05ZeTBjMGlRK2tWMmNHYVk4VGZUN21oSkVWSzFIY2F4K0hyRm9nY01lMnk0U0dwSllVNG5NeWxEM3p1WVJ6K3hVOHdWTHRHNjdON3N4NHpoZ3Y4TG1iTmVlN2RwWFBkbDdmSlMxSkR0b0dJU1FCQllndmthMTZwTW52NTdtY0J5OTBEN1RuS08yYWZPUU1iYU9yT3YvM3JhY1VkS01pcWJsOFVaVk9iNnFjeXorK3F1cDB6VDIyUUdmSDVyS3V4ZWxtcXVwU1VTYTZZbFg3emxaalF1dHZqdThnUTRRMEx2elhVTitqM3paMGNWS1czVVZOU2Q5OVdRM0NFcGgvRTVOZTZYQzRjQldoZVJGT1lOams2UEl4ZDBlNnlvMkRaUUg2WnpuZGg3bXRmTURnWjZqdVltZkhzSUd5dzhjWVZTei9vYnpYSS9ZOUR4cmxmRmxJRUhOaWZFdTlRUWI0QWN4MGxaQlEvLzAxa21FTjdENktqZGpUaGFZVGhrQk1OR3Y4bUNMU1YvMW9NYS9jMmRrUHovSVFWVmRPWEpwN3UxOHA5Mm0vYXBQQ2kxQ09IVTlzdXkyeEpwbVpUbmw2MDh4L3VyY0RUWjlhK0c0WEczeFc1UXN3VnJ1SGVtaU85WFBBWVZ3UUdiOGpKbmkzYnBxM3g4dVZuWkcwcVRXZnZlL1NhTDIxNzlnYUFQWWNaS0VEblVBL1ZydHI3cG1tSU1jVG5rb3hNUmlURGxBenkxNTdtbDludDA4dkZZdjgySitabGNkaS9FV0xodGtlZVlMRzZRdFo5ODI0ZEY4RDV2bDlWcndOcVNlMUE4czdxcjN4WHdBenVrdlJrV1JmY3hhNlR2NTdUUjduSk1GNVlFcEtLMjF4MTIxSkRTdVRiTHJ1NTlMdjNQSFBrUlQ5QnVCSFRiOTd0bzExVE95VHcrK1V3dy9QNXdGMEE5T2tUSDdMSUFMSmNQK3pRZkJlVm9raUMzS2QrSng3VEJHZFhwRU5rVnZlRVJRc0FTZnZ1di8vVGVJMHBUQmVVMHNpai9YRHBkVDFRYmFQT2thZGNkWHRSQ0hHQW5RdXRwZERjQVFpOWJQMTRpZ3dxNzd2NkwwREhkN3QrcmZ4akQ3Q0NPTXZYUTNod0I5NXU5NXNCbnFHM1NxMDcvZ3FIL0VpSmJhY3ZEOUUwYmhxQ3d2L2FZUzMxQ25QemRhQjNqYlE3aE45K1dzTUtmN0xXYWhyczZMZW9ic1BRSnBPV0RLTUwrMC8zd0loN0VEQWtkNjMyOW9EQi9NTCs4K2Y3Sis3bnozVXhpektaYjZFQWlVZm0ydkVScGJmTzhVQXAyOUlQOGo4SEkwM2Z2THV1K2l2ZmZCaHc2OWlma3BBdTFyR2xaVUk5cnRWSkNxKytoazVSQVhYRXpoV3JYN3JVSlhtTmpzMGJlQWJBYXJqeHZmcEh0Yi9BZjZVMW02eWJVQWpaTk9ZNTNqdTE5eFVieG9vY1lDWFB4NUYyQUlEZGVUNkJlakRaNm5hekd4WVZHMzBsWTB5RFNkcEN1cldPNHYzSzZucGVlUC9FSEJuRlZ0dTlyS1ZGS3VuN3A2ei94SHY5VDVycndqQ0VpVDdwZis5RS85YUl2K3BGTHIwMU92QWlNbmYrSWJsNDJwaWJaNERvMGJ4b09oUk9EbFJJMDhVb2VhVDlsMDFzbEF4b0doNGtWQ2hNN2ZUVEcxYW9zRXlkcWRYLy9QY2h1ME9HUS9wQjcwUW55YVNwVDFzU2ZmUm9MTmViUlBIM2s3cEduS2lIbUtGWnV2UkpaVUZFbmxKbGpzbzlxeklyczNNaWNsVVZoSGdxQS9saVMycEVnVUd1a3dlbmhxYnRDazdOZmMxc0p2d0JnbTVxaCsxand2RmhlNi91QjJwREJtVzlPbG9mWUJSYUdNVU1hNndPTXd3bkZqTXNkRjFjT2lhdzdNNGlFb2s1RzNhZnpjNDdFVlJYcU0vWDFiR2IySjlsR2dwMWVheDZ2NmFnT21IUnJ4TkRDVFp5UEhWS0I5eG5FWURPSUFEQlVZQUkrQUlFb0RnQ2tCa1VJTlpSZUE1dUxNNnZ5Sm5VanE4NnFhR21Oc0tnenBLK1M3ZEUvUm1CeVEwUlJwYzQ4MVB0OVBtMHBuY3AyUHZBdU1TZ1g3SkJqeXpSYjJDR3FCaXlobGpjNDhrRjNUeXYvZ1k1YmpXRkdjTXdibktGWmFBbWhzTmMyUFBxa0dHTkM2b0RzbTMwUEh6VXZOd0ljNFFTVHcydXhYeHVJS3c3aGF2aWlGL2ZqdGtWKzdzVjNPay9KZHM3UzlXMWppS2VPZjd0b1U4K2pOYllPaHFEVlRXTng4SUNWbUh0V2VhMHM3RDg5VkkxMnBLWU1xaFpsbEg5NFJYS1hHVjJkb1JaVlFiZ1VtQ095Rklxc3lvUGxKRkhmcnhIeUJ6cXNHWks0ZVZSZkFadmQzOEpmeW00amVFUWU4QnU5TzVZZ3lZUUh4d2V3bFo3WmM2Rys1NmNNZHlqWUl2TkVQT29HUW1kZlA4L0F5RDNHWnQ3SXp2cGhuUWlKL1Vjd25xM09OdFg3N05WZk1Ud2FXK28rM0NiT1p6Q3l5MzdkR2IrT3lrN01pNW1DdlBGbFRTZ2tUNnFQWnNhV3JqaUFMT1dlYUExdExBZEJZZ0xZYUx0OXhwR3JNTnByalNyQzNPNTQ5d0VlM2g3T0FoMmszTU01d2czY2t3M0tPeVJ0N3VDSzBWLzN1bjVWQTJGelhLclZmbEp6VldHenNJanlGRTJSYlV1R2YyamVnZW53Vml0ajIrZjNiRXQveWRTSUpxS2VpVStmUUtDOWRrbXhvb01zZy85WmVzRGptRXJ4L0NnOVNYZGg3d2l3OFFBMytlbjVuOFBScTMvcnFZWVQrTGoyYnY0bXFiN3VPTll0ek9mTEtQSEhNZDlPckJhbTMraFgwMmFTUU5DYWgyL3ovOHk5clZ0WDNDRG1NWHVyN0EzQzBLWk4ydSswMmNxOFdQTHIwVS8wZC82NWNmdzhDUWpQdGF4N1hORXRvQVNHY3I0cE9hR0x1T2NzVVNBc3lhYlFNZzJPbU5qZDN5Smk1Z2JJUEV5Vit2WHZaSFJOWjNja0pUVXNGd1RnSXcyb0dtMTc4alpvM1VmK2Yrb2t3N09HcWNPRzJIWHFQSHdWUFVwa0EzcWZ2VGJYMXJ1eVh4V1h2NU16dEVHNEFGYWY3bG41RWYvRGRnR1Qzdk8yeE16ZzdhL2pRYSsrV2xnYUo4WEZBVjU5ZVgzaFVKcS85SkNBejk5TXhCOU95SmwwWC9PVVlINkNsMlVOQ01pTWFzSXdhVXlBQURZckJEcTF0aWxySGNFN3dBQU9jQWhRNlR5elJ5d21FMFdUU2FKSkZkTzhvNzUzZEZKTjl5WGhvV21HMExEZ3A1bFpmMlE4VU5aMWc5Qi9qSCtHaXBBR05RMFZoODdlY2RFK24zcEJ0MGRQOTBNQ21tMXJFaVdsemZraFVOeEpZK2ZxaDNmL1dLUC91eEZhVVVJaVlLeStVZVRnN1llUmtLZGVaMFVRaVNCMHBuYkdVS0lPdS9wREVVT0szQ3FCNW1qcXVaYnRiRWZBaFJjOWhITTNQbHpaMHpieWhwRE5TaDUvSDV6UWxaOXhrcjl5Y3hLYUc0NGtzRE9NRmNyV3FzVW1XWjJ3cEdOVi96UGhaNFBPeDk2TGlTNUU4QjdEVjNpSzQ3Wmd3TEVoMnNScDc0TmVORnEzMWZVb0d6SkM1SlF4YkhVVXVTVk5QR3YvdU9wajR1MnQ5cHh4ai9BSlNWR0dYWk1jazZKVDlQVGNYejlQWHhwK2ptWVFvVmFLNVdQa3A1Umc5SHZ2ZTd1V1BXZlAwV3llclZuQzJ5WkRieXNkYnM5Si9qSGVCeDR3SU85Tm5zUTFuc0tEZFBUUUVtVmoxc0t2aUlNWC93N3R1ZWVBZ3N4RWZEcTV3YThEV0dlOXNQRldjRVVIdmVqcjdvb2ZRWTdNMzdqODlLNkhUVXhEbEw2MVB1QjNQUXU3RnlRNzhPRDN0VmczdDZYdUF1M2E2M0VBYnNETDNMN1hEMU9XQ0JWUkc1T1JIbDJISzRIcU9DNjlLWXFVZkFOblVDZEs4YlYrNGxSZGlqdTVybUQ4cHdNbHBQMTZZRkJtaWRVenNCWGJDYmZYWmJ6MUZKZkQ2dkdxaTZJaWlwUVcwYzFPRWhRdGgrOTk2MU9YRndkWHhrWFZ4bGYvVVNEZ3dSbCt5ZjN1MkdpVWJUUmlzQ1cwY0RyTFlFVjF4ZkNVZjVNczRPd2MrYlRDYzNPSXduc1RIT1ZvclZha2NGZGRnUG5mWnNBVDd5bi9YQkpackFYajdPLzcxVWRlNjlUdkh0enFBOFB0UCtzWW1sOWczOXhackZ1eWNrbHRWRjFON3VYNU5lTk9FbWRmLzc1c2VTY3lYV1NwNWJVUEE4WVNLN1Jreml6M0YrNHN4d2Y3aFJYSEZ2bkFUZDJVSmFuUHhiUjgveHJtdHAzKzg1UmpHN3F6bTBuNnN6UGQxSU5mUmN2dEQzT01hKzhSeEMwZUFNRXBjYmtsa2NmNnhvL24vd1lXelpLN2lTenJ5ek5pUTdEdDZXZHhwRmZ5ZlZadkx6VDJLTXR6UGNBR01DWkNLZ24rejhiTW1HZ2Q1eEk0ZDhseVkraTVKbThybkZidUQ0RUlpR1psMDN3OXlZRit0Q3o1VVFpd1g5SXA0aGlIL0Y3aHg3OHRaRjJhc09oNVVXU2NOUE4xTjljZnp3OTZEKzAwUTJpSVZobTNUVGx5Kzg3L0oyTVZFOGtldnVRNU1IK0ZCSXBrSlJGNE5DNHhIQWZIa29nYXl1enZTVzcyT1FpNmhSYWtRc2FVbUorL1ovZ2lGeS9wZDQwaFV1S2xoL2FjTXBJK3pxWS9vN2ZFYllpU2pma1R5QVM1ZGwwbjBDU3R6OGhtNWRNSUJKOHVDM2NheWF2VHp1SC9BOGUvK25FRkpWY3hONGx5ZmF1MUpJSktNOG5uTWlsY1FoWnBFQVNpZUlmTENmNWVCT0o5YVR2WklmNytMNVRtNnd5R0lvRy82LzZqMGFFdlZMVFc5cjBhUlNSd3NWRUFRcG9vSk9DaWJQdWVIb0tkUXJCY1E3K3hJeGdQTS91L2d0UGw4dDdtQ0t4UUlWVnQrUWdPS25tV0VzZ2x6SnNONXRhNm5KU3oySjJlMnJCc0JJZGhIZVJ2aE00aEV0ajJWWm1zalhrdFErY1B6MERCcDBIRE45Mk9NRjBDUGRITUJkd1RYaGRYckM5UGt2dS9ya0RBNWhTZUxseSs1SXNVd3I5UkwxeTJudVlFc2c5MWxLVDFIcXJDaXFVV0NqRFlNQjRRcTFVQnVjRG16djFDWEw2KzY5NlNKZTgrMUkvUmovbmpUMEszU2lrU3hXMjM2TU8vQjc2UjZpL1pYV2xPMHVUNW9lR2ZGMFl6M3ROK1JvUEpEcHFCMmVNMk1lUytOajVLdXQ1V09pMGJPTGovQkZKb2ZsSkgrdktOSmZIQTJ5NnR2YjB3ekNia2JJamRYMEVoMFBaMUIyVWRhR0N6ZUlMTlU5YTVJdEx5MzllMVVmYmcwQ1hDMWpJaUgwRWFpcklydmJRblBhSGxMNzY2UC9Ed2FHOVp6a1RZUk9jYjhmL0paZWZ0NDE4N3YvWDhFUTRYdVNBOExNLzdQdHN2bzBmRFo3Rnh0aTl6TlBNWHZiWXRBdjFZbEtZWHFqbTZheWtRRmIwc1FaWE11dHNFQmlGbVVNQWtOdVFuOThaM3JBWUhxelQrVXhXV0RIOXpNK0I2QnozYldxa21oL0NubHArbWtFdHg4bmliaHFDUE9pQ1Y5TER3M2c3cmgwSHR1ekRma0tLdnRhUmtkbTUvZktDUWdyTWdLOVE1Rm4xMjhQempqS3ZSWm1JSzN5QXUzNHhnZzdDOUUzODVrcHUxQUZvdjkvOWtuV1c5ZVZkZDk4ZHh0N1RNdmp2Wlk0OWJ1cERuQVpEeG50WE5UaHltcGY0Uk1wZUYvcE9PTkZGN1YxSS96bVZmYVVXNTRwa1hCTThyeDRlTFpvK3RBVHBkK1ZTVm9Pa1h0SXBjY0puRWtoV3NsY1gwVW9LSjlFTDZ0MUZ0Z0xQWk9qK3FnWFlkVXRDMnhjZldNRisvcXJQTjJWWHYvVEU0dHZ2RysyWEhVUFg0N1BLd2lzVXpZdHJOQXVpTVN0ZTBsaXF5QXZMeWRheUYzbnR2TDRzTHlZN3NMQmpzRkoyOS9tUVhqUnpEbHdrVzBrSmxDSjdkNUYyNjhzeVViU2FWUzlwa0RnbG5lQU1NSzFNTnRTbmFPYk9CYk9Rdk9MSTFRT2liTTlVUnZPcWpPWXB6K3hjN3V2eDgrcC9nT2c1MDE5bExFNlhiZ0UwWk0zREYzN3RjYUlGMy84Umtwcjk1YjV0R1ltdERJTXdYV2dWV29ZU0pwTDVCdmFQN0YxQnU5WDRyaTh2TmdOUGp2ZDRHWlJkNklhS0RXaVhFbjE2OU1uRnZLNS9qZjkydlFEcUhIek5ZaXZNWHFJWDF6OWlqVlppOUVVL2NyK0V4QVc3d3lxMlRTMDBhb3FTVnF0NzFCYmkxOStGVTRkeXduYnJLaDFOOXJsYmpoZVhyZ1p0ejBlK2JWNXRHWHNhL1BXZk1JbE1KZ2FYVWIzRmpOQXNUbUlZMlJzaDZXSll1VDQ5NTd3cEplai9IVkdycDd5VENsZTZ2bVBad0g5N0MxcmZGcTh2YkRzOGtmVUI0MjBVb1BTV2dyYjNQOCsrby91QnBDR0drelFrTWt6VUU0VkVEWkZURWVTTzR2M1U5aHJWSGNHT01pcUIvbzBnVVhXejFpMEdWQkFaWWM0K0J0Umx1YXBvbDh4dU02WDRkY0J6OXFoZjZ6ZllWVUtWTnZhdVkxUG5STjlMZis4ejFaT1BxbjZmYWE5TEMxUFh0Yy84WHZWb3N2cU10Ly9Mdmh0T2xpcHJsK1dVQm5lcTQ2elRjL2tsS3hCSmJHNlIwcVlhUjBCSTMrWVNSUEg3ZDkraHhvQ00zT1c4NlN6UDdVSC9wNStLenIraUEwUGY5bm94T1VQNi9adm9oME5SUXcranYvbWRORFA1d3V2dDBNRG92MnpVUnlQREx0dzFFVkN2dlJubENzeUF3cjh6TThQSXNXTU8xelNPdHl2Z0NpYnM5N2NOU1BTcGNUWEdyZHczZFptWmIxVEdUZW9GMnpuYjlMeHZLbVA2TTE5L05MN0oyV3FNcllsTmhrQmNUUUY1WDVUejE3eUlOTGxSVUNRM0tyTlZSNStIN0NNWHhHdW9IaGhzM1FIUGNUM3dEckNkK296cm9lN1lCbnU0Yy9DMmJUQUQxSDBjdlNQOS9WTVJXVmtSeXJMNjhxUWIyV3RMVDRlbmsxS3dwLzdaMTM2TkkrMy9XTzdPVUt4Ym43NlRyK3VJWCtCTCsrVHIvTDd1K1AxK2xtRXRGYkdsR2sxcGJFVkxzNlk4dXRnV2t6WnZKSFNBU243YXVueFd5UlcxZkVsS3kwNVVVMXJHSzJQSjI5OXVLb3VwQ0ZNQUlsWTdOVkdQSGRhSmE3cGsvT2QwbUxhaU5IYWRia2RObzh5NE5IMXA4em9RbDE5K1dZajhDQ0xtZDV3T2IvRTdVSHFLWUNROGxNa2VHZ21FVTZXYmlTM2hwenZtUjNncnZqYjE1RXZrdWdwa3k2TytZamRoSWI5SVdQS1ZYdnVKVHZOQVdNeTNFRnBlaGxZLzhLclF5U1ZnbGFTWjVnVTA2ZUFxSSs2L1B1RWc1ZlF4R0hweGd1OWhmd2t0RDc3SmlsUjhOU2Q1eWh4empJMVhuZ1lpL2JxKzNuVlJWcUJrYUs4Mi91d1haUU5LUnV6bEx2NU9IL2pyNzZhdndvQTFqZS80bU5lbC9kL0h3ZXQ0MXI3VGVXdUpkZURxb2M3ZnNTc3ZYd0JyUHltZTJzUCs3d2w0RVVsQ295amU3cGk0OVlzcHEzOWpyYmZKQnVWeWJjeHZpN2ZFSFpvOU4yVlNwWWJaL0FyOWNzaEZsRlMvZ29EL2QzZ1YwQ0JOK1FScGErZ0tseTFyK21JUlgxejNRUzdJeUZnV3RJM1NyVEVWMW1Ua2Q0ZHZvZncva1ZFVzBXL1VBK2crS1oyeTBpVHR1ZnpHeHQzemFRdy9kY2JWSjV1dXhHM3h1MTJWZGt4K2E4MDlaWGJNdzMvRXk1OS9sbHA0citKNlRnbzNLN0JjVUtQZVVrbGltQ1ZWaEIrUGlpZFhmOXRwWjU3T0IwT2JBY1BBZ0w4NUJTQkk0aWRzei9FaWV0L3puL0tGSkNJK3ZmQW4zeW4vKzc1ell2WWEvdnc5WHdEaHQ4d1M4WHh5WWNUb3NwQUZqbVVnL3FTZStISmRlOGZuL2dXYy9ITzVuRHoydlRSZGY4ODcvV2gvU3RxclhLRXRUK1RwNHk4S1dOVFUxank4aU5jbUtDZ1FWUCttcDlTeFpDcGZvbUJQRjBiY2JnN0pjeXdEQ1pmMXhKZWQ5bzdQL1FyODg4L2xjWExaVDNXNi9nQVcybFVWN2IwaDZhU2YvaE5RKytEUlJrWnIwZGs5RmZwcEtVVWp2bENUYWlLUG9nYXU0ZWJPMmliUUdMY1QzSDNyK0FHb1Y5dy9XSlMvck90VTZhVXRTTUVUZjdPZ3oyL3ptT1l2RWhjd0VsOTRVMG5nZitMTUI1NGVFaUQyQ05NYjlCbkkvN0ZwVlV6WVNucW0zVFlwb1EyUG93NHdBa3FvQ0dEc0kvQXhHOFhCR3BXQVZLQWlBb3BCUERVQ1JRQkFqbzZCWStLUU9NQUx2TVpLakZTNFZmbDRGZzRsb24xYlZVc01yclBWVkRqa0JhYkd4RkM4ejhWT0FwVVlTRnE3OGN3T0FvZkdoQzI4N2R3UEFoMmtnV2ZNNWxlNFJ2QVZaMUJSdEI0Wkl4MkZuS21CRlZKWkg0SEsrUU1BOWRTRk5halVtUFdrbHBXV3JNNDBMSnZpclFieXZoWUVpRU5oRFdwNDdLRWRSQU1IcEtFMXlpNVg1NTk3SzBzbjI3S04vcXZVU1FvQThMb1hGRW10UWxyNFM5Qi8zM2x4RWRBQVNIbEVYMlVBZUFBNHNzRVUydnVCVUdvUThBSDVSZ0Jlb0puRVVYc2RTZEErYkdSQUJhT2tRUHV4K1FJRmxQR2FDdnlnTndGUjlraysrMkFBS29NQUd5UWFBZEJCR1luWWRwQUU3YzFHQmx4d25CUm9mMk8rd0FibWZxT0NZR2d4MEFNSHFBTlZZTEY5V0F2RW9Cb3NYZlB0TjRFYXNBaTBnWG9ZYnR3RUNPMlJsQlZKWHJNQWRJS3E3MkJFVW1oWlZaZEh4UFlHb0JEVWdRYXdCTFNBcXZtaVg0bnpDYVE0b1pnSkc2aXJ6STZmK0hXOEdLaUJDa1FCUVBMOEtLbFZVYWxWazJqTFlkSDJtaDFTb3cwZ0dxUlp6d0taRGttenRSSEdIRENoMlZLYmkzNks5bkN6bVROclJPdFVBSkRnRjNaME5rUXZYbHlQLzR3WFBZUVV2b0hMdzQ4QjBKai9URHVJQjVGMXUvcWNoYXJHU3F0T1p5enJwUkZ2ZGdFbjZ6Sjh2OElRSmVTZm1Ba1FBU0pDSklnTVVRNkMwblREdEd6SDliQ3crZkhId1lWQUJRakV3eWNnSkNJbUlTVVRSQzVZaUZCaHdpa29SVkNKRkVVdG1vWldqRmh4TUxoNENSSWxTWllpRlFBRWdTRlFHQnlCUktFeFdCeWVRQ1NSS1ZRYW5SRUFZckxZSEM2UEx4Q0t4QktwVEs1UXF0UWFyVTV2TUpyTUZxdk43bkM2M0I2dkR3eUJ3dUFJSkFxTndlTHdCQ0tKVEtIUzZBd21pODNoOHZoNUJnaUVJckZFS3BNcmxLSDdLa0N0MGVyMEJxUEpiTEhhN0E2bnl4MnBDMTZmSDRSZ0JNVndncVJvaHVWNGZJRlFKSlpJWlhLRlVxWFdhSFY2ZzlGa3RsaHRkb2ZUNWZaNGZYNUFtRkRHaFZUYVdFYzZueXdwOTNwakVGK2VzUTV6eGMyMTFCY1UzbDNiUVAwR0JiaVhBOWh1czhQWFBmcFB2dC8xVXNKZHdpNzhUbCtFWlpkSFNGNUxXWGZuOVV0cnBWWEt6MnMrcjdZVm5yd1c4eHBiYi93U0ZxU1hLM0F3eCtRT0tjN3IzL2xQSkVyMlhtaWk5dDVHMmFlOE01SU8wNHhJSlFTL3c0NUErTjg0Rm1tejlMaStYR3NqVElzVHViNmZZdHQ5WWQ0QjI2UWcvRld1WWdBVlZtMVJHcloyZ2hGT2FNMUhxRzJnZ0RrQUMzTWdNN1pldHlia2NMKzBDdjBMRjlwbVh0dkt3RGhOWlUyRlU2MHpkUTl6NFRBYkRRVTRnZStSdzhXUHJmTWNtSWJEVkdzbW5LYmZYSkxtWU5NRUIvZUVpU09Md2syM2ZRMDVqTGw0V1k4UXJheTFZL250WUczZ2hTREdKdHdKNzhneXpNbUNwMlNDYUlHVXk0SlZHS0FydHRYMjdhaEs4YXVwTWxKb29PSFFJZ2hpbVdFYUc1V1YvQ281MEphL2t6Q0tCZDJjMUZ4RFNaQng2QmoxRUxUNGtEUVVuaUdqbWFjekcydVB3azVnL2toQlFOWis2Y2pROTJnTzB4c3FoYkFFeWUrV2NXTHpGSGMzS0pQRDFMWHRZb0crS3hnWExMalpUWHdZT0hwK2g4WFlodlE0L2NTdHVVZW9rTFV0bk1haVRhekFXdVMwREJVeWNBNzh5V0NZb0dSNFpaUDJLSVJFeTFvWEhnaWNGTWh4N0pndDNIdTlmNzNNWjVzTG5UUFhLa25tVDVhaXd3VGpFVTdWeDYzOTRrd1lLRlpabzk5YUpBNlNuQlRJUVpjSmdHMmlPWUVzQS9MZ2ptektFUzJab3JvbGhXRE40Q1F1SnVSc0Zzd25EY1VBQVppMlRSWTdKUFhKQVlnWityd1ZKTzNUNHlBazBweUNBR3dqYUZ2d1pvMFBXQUpwbkFWTVIvSUtrTEZEM3JyRTRDWGtraDdaZG1XcTNKalJtUU9MTTRlRkljVTNWNGtEVlQ2UkVLY2tZWFBHQU5TUEJNV2xOT1FZamtJYXdoQ1hudU01cHJaQ1F3ZmRYZ3FmWmlkaEdmSnBZT3FUQS9ZMDUwMFpCNExRUmVPOFlaNm1qcTJlNlFJZHpkR0x6Ujh6aUVXU0xWUWQyTm9pWUdrUkdhTVhMQ3Qwb3E3Zk9Xb0NUYzExS2drTXR0amowakZKNnpJYzdCYWZpZkNrMHBaT2hTYnJhQW9wY0VwRzQva093eU5tRjM5TXQ1cHBUVzdqUm9COFdnUGtPYzUxckM4b0tabDYyaUtBYW1sdTREbXVCa3ZDY0N0andjTUxBbFZ6UjMydDEwQ3dUeU02QWJhZ0dsbGI0OGdVNUFDRHpVbUJDeUpxeGx4czhVNFhBeVRjVHRqV01OR2RIOUd1d1RCbWp5STNZSkZFZ3JvdmNRRFI1a0ZaME5Na21nVERaY2xjMTgzdVRjb0JETkFhaW1JRTJDd3U5T1hrbEJHUmtOdkl0TVU3elhUbFg1WnovVjhZSU8yaUsvL3hNbnB1MjJXQk5YUnlHOXZHUXVKMG1Hc2MyNi9BYWc1WVFlbFpaczVCaTJ1YnN4SFYvRHpHWFJ0M1AzS1RPdlE0SEc4YUtwbTlPeW9IbklnekcvR2tJRWVySHFFQmFZQ1E4VUpQV2JnOC92TkZEeUZ2cWtoSWU2TzZsMFdvcmRHOXBIQUF5eVRXYmhDR0hDdEJEN3ZEanpsanFSVDQrOEUyUE9nTHBBQ0hEdytFNWpxcnR5YW5IdzBBQUE9PSlmb3JtYXQoIndvZmYyIiksdXJsKC8vYXQuYWxpY2RuLmNvbS90L2MvZm9udF8yNTUzNTEwX2NpbGpjN2F4YXc3LndvZmY/dD0xNzA1NTg3NDYzMjIxKWZvcm1hdCgid29mZiIpfS52YW4taWNvbl9faW1hZ2V7b2JqZWN0LWZpdDpjb250YWluO3dpZHRoOjFlbTtoZWlnaHQ6MWVtO2Rpc3BsYXk6YmxvY2t9OnJvb3QsOmhvc3R7LS12YW4tc2tlbGV0b24taW1hZ2Utc2l6ZTo5NnB4Oy0tdmFuLXNrZWxldG9uLWltYWdlLXJhZGl1czoyNHB4fS52YW4tc2tlbGV0b24taW1hZ2V7d2lkdGg6dmFyKC0tdmFuLXNrZWxldG9uLWltYWdlLXNpemUpO2hlaWdodDp2YXIoLS12YW4tc2tlbGV0b24taW1hZ2Utc2l6ZSk7YmFja2dyb3VuZDp2YXIoLS12YW4tYWN0aXZlLWNvbG9yKTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LnZhbi1za2VsZXRvbi1pbWFnZS0tcm91bmR7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tc2tlbGV0b24taW1hZ2UtcmFkaXVzKX0udmFuLXNrZWxldG9uLWltYWdlX19pY29ue3dpZHRoOmNhbGModmFyKC0tdmFuLXNrZWxldG9uLWltYWdlLXNpemUpIC8gMik7aGVpZ2h0OmNhbGModmFyKC0tdmFuLXNrZWxldG9uLWltYWdlLXNpemUpIC8gMik7Zm9udC1zaXplOmNhbGModmFyKC0tdmFuLXNrZWxldG9uLWltYWdlLXNpemUpIC8gMik7Y29sb3I6dmFyKC0tdmFuLWdyYXktNSl9OnJvb3QsOmhvc3R7LS12YW4tcmF0ZS1pY29uLXNpemU6MjBweDstLXZhbi1yYXRlLWljb24tZ3V0dGVyOnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpOy0tdmFuLXJhdGUtaWNvbi12b2lkLWNvbG9yOnZhcigtLXZhbi1ncmF5LTUpOy0tdmFuLXJhdGUtaWNvbi1mdWxsLWNvbG9yOnZhcigtLXZhbi1kYW5nZXItY29sb3IpOy0tdmFuLXJhdGUtaWNvbi1kaXNhYmxlZC1jb2xvcjp2YXIoLS12YW4tZ3JheS01KX0udmFuLXJhdGV7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7ZmxleC13cmFwOndyYXA7ZGlzcGxheTppbmxpbmUtZmxleH0udmFuLXJhdGVfX2l0ZW17cG9zaXRpb246cmVsYXRpdmV9LnZhbi1yYXRlX19pdGVtOm5vdCg6bGFzdC1jaGlsZCl7cGFkZGluZy1yaWdodDp2YXIoLS12YW4tcmF0ZS1pY29uLWd1dHRlcil9LnZhbi1yYXRlX19pY29ue3dpZHRoOjFlbTtjb2xvcjp2YXIoLS12YW4tcmF0ZS1pY29uLXZvaWQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tcmF0ZS1pY29uLXNpemUpO2Rpc3BsYXk6YmxvY2t9LnZhbi1yYXRlX19pY29uLS1oYWxme3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO292ZXJmbG93OmhpZGRlbn0udmFuLXJhdGVfX2ljb24tLWZ1bGx7Y29sb3I6dmFyKC0tdmFuLXJhdGUtaWNvbi1mdWxsLWNvbG9yKX0udmFuLXJhdGVfX2ljb24tLWRpc2FibGVke2NvbG9yOnZhcigtLXZhbi1yYXRlLWljb24tZGlzYWJsZWQtY29sb3IpfS52YW4tcmF0ZS0tZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tcmF0ZS0tcmVhZG9ubHl7Y3Vyc29yOmRlZmF1bHR9OnJvb3QsOmhvc3R7LS12YW4tbm90aWNlLWJhci1oZWlnaHQ6NDBweDstLXZhbi1ub3RpY2UtYmFyLXBhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tbm90aWNlLWJhci13cmFwYWJsZS1wYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLXhzKSB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tbm90aWNlLWJhci10ZXh0LWNvbG9yOnZhcigtLXZhbi1vcmFuZ2UtZGFyayk7LS12YW4tbm90aWNlLWJhci1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tbm90aWNlLWJhci1saW5lLWhlaWdodDoyNHB4Oy0tdmFuLW5vdGljZS1iYXItYmFja2dyb3VuZDp2YXIoLS12YW4tb3JhbmdlLWxpZ2h0KTstLXZhbi1ub3RpY2UtYmFyLWljb24tc2l6ZToxNnB4Oy0tdmFuLW5vdGljZS1iYXItaWNvbi1taW4td2lkdGg6MjRweH0udmFuLW5vdGljZS1iYXJ7aGVpZ2h0OnZhcigtLXZhbi1ub3RpY2UtYmFyLWhlaWdodCk7cGFkZGluZzp2YXIoLS12YW4tbm90aWNlLWJhci1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tbm90aWNlLWJhci10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLW5vdGljZS1iYXItZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tbm90aWNlLWJhci1saW5lLWhlaWdodCk7YmFja2dyb3VuZDp2YXIoLS12YW4tbm90aWNlLWJhci1iYWNrZ3JvdW5kKTthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4tbm90aWNlLWJhcl9fbGVmdC1pY29uLC52YW4tbm90aWNlLWJhcl9fcmlnaHQtaWNvbnttaW4td2lkdGg6dmFyKC0tdmFuLW5vdGljZS1iYXItaWNvbi1taW4td2lkdGgpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tbm90aWNlLWJhci1pY29uLXNpemUpfS52YW4tbm90aWNlLWJhcl9fcmlnaHQtaWNvbnt0ZXh0LWFsaWduOnJpZ2h0O2N1cnNvcjpwb2ludGVyfS52YW4tbm90aWNlLWJhcl9fd3JhcHtmbGV4OjE7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59LnZhbi1ub3RpY2UtYmFyX19jb250ZW50e3doaXRlLXNwYWNlOm5vd3JhcDt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7cG9zaXRpb246YWJzb2x1dGV9LnZhbi1ub3RpY2UtYmFyX19jb250ZW50LnZhbi1lbGxpcHNpc3ttYXgtd2lkdGg6MTAwJX0udmFuLW5vdGljZS1iYXItLXdyYXBhYmxle2hlaWdodDphdXRvO3BhZGRpbmc6dmFyKC0tdmFuLW5vdGljZS1iYXItd3JhcGFibGUtcGFkZGluZyl9LnZhbi1ub3RpY2UtYmFyLS13cmFwYWJsZSAudmFuLW5vdGljZS1iYXJfX3dyYXB7aGVpZ2h0OmF1dG99LnZhbi1ub3RpY2UtYmFyLS13cmFwYWJsZSAudmFuLW5vdGljZS1iYXJfX2NvbnRlbnR7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtd3JhcDpicmVhay13b3JkO3Bvc2l0aW9uOnJlbGF0aXZlfTpyb290LDpob3N0ey0tdmFuLW5hdi1iYXItaGVpZ2h0OjQ2cHg7LS12YW4tbmF2LWJhci1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLW5hdi1iYXItYXJyb3ctc2l6ZToxNnB4Oy0tdmFuLW5hdi1iYXItaWNvbi1jb2xvcjp2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tbmF2LWJhci10ZXh0LWNvbG9yOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1uYXYtYmFyLXRpdGxlLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLWxnKTstLXZhbi1uYXYtYmFyLXRpdGxlLXRleHQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLW5hdi1iYXItei1pbmRleDoxOy0tdmFuLW5hdi1iYXItZGlzYWJsZWQtb3BhY2l0eTp2YXIoLS12YW4tZGlzYWJsZWQtb3BhY2l0eSl9LnZhbi1uYXYtYmFye3otaW5kZXg6dmFyKC0tdmFuLW5hdi1iYXItei1pbmRleCk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWxpbmUtaGVpZ2h0LWxnKTt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLXZhbi1uYXYtYmFyLWJhY2tncm91bmQpOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4tbmF2LWJhci0tZml4ZWR7d2lkdGg6MTAwJTtwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjB9LnZhbi1uYXYtYmFyLS1zYWZlLWFyZWEtaW5zZXQtdG9we3BhZGRpbmctdG9wOmNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC10b3ApO3BhZGRpbmctdG9wOmVudihzYWZlLWFyZWEtaW5zZXQtdG9wKX0udmFuLW5hdi1iYXIgLnZhbi1pY29ue2NvbG9yOnZhcigtLXZhbi1uYXYtYmFyLWljb24tY29sb3IpfS52YW4tbmF2LWJhcl9fY29udGVudHtoZWlnaHQ6dmFyKC0tdmFuLW5hdi1iYXItaGVpZ2h0KTthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4tbmF2LWJhcl9fYXJyb3d7bWFyZ2luLXJpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tbmF2LWJhci1hcnJvdy1zaXplKX0udmFuLW5hdi1iYXJfX3RpdGxle21heC13aWR0aDo2MCU7Y29sb3I6dmFyKC0tdmFuLW5hdi1iYXItdGl0bGUtdGV4dC1jb2xvcik7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCk7Zm9udC1zaXplOnZhcigtLXZhbi1uYXYtYmFyLXRpdGxlLWZvbnQtc2l6ZSk7bWFyZ2luOjAgYXV0b30udmFuLW5hdi1iYXJfX2xlZnQsLnZhbi1uYXYtYmFyX19yaWdodHtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctbWQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowfS52YW4tbmF2LWJhcl9fbGVmdC0tZGlzYWJsZWQsLnZhbi1uYXYtYmFyX19yaWdodC0tZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6dmFyKC0tdmFuLW5hdi1iYXItZGlzYWJsZWQtb3BhY2l0eSl9LnZhbi1uYXYtYmFyX19sZWZ0e2xlZnQ6MH0udmFuLW5hdi1iYXJfX3JpZ2h0e3JpZ2h0OjB9LnZhbi1uYXYtYmFyX190ZXh0e2NvbG9yOnZhcigtLXZhbi1uYXYtYmFyLXRleHQtY29sb3IpfTpyb290LDpob3N0ey0tdmFuLWZsb2F0aW5nLWJ1YmJsZS1zaXplOjQ4cHg7LS12YW4tZmxvYXRpbmctYnViYmxlLWluaXRpYWwtZ2FwOjI0cHg7LS12YW4tZmxvYXRpbmctYnViYmxlLWljb24tc2l6ZToyOHB4Oy0tdmFuLWZsb2F0aW5nLWJ1YmJsZS1iYWNrZ3JvdW5kOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1mbG9hdGluZy1idWJibGUtY29sb3I6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tZmxvYXRpbmctYnViYmxlLXotaW5kZXg6OTk5Oy0tdmFuLWZsb2F0aW5nLWJ1YmJsZS1ib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWF4KX0udmFuLWZsb2F0aW5nLWJ1YmJsZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6dmFyKC0tdmFuLWZsb2F0aW5nLWJ1YmJsZS1pbml0aWFsLWdhcCk7Ym90dG9tOnZhcigtLXZhbi1mbG9hdGluZy1idWJibGUtaW5pdGlhbC1nYXApO3dpZHRoOnZhcigtLXZhbi1mbG9hdGluZy1idWJibGUtc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1mbG9hdGluZy1idWJibGUtc2l6ZSk7Ym94LXNpemluZzpib3JkZXItYm94O2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3RvdWNoLWFjdGlvbjpub25lO2JhY2tncm91bmQ6dmFyKC0tdmFuLWZsb2F0aW5nLWJ1YmJsZS1iYWNrZ3JvdW5kKTtjb2xvcjp2YXIoLS12YW4tZmxvYXRpbmctYnViYmxlLWNvbG9yKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1mbG9hdGluZy1idWJibGUtYm9yZGVyLXJhZGl1cyk7ei1pbmRleDp2YXIoLS12YW4tZmxvYXRpbmctYnViYmxlLXotaW5kZXgpO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7cG9zaXRpb246Zml4ZWQ7b3ZlcmZsb3c6aGlkZGVufS52YW4tZmxvYXRpbmctYnViYmxlOmFjdGl2ZXtvcGFjaXR5Oi44fS52YW4tZmxvYXRpbmctYnViYmxlX19pY29ue2ZvbnQtc2l6ZTp2YXIoLS12YW4tZmxvYXRpbmctYnViYmxlLWljb24tc2l6ZSl9OnJvb3QsOmhvc3R7LS12YW4taW1hZ2UtcGxhY2Vob2xkZXItdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvci0yKTstLXZhbi1pbWFnZS1wbGFjZWhvbGRlci1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4taW1hZ2UtcGxhY2Vob2xkZXItYmFja2dyb3VuZDp2YXIoLS12YW4tYmFja2dyb3VuZCk7LS12YW4taW1hZ2UtbG9hZGluZy1pY29uLXNpemU6MzJweDstLXZhbi1pbWFnZS1sb2FkaW5nLWljb24tY29sb3I6dmFyKC0tdmFuLWdyYXktNCk7LS12YW4taW1hZ2UtZXJyb3ItaWNvbi1zaXplOjMycHg7LS12YW4taW1hZ2UtZXJyb3ItaWNvbi1jb2xvcjp2YXIoLS12YW4tZ3JheS00KX0udmFuLWltYWdle2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4taW1hZ2UtLXJvdW5ke2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tYXgpO292ZXJmbG93OmhpZGRlbn0udmFuLWltYWdlLS1yb3VuZCAudmFuLWltYWdlX19pbWd7Ym9yZGVyLXJhZGl1czppbmhlcml0fS52YW4taW1hZ2UtLWJsb2Nre2Rpc3BsYXk6YmxvY2t9LnZhbi1pbWFnZV9faW1nLC52YW4taW1hZ2VfX2Vycm9yLC52YW4taW1hZ2VfX2xvYWRpbmd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmJsb2NrfS52YW4taW1hZ2VfX2Vycm9yLC52YW4taW1hZ2VfX2xvYWRpbmd7Y29sb3I6dmFyKC0tdmFuLWltYWdlLXBsYWNlaG9sZGVyLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4taW1hZ2UtcGxhY2Vob2xkZXItZm9udC1zaXplKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1pbWFnZS1wbGFjZWhvbGRlci1iYWNrZ3JvdW5kKTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MH0udmFuLWltYWdlX19sb2FkaW5nLWljb257Y29sb3I6dmFyKC0tdmFuLWltYWdlLWxvYWRpbmctaWNvbi1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1pbWFnZS1sb2FkaW5nLWljb24tc2l6ZSl9LnZhbi1pbWFnZV9fZXJyb3ItaWNvbntjb2xvcjp2YXIoLS12YW4taW1hZ2UtZXJyb3ItaWNvbi1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1pbWFnZS1lcnJvci1pY29uLXNpemUpfTpyb290LDpob3N0ey0tdmFuLWJhY2stdG9wLXNpemU6NDBweDstLXZhbi1iYWNrLXRvcC1yaWdodDozMHB4Oy0tdmFuLWJhY2stdG9wLWJvdHRvbTo0MHB4Oy0tdmFuLWJhY2stdG9wLXotaW5kZXg6MTAwOy0tdmFuLWJhY2stdG9wLWljb24tc2l6ZToyMHB4Oy0tdmFuLWJhY2stdG9wLXRleHQtY29sb3I6I2ZmZjstLXZhbi1iYWNrLXRvcC1iYWNrZ3JvdW5kOnZhcigtLXZhbi1ibHVlKX0udmFuLWJhY2stdG9we3dpZHRoOnZhcigtLXZhbi1iYWNrLXRvcC1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLWJhY2stdG9wLXNpemUpO3JpZ2h0OnZhcigtLXZhbi1iYWNrLXRvcC1yaWdodCk7Ym90dG9tOnZhcigtLXZhbi1iYWNrLXRvcC1ib3R0b20pO3otaW5kZXg6dmFyKC0tdmFuLWJhY2stdG9wLXotaW5kZXgpO2N1cnNvcjpwb2ludGVyO2NvbG9yOnZhcigtLXZhbi1iYWNrLXRvcC10ZXh0LWNvbG9yKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWF4KTt0cmFuc2l0aW9uOnZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKSBjdWJpYy1iZXppZXIoLjI1LC44LC41LDEpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWJhY2stdG9wLWJhY2tncm91bmQpO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpmaXhlZDt0cmFuc2Zvcm06c2NhbGUoMCk7Ym94LXNoYWRvdzowIDJweCA4cHggIzAwMDAwMDFmfS52YW4tYmFjay10b3A6YWN0aXZle29wYWNpdHk6dmFyKC0tdmFuLWFjdGl2ZS1vcGFjaXR5KX0udmFuLWJhY2stdG9wX19wbGFjZWhvbGRlcntkaXNwbGF5Om5vbmV9LnZhbi1iYWNrLXRvcC0tYWN0aXZle3RyYW5zZm9ybTpzY2FsZSgxKX0udmFuLWJhY2stdG9wX19pY29ue2ZvbnQtc2l6ZTp2YXIoLS12YW4tYmFjay10b3AtaWNvbi1zaXplKTtmb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKX06cm9vdCw6aG9zdHstLXZhbi10YWctcGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLWJhc2UpOy0tdmFuLXRhZy10ZXh0LWNvbG9yOnZhcigtLXZhbi13aGl0ZSk7LS12YW4tdGFnLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLXNtKTstLXZhbi10YWctcmFkaXVzOjJweDstLXZhbi10YWctbGluZS1oZWlnaHQ6MTZweDstLXZhbi10YWctbWVkaXVtLXBhZGRpbmc6MnB4IDZweDstLXZhbi10YWctbGFyZ2UtcGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy1iYXNlKSB2YXIoLS12YW4tcGFkZGluZy14cyk7LS12YW4tdGFnLWxhcmdlLXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLW1kKTstLXZhbi10YWctbGFyZ2UtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLXRhZy1yb3VuZC1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tYXgpOy0tdmFuLXRhZy1kYW5nZXItY29sb3I6dmFyKC0tdmFuLWRhbmdlci1jb2xvcik7LS12YW4tdGFnLXByaW1hcnktY29sb3I6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLXRhZy1zdWNjZXNzLWNvbG9yOnZhcigtLXZhbi1zdWNjZXNzLWNvbG9yKTstLXZhbi10YWctd2FybmluZy1jb2xvcjp2YXIoLS12YW4td2FybmluZy1jb2xvcik7LS12YW4tdGFnLWRlZmF1bHQtY29sb3I6dmFyKC0tdmFuLWdyYXktNik7LS12YW4tdGFnLXBsYWluLWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQtMil9LnZhbi10YWd7cGFkZGluZzp2YXIoLS12YW4tdGFnLXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi10YWctdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi10YWctZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tdGFnLWxpbmUtaGVpZ2h0KTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi10YWctcmFkaXVzKTthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLXRhZy0tZGVmYXVsdHtiYWNrZ3JvdW5kOnZhcigtLXZhbi10YWctZGVmYXVsdC1jb2xvcil9LnZhbi10YWctLWRlZmF1bHQudmFuLXRhZy0tcGxhaW57Y29sb3I6dmFyKC0tdmFuLXRhZy1kZWZhdWx0LWNvbG9yKX0udmFuLXRhZy0tZGFuZ2Vye2JhY2tncm91bmQ6dmFyKC0tdmFuLXRhZy1kYW5nZXItY29sb3IpfS52YW4tdGFnLS1kYW5nZXIudmFuLXRhZy0tcGxhaW57Y29sb3I6dmFyKC0tdmFuLXRhZy1kYW5nZXItY29sb3IpfS52YW4tdGFnLS1wcmltYXJ5e2JhY2tncm91bmQ6dmFyKC0tdmFuLXRhZy1wcmltYXJ5LWNvbG9yKX0udmFuLXRhZy0tcHJpbWFyeS52YW4tdGFnLS1wbGFpbntjb2xvcjp2YXIoLS12YW4tdGFnLXByaW1hcnktY29sb3IpfS52YW4tdGFnLS1zdWNjZXNze2JhY2tncm91bmQ6dmFyKC0tdmFuLXRhZy1zdWNjZXNzLWNvbG9yKX0udmFuLXRhZy0tc3VjY2Vzcy52YW4tdGFnLS1wbGFpbntjb2xvcjp2YXIoLS12YW4tdGFnLXN1Y2Nlc3MtY29sb3IpfS52YW4tdGFnLS13YXJuaW5ne2JhY2tncm91bmQ6dmFyKC0tdmFuLXRhZy13YXJuaW5nLWNvbG9yKX0udmFuLXRhZy0td2FybmluZy52YW4tdGFnLS1wbGFpbntjb2xvcjp2YXIoLS12YW4tdGFnLXdhcm5pbmctY29sb3IpfS52YW4tdGFnLS1wbGFpbntiYWNrZ3JvdW5kOnZhcigtLXZhbi10YWctcGxhaW4tYmFja2dyb3VuZCk7Ym9yZGVyLWNvbG9yOmN1cnJlbnRDb2xvcn0udmFuLXRhZy0tcGxhaW46YmVmb3Jle2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXJhZGl1czppbmhlcml0O2NvbnRlbnQ6IiI7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowfS52YW4tdGFnLS1tZWRpdW17cGFkZGluZzp2YXIoLS12YW4tdGFnLW1lZGl1bS1wYWRkaW5nKX0udmFuLXRhZy0tbGFyZ2V7cGFkZGluZzp2YXIoLS12YW4tdGFnLWxhcmdlLXBhZGRpbmcpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tdGFnLWxhcmdlLWZvbnQtc2l6ZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tdGFnLWxhcmdlLXJhZGl1cyl9LnZhbi10YWctLW1hcmt7Ym9yZGVyLXJhZGl1czowIHZhcigtLXZhbi10YWctcm91bmQtcmFkaXVzKSB2YXIoLS12YW4tdGFnLXJvdW5kLXJhZGl1cykgMH0udmFuLXRhZy0tbWFyazphZnRlcntjb250ZW50OiIiO3dpZHRoOjJweDtkaXNwbGF5OmJsb2NrfS52YW4tdGFnLS1yb3VuZHtib3JkZXItcmFkaXVzOnZhcigtLXZhbi10YWctcm91bmQtcmFkaXVzKX0udmFuLXRhZ19fY2xvc2V7bWFyZ2luLWxlZnQ6MnB4fTpyb290LDpob3N0ey0tdmFuLWNhcmQtcGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy14cykgdmFyKC0tdmFuLXBhZGRpbmctbWQpOy0tdmFuLWNhcmQtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLWNhcmQtdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tY2FyZC1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kKTstLXZhbi1jYXJkLXRodW1iLXNpemU6ODhweDstLXZhbi1jYXJkLXRodW1iLXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLWxnKTstLXZhbi1jYXJkLXRpdGxlLWxpbmUtaGVpZ2h0OjE2cHg7LS12YW4tY2FyZC1kZXNjLWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWNhcmQtZGVzYy1saW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpOy0tdmFuLWNhcmQtcHJpY2UtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLWNhcmQtb3JpZ2luLXByaWNlLWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWNhcmQtbnVtLWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWNhcmQtb3JpZ2luLXByaWNlLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLXhzKTstLXZhbi1jYXJkLXByaWNlLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLXNtKTstLXZhbi1jYXJkLXByaWNlLWludGVnZXItZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLWNhcmQtcHJpY2UtZm9udDp2YXIoLS12YW4tcHJpY2UtZm9udCl9LnZhbi1jYXJke2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOnZhcigtLXZhbi1jYXJkLXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi1jYXJkLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2FyZC1mb250LXNpemUpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWNhcmQtYmFja2dyb3VuZCk7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1jYXJkOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmcteHMpfS52YW4tY2FyZF9faGVhZGVye2Rpc3BsYXk6ZmxleH0udmFuLWNhcmRfX3RodW1ie3dpZHRoOnZhcigtLXZhbi1jYXJkLXRodW1iLXNpemUpO2hlaWdodDp2YXIoLS12YW4tY2FyZC10aHVtYi1zaXplKTttYXJnaW4tcmlnaHQ6dmFyKC0tdmFuLXBhZGRpbmcteHMpO2ZsZXg6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLWNhcmRfX3RodW1iIGltZ3tib3JkZXItcmFkaXVzOnZhcigtLXZhbi1jYXJkLXRodW1iLXJhZGl1cyl9LnZhbi1jYXJkX19jb250ZW50e21pbi13aWR0aDowO21pbi1oZWlnaHQ6dmFyKC0tdmFuLWNhcmQtdGh1bWItc2l6ZSk7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1jYXJkX19jb250ZW50LS1jZW50ZXJlZHtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS52YW4tY2FyZF9fdGl0bGUsLnZhbi1jYXJkX19kZXNje3dvcmQtd3JhcDpicmVhay13b3JkfS52YW4tY2FyZF9fdGl0bGV7bWF4LWhlaWdodDozMnB4O2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1jYXJkLXRpdGxlLWxpbmUtaGVpZ2h0KX0udmFuLWNhcmRfX2Rlc2N7bWF4LWhlaWdodDp2YXIoLS12YW4tY2FyZC1kZXNjLWxpbmUtaGVpZ2h0KTtjb2xvcjp2YXIoLS12YW4tY2FyZC1kZXNjLWNvbG9yKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tY2FyZC1kZXNjLWxpbmUtaGVpZ2h0KX0udmFuLWNhcmRfX2JvdHRvbXtsaW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpfS52YW4tY2FyZF9fcHJpY2V7Y29sb3I6dmFyKC0tdmFuLWNhcmQtcHJpY2UtY29sb3IpO2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2FyZC1wcmljZS1mb250LXNpemUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS52YW4tY2FyZF9fcHJpY2UtaW50ZWdlcntmb250LXNpemU6dmFyKC0tdmFuLWNhcmQtcHJpY2UtaW50ZWdlci1mb250LXNpemUpO2ZvbnQtZmFtaWx5OnZhcigtLXZhbi1jYXJkLXByaWNlLWZvbnQpfS52YW4tY2FyZF9fcHJpY2UtZGVjaW1hbHtmb250LWZhbWlseTp2YXIoLS12YW4tY2FyZC1wcmljZS1mb250KX0udmFuLWNhcmRfX29yaWdpbi1wcmljZXtjb2xvcjp2YXIoLS12YW4tY2FyZC1vcmlnaW4tcHJpY2UtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2FyZC1vcmlnaW4tcHJpY2UtZm9udC1zaXplKTttYXJnaW4tbGVmdDo1cHg7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaDtkaXNwbGF5OmlubGluZS1ibG9ja30udmFuLWNhcmRfX251bXtmbG9hdDpyaWdodDtjb2xvcjp2YXIoLS12YW4tY2FyZC1udW0tY29sb3IpfS52YW4tY2FyZF9fdGFne3Bvc2l0aW9uOmFic29sdXRlO3RvcDoycHg7bGVmdDowfS52YW4tY2FyZF9fZm9vdGVye3RleHQtYWxpZ246cmlnaHQ7ZmxleDpub25lfS52YW4tY2FyZF9fZm9vdGVyIC52YW4tYnV0dG9ue21hcmdpbi1sZWZ0OjVweH06cm9vdCw6aG9zdHstLXZhbi1jZWxsLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1jZWxsLWxpbmUtaGVpZ2h0OjI0cHg7LS12YW4tY2VsbC12ZXJ0aWNhbC1wYWRkaW5nOjEwcHg7LS12YW4tY2VsbC1ob3Jpem9udGFsLXBhZGRpbmc6dmFyKC0tdmFuLXBhZGRpbmctbWQpOy0tdmFuLWNlbGwtdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tY2VsbC1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLWNlbGwtYm9yZGVyLWNvbG9yOnZhcigtLXZhbi1ib3JkZXItY29sb3IpOy0tdmFuLWNlbGwtYWN0aXZlLWNvbG9yOnZhcigtLXZhbi1hY3RpdmUtY29sb3IpOy0tdmFuLWNlbGwtcmVxdWlyZWQtY29sb3I6dmFyKC0tdmFuLWRhbmdlci1jb2xvcik7LS12YW4tY2VsbC1sYWJlbC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvci0yKTstLXZhbi1jZWxsLWxhYmVsLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLXNtKTstLXZhbi1jZWxsLWxhYmVsLWxpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1zbSk7LS12YW4tY2VsbC1sYWJlbC1tYXJnaW4tdG9wOnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpOy0tdmFuLWNlbGwtdmFsdWUtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tY2VsbC12YWx1ZS1mb250LXNpemU6aW5oZXJpdDstLXZhbi1jZWxsLWljb24tc2l6ZToxNnB4Oy0tdmFuLWNlbGwtcmlnaHQtaWNvbi1jb2xvcjp2YXIoLS12YW4tZ3JheS02KTstLXZhbi1jZWxsLWxhcmdlLXZlcnRpY2FsLXBhZGRpbmc6dmFyKC0tdmFuLXBhZGRpbmctc20pOy0tdmFuLWNlbGwtbGFyZ2UtdGl0bGUtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLWNlbGwtbGFyZ2UtbGFiZWwtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLWNlbGwtbGFyZ2UtdmFsdWUtZm9udC1zaXplOmluaGVyaXR9LnZhbi1jZWxse2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO3BhZGRpbmc6dmFyKC0tdmFuLWNlbGwtdmVydGljYWwtcGFkZGluZykgdmFyKC0tdmFuLWNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tY2VsbC10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWNlbGwtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tY2VsbC1saW5lLWhlaWdodCk7YmFja2dyb3VuZDp2YXIoLS12YW4tY2VsbC1iYWNrZ3JvdW5kKTtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS52YW4tY2VsbDphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiICI7cG9pbnRlci1ldmVudHM6bm9uZTtyaWdodDp2YXIoLS12YW4tcGFkZGluZy1tZCk7Ym90dG9tOjA7bGVmdDp2YXIoLS12YW4tcGFkZGluZy1tZCk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tdmFuLWNlbGwtYm9yZGVyLWNvbG9yKTtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm06c2NhbGVZKC41KX0udmFuLWNlbGw6bGFzdC1jaGlsZDphZnRlciwudmFuLWNlbGwtLWJvcmRlcmxlc3M6YWZ0ZXJ7ZGlzcGxheTpub25lfS52YW4tY2VsbF9fbGFiZWx7bWFyZ2luLXRvcDp2YXIoLS12YW4tY2VsbC1sYWJlbC1tYXJnaW4tdG9wKTtjb2xvcjp2YXIoLS12YW4tY2VsbC1sYWJlbC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1jZWxsLWxhYmVsLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNlbGwtbGFiZWwtbGluZS1oZWlnaHQpfS52YW4tY2VsbF9fdGl0bGUsLnZhbi1jZWxsX192YWx1ZXtmbGV4OjF9LnZhbi1jZWxsX192YWx1ZXtjb2xvcjp2YXIoLS12YW4tY2VsbC12YWx1ZS1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1jZWxsLXZhbHVlLWZvbnQtc2l6ZSk7dGV4dC1hbGlnbjpyaWdodDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d29yZC13cmFwOmJyZWFrLXdvcmQ7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS52YW4tY2VsbF9fbGVmdC1pY29uLC52YW4tY2VsbF9fcmlnaHQtaWNvbntoZWlnaHQ6dmFyKC0tdmFuLWNlbGwtbGluZS1oZWlnaHQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2VsbC1pY29uLXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1jZWxsLWxpbmUtaGVpZ2h0KX0udmFuLWNlbGxfX2xlZnQtaWNvbnttYXJnaW4tcmlnaHQ6dmFyKC0tdmFuLXBhZGRpbmctYmFzZSl9LnZhbi1jZWxsX19yaWdodC1pY29ue21hcmdpbi1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpO2NvbG9yOnZhcigtLXZhbi1jZWxsLXJpZ2h0LWljb24tY29sb3IpfS52YW4tY2VsbC0tY2xpY2thYmxle2N1cnNvcjpwb2ludGVyfS52YW4tY2VsbC0tY2xpY2thYmxlOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1jZWxsLWFjdGl2ZS1jb2xvcil9LnZhbi1jZWxsLS1yZXF1aXJlZHtvdmVyZmxvdzp2aXNpYmxlfS52YW4tY2VsbC0tcmVxdWlyZWQ6YmVmb3Jle2xlZnQ6dmFyKC0tdmFuLXBhZGRpbmcteHMpO2NvbG9yOnZhcigtLXZhbi1jZWxsLXJlcXVpcmVkLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWNlbGwtZm9udC1zaXplKTtjb250ZW50OiIqIjtwb3NpdGlvbjphYnNvbHV0ZX0udmFuLWNlbGwtLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXJ9LnZhbi1jZWxsLS1sYXJnZXtwYWRkaW5nLXRvcDp2YXIoLS12YW4tY2VsbC1sYXJnZS12ZXJ0aWNhbC1wYWRkaW5nKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS12YW4tY2VsbC1sYXJnZS12ZXJ0aWNhbC1wYWRkaW5nKX0udmFuLWNlbGwtLWxhcmdlIC52YW4tY2VsbF9fdGl0bGV7Zm9udC1zaXplOnZhcigtLXZhbi1jZWxsLWxhcmdlLXRpdGxlLWZvbnQtc2l6ZSl9LnZhbi1jZWxsLS1sYXJnZSAudmFuLWNlbGxfX2xhYmVse2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2VsbC1sYXJnZS1sYWJlbC1mb250LXNpemUpfS52YW4tY2VsbC0tbGFyZ2UgLnZhbi1jZWxsX192YWx1ZXtmb250LXNpemU6dmFyKC0tdmFuLWNlbGwtbGFyZ2UtdmFsdWUtZm9udC1zaXplKX06cm9vdCw6aG9zdHstLXZhbi1jb3Vwb24tY2VsbC1zZWxlY3RlZC10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKX0udmFuLWNvdXBvbi1jZWxsX192YWx1ZS0tc2VsZWN0ZWR7Y29sb3I6dmFyKC0tdmFuLWNvdXBvbi1jZWxsLXNlbGVjdGVkLXRleHQtY29sb3IpfTpyb290LDpob3N0ey0tdmFuLWNvbnRhY3QtY2FyZC1wYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLW1kKTstLXZhbi1jb250YWN0LWNhcmQtYWRkLWljb24tc2l6ZTo0MHB4Oy0tdmFuLWNvbnRhY3QtY2FyZC1hZGQtaWNvbi1jb2xvcjp2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tY29udGFjdC1jYXJkLXRpdGxlLWxpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1tZCl9LnZhbi1jb250YWN0LWNhcmR7cGFkZGluZzp2YXIoLS12YW4tY29udGFjdC1jYXJkLXBhZGRpbmcpfS52YW4tY29udGFjdC1jYXJkX190aXRsZXtsaW5lLWhlaWdodDp2YXIoLS12YW4tY29udGFjdC1jYXJkLXRpdGxlLWxpbmUtaGVpZ2h0KTttYXJnaW4tbGVmdDo1cHh9LnZhbi1jb250YWN0LWNhcmQtLWFkZCAudmFuLWNvbnRhY3QtY2FyZF9fdmFsdWV7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNvbnRhY3QtY2FyZC1hZGQtaWNvbi1zaXplKX0udmFuLWNvbnRhY3QtY2FyZC0tYWRkIC52YW4tY2VsbF9fbGVmdC1pY29ue2NvbG9yOnZhcigtLXZhbi1jb250YWN0LWNhcmQtYWRkLWljb24tY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY29udGFjdC1jYXJkLWFkZC1pY29uLXNpemUpfS52YW4tY29udGFjdC1jYXJkOmJlZm9yZXtiYWNrZ3JvdW5kOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLHZhcigtLXZhbi13YXJuaW5nLWNvbG9yKSAwLHZhcigtLXZhbi13YXJuaW5nLWNvbG9yKSAyMCUsdHJhbnNwYXJlbnQgMCx0cmFuc3BhcmVudCAyNSUsdmFyKC0tdmFuLXByaW1hcnktY29sb3IpIDAsdmFyKC0tdmFuLXByaW1hcnktY29sb3IpIDQ1JSx0cmFuc3BhcmVudCAwLHRyYW5zcGFyZW50IDUwJSk7Y29udGVudDoiIjtiYWNrZ3JvdW5kLXNpemU6ODBweDtoZWlnaHQ6MnB4O3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowfTpyb290LDpob3N0ey0tdmFuLWNvbGxhcHNlLWl0ZW0tZHVyYXRpb246dmFyKC0tdmFuLWR1cmF0aW9uLWJhc2UpOy0tdmFuLWNvbGxhcHNlLWl0ZW0tY29udGVudC1wYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLXNtKSB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tY29sbGFwc2UtaXRlbS1jb250ZW50LWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1jb2xsYXBzZS1pdGVtLWNvbnRlbnQtbGluZS1oZWlnaHQ6MS41Oy0tdmFuLWNvbGxhcHNlLWl0ZW0tY29udGVudC10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWNvbGxhcHNlLWl0ZW0tY29udGVudC1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLWNvbGxhcHNlLWl0ZW0tdGl0bGUtZGlzYWJsZWQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMyl9LnZhbi1jb2xsYXBzZS1pdGVte3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4tY29sbGFwc2UtaXRlbS0tYm9yZGVyOmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIgIjtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO3JpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtsZWZ0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS12YW4tYm9yZGVyLWNvbG9yKTtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm06c2NhbGVZKC41KX0udmFuLWNvbGxhcHNlLWl0ZW1fX3RpdGxlIC52YW4tY2VsbF9fcmlnaHQtaWNvbjpiZWZvcmV7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gdmFyKC0tdmFuLWNvbGxhcHNlLWl0ZW0tZHVyYXRpb24pO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpdHJhbnNsYXRlWigwKX0udmFuLWNvbGxhcHNlLWl0ZW1fX3RpdGxlOmFmdGVye3JpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtkaXNwbGF5Om5vbmV9LnZhbi1jb2xsYXBzZS1pdGVtX190aXRsZS0tZXhwYW5kZWQgLnZhbi1jZWxsX19yaWdodC1pY29uOmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyl9LnZhbi1jb2xsYXBzZS1pdGVtX190aXRsZS0tZXhwYW5kZWQ6YWZ0ZXJ7ZGlzcGxheTpibG9ja30udmFuLWNvbGxhcHNlLWl0ZW1fX3RpdGxlLS1ib3JkZXJsZXNzOmFmdGVye2Rpc3BsYXk6bm9uZX0udmFuLWNvbGxhcHNlLWl0ZW1fX3RpdGxlLS1kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi1jb2xsYXBzZS1pdGVtX190aXRsZS0tZGlzYWJsZWQsLnZhbi1jb2xsYXBzZS1pdGVtX190aXRsZS0tZGlzYWJsZWQgLnZhbi1jZWxsX19yaWdodC1pY29ue2NvbG9yOnZhcigtLXZhbi1jb2xsYXBzZS1pdGVtLXRpdGxlLWRpc2FibGVkLWNvbG9yKX0udmFuLWNvbGxhcHNlLWl0ZW1fX3dyYXBwZXJ7dHJhbnNpdGlvbjpoZWlnaHQgdmFyKC0tdmFuLWNvbGxhcHNlLWl0ZW0tZHVyYXRpb24pIGVhc2UtaW4tb3V0O3dpbGwtY2hhbmdlOmhlaWdodDtvdmVyZmxvdzpoaWRkZW59LnZhbi1jb2xsYXBzZS1pdGVtX19jb250ZW50e3BhZGRpbmc6dmFyKC0tdmFuLWNvbGxhcHNlLWl0ZW0tY29udGVudC1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tY29sbGFwc2UtaXRlbS1jb250ZW50LXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY29sbGFwc2UtaXRlbS1jb250ZW50LWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNvbGxhcHNlLWl0ZW0tY29udGVudC1saW5lLWhlaWdodCk7YmFja2dyb3VuZDp2YXIoLS12YW4tY29sbGFwc2UtaXRlbS1jb250ZW50LWJhY2tncm91bmQpfTpyb290LDpob3N0ey0tdmFuLWZpZWxkLWxhYmVsLXdpZHRoOjYuMmVtOy0tdmFuLWZpZWxkLWxhYmVsLWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1maWVsZC1sYWJlbC1tYXJnaW4tcmlnaHQ6dmFyKC0tdmFuLXBhZGRpbmctc20pOy0tdmFuLWZpZWxkLWlucHV0LXRleHQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLWZpZWxkLWlucHV0LWVycm9yLXRleHQtY29sb3I6dmFyKC0tdmFuLWRhbmdlci1jb2xvcik7LS12YW4tZmllbGQtaW5wdXQtZGlzYWJsZWQtdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvci0zKTstLXZhbi1maWVsZC1wbGFjZWhvbGRlci10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLWZpZWxkLWljb24tc2l6ZToxOHB4Oy0tdmFuLWZpZWxkLWNsZWFyLWljb24tc2l6ZToxOHB4Oy0tdmFuLWZpZWxkLWNsZWFyLWljb24tY29sb3I6dmFyKC0tdmFuLWdyYXktNSk7LS12YW4tZmllbGQtcmlnaHQtaWNvbi1jb2xvcjp2YXIoLS12YW4tZ3JheS02KTstLXZhbi1maWVsZC1lcnJvci1tZXNzYWdlLWNvbG9yOnZhcigtLXZhbi1kYW5nZXItY29sb3IpOy0tdmFuLWZpZWxkLWVycm9yLW1lc3NhZ2UtZm9udC1zaXplOjEycHg7LS12YW4tZmllbGQtdGV4dC1hcmVhLW1pbi1oZWlnaHQ6NjBweDstLXZhbi1maWVsZC13b3JkLWxpbWl0LWNvbG9yOnZhcigtLXZhbi1ncmF5LTcpOy0tdmFuLWZpZWxkLXdvcmQtbGltaXQtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLWZpZWxkLXdvcmQtbGltaXQtbGluZS1oZWlnaHQ6MTZweDstLXZhbi1maWVsZC1kaXNhYmxlZC10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLWZpZWxkLXJlcXVpcmVkLW1hcmstY29sb3I6dmFyKC0tdmFuLXJlZCl9LnZhbi1maWVsZHtmbGV4LXdyYXA6d3JhcH0udmFuLWZpZWxkX19sYWJlbHtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6dmFyKC0tdmFuLWZpZWxkLWxhYmVsLXdpZHRoKTttYXJnaW4tcmlnaHQ6dmFyKC0tdmFuLWZpZWxkLWxhYmVsLW1hcmdpbi1yaWdodCk7Y29sb3I6dmFyKC0tdmFuLWZpZWxkLWxhYmVsLWNvbG9yKTt0ZXh0LWFsaWduOmxlZnQ7d29yZC13cmFwOmJyZWFrLXdvcmQ7ZmxleDpub25lfS52YW4tZmllbGRfX2xhYmVsLS1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnZhbi1maWVsZF9fbGFiZWwtLXJpZ2h0e3RleHQtYWxpZ246cmlnaHR9LnZhbi1maWVsZF9fbGFiZWwtLXRvcHt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpO292ZXJmbG93LXdyYXA6YnJlYWstd29yZDtkaXNwbGF5OmZsZXh9LnZhbi1maWVsZF9fbGFiZWwtLXJlcXVpcmVkOmJlZm9yZXtjb2xvcjp2YXIoLS12YW4tZmllbGQtcmVxdWlyZWQtbWFyay1jb2xvcik7Y29udGVudDoiKiI7bWFyZ2luLXJpZ2h0OjJweH0udmFuLWZpZWxkLS1kaXNhYmxlZCAudmFuLWZpZWxkX19sYWJlbHtjb2xvcjp2YXIoLS12YW4tZmllbGQtZGlzYWJsZWQtdGV4dC1jb2xvcil9LnZhbi1maWVsZF9fdmFsdWV7b3ZlcmZsb3c6dmlzaWJsZX0udmFuLWZpZWxkX19ib2R5e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LnZhbi1maWVsZF9fY29udHJvbHtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTttaW4td2lkdGg6MDtjb2xvcjp2YXIoLS12YW4tZmllbGQtaW5wdXQtdGV4dC1jb2xvcik7bGluZS1oZWlnaHQ6aW5oZXJpdDt0ZXh0LWFsaWduOmxlZnQ7cmVzaXplOm5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDphdXRvO3VzZXItc2VsZWN0OmF1dG87YmFja2dyb3VuZC1jb2xvcjojMDAwMDtib3JkZXI6MDttYXJnaW46MDtwYWRkaW5nOjA7ZGlzcGxheTpibG9ja30udmFuLWZpZWxkX19jb250cm9sOjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS12YW4tZmllbGQtcGxhY2Vob2xkZXItdGV4dC1jb2xvcil9LnZhbi1maWVsZF9fY29udHJvbDpyZWFkLW9ubHl7Y3Vyc29yOmRlZmF1bHR9LnZhbi1maWVsZF9fY29udHJvbDpkaXNhYmxlZHtjb2xvcjp2YXIoLS12YW4tZmllbGQtaW5wdXQtZGlzYWJsZWQtdGV4dC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6MTstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp2YXIoLS12YW4tZmllbGQtaW5wdXQtZGlzYWJsZWQtdGV4dC1jb2xvcil9LnZhbi1maWVsZF9fY29udHJvbC0tY2VudGVye3RleHQtYWxpZ246Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnZhbi1maWVsZF9fY29udHJvbC0tcmlnaHR7dGV4dC1hbGlnbjpyaWdodDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnZhbi1maWVsZF9fY29udHJvbC0tY3VzdG9te21pbi1oZWlnaHQ6dmFyKC0tdmFuLWNlbGwtbGluZS1oZWlnaHQpO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LnZhbi1maWVsZF9fY29udHJvbC0tZXJyb3I6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdmFuLWZpZWxkLWlucHV0LWVycm9yLXRleHQtY29sb3IpOy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOmN1cnJlbnRDb2xvcn0udmFuLWZpZWxkX19jb250cm9sLS1lcnJvciwudmFuLWZpZWxkX19jb250cm9sLS1lcnJvcjo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdmFuLWZpZWxkLWlucHV0LWVycm9yLXRleHQtY29sb3IpOy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOmN1cnJlbnRDb2xvcn0udmFuLWZpZWxkX19jb250cm9sLS1taW4taGVpZ2h0e21pbi1oZWlnaHQ6dmFyKC0tdmFuLWZpZWxkLXRleHQtYXJlYS1taW4taGVpZ2h0KX0udmFuLWZpZWxkX19jb250cm9sW3R5cGU9ZGF0ZV0sLnZhbi1maWVsZF9fY29udHJvbFt0eXBlPXRpbWVdLC52YW4tZmllbGRfX2NvbnRyb2xbdHlwZT1kYXRldGltZS1sb2NhbF17bWluLWhlaWdodDp2YXIoLS12YW4tY2VsbC1saW5lLWhlaWdodCl9LnZhbi1maWVsZF9fY29udHJvbFt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LnZhbi1maWVsZF9fY2xlYXIsLnZhbi1maWVsZF9faWNvbiwudmFuLWZpZWxkX19idXR0b24sLnZhbi1maWVsZF9fcmlnaHQtaWNvbntmbGV4LXNocmluazowfS52YW4tZmllbGRfX2NsZWFyLC52YW4tZmllbGRfX3JpZ2h0LWljb257bWFyZ2luLXJpZ2h0OmNhbGModmFyKC0tdmFuLXBhZGRpbmcteHMpICogLTEpO3BhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy14cyk7bGluZS1oZWlnaHQ6aW5oZXJpdH0udmFuLWZpZWxkX19jbGVhcntjb2xvcjp2YXIoLS12YW4tZmllbGQtY2xlYXItaWNvbi1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1maWVsZC1jbGVhci1pY29uLXNpemUpO2N1cnNvcjpwb2ludGVyfS52YW4tZmllbGRfX2xlZnQtaWNvbiAudmFuLWljb24sLnZhbi1maWVsZF9fcmlnaHQtaWNvbiAudmFuLWljb257Zm9udC1zaXplOnZhcigtLXZhbi1maWVsZC1pY29uLXNpemUpO2xpbmUtaGVpZ2h0OmluaGVyaXQ7ZGlzcGxheTpibG9ja30udmFuLWZpZWxkX19sZWZ0LWljb257bWFyZ2luLXJpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpfS52YW4tZmllbGRfX3JpZ2h0LWljb257Y29sb3I6dmFyKC0tdmFuLWZpZWxkLXJpZ2h0LWljb24tY29sb3IpfS52YW4tZmllbGRfX2J1dHRvbntwYWRkaW5nLWxlZnQ6dmFyKC0tdmFuLXBhZGRpbmcteHMpfS52YW4tZmllbGRfX2Vycm9yLW1lc3NhZ2V7Y29sb3I6dmFyKC0tdmFuLWZpZWxkLWVycm9yLW1lc3NhZ2UtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tZmllbGQtZXJyb3ItbWVzc2FnZS1mb250LXNpemUpO3RleHQtYWxpZ246bGVmdH0udmFuLWZpZWxkX19lcnJvci1tZXNzYWdlLS1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnZhbi1maWVsZF9fZXJyb3ItbWVzc2FnZS0tcmlnaHR7dGV4dC1hbGlnbjpyaWdodH0udmFuLWZpZWxkX193b3JkLWxpbWl0e21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmctYmFzZSk7Y29sb3I6dmFyKC0tdmFuLWZpZWxkLXdvcmQtbGltaXQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tZmllbGQtd29yZC1saW1pdC1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1maWVsZC13b3JkLWxpbWl0LWxpbmUtaGVpZ2h0KTt0ZXh0LWFsaWduOnJpZ2h0fTpyb290LDpob3N0ey0tdmFuLXNlYXJjaC1wYWRkaW5nOjEwcHggdmFyKC0tdmFuLXBhZGRpbmctc20pOy0tdmFuLXNlYXJjaC1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLXNlYXJjaC1jb250ZW50LWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQpOy0tdmFuLXNlYXJjaC1pbnB1dC1oZWlnaHQ6MzRweDstLXZhbi1zZWFyY2gtbGFiZWwtcGFkZGluZzowIDVweDstLXZhbi1zZWFyY2gtbGFiZWwtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXNlYXJjaC1sYWJlbC1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tc2VhcmNoLWxlZnQtaWNvbi1jb2xvcjp2YXIoLS12YW4tZ3JheS02KTstLXZhbi1zZWFyY2gtYWN0aW9uLXBhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy14cyk7LS12YW4tc2VhcmNoLWFjdGlvbi10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1zZWFyY2gtYWN0aW9uLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKX0udmFuLXNlYXJjaHtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzp2YXIoLS12YW4tc2VhcmNoLXBhZGRpbmcpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXNlYXJjaC1iYWNrZ3JvdW5kKTthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS52YW4tc2VhcmNoX19jb250ZW50e3BhZGRpbmctbGVmdDp2YXIoLS12YW4tcGFkZGluZy1zbSk7YmFja2dyb3VuZDp2YXIoLS12YW4tc2VhcmNoLWNvbnRlbnQtYmFja2dyb3VuZCk7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLXNtKTtmbGV4OjE7ZGlzcGxheTpmbGV4fS52YW4tc2VhcmNoX19jb250ZW50LS1yb3VuZHtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWF4KX0udmFuLXNlYXJjaF9fbGFiZWx7cGFkZGluZzp2YXIoLS12YW4tc2VhcmNoLWxhYmVsLXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi1zZWFyY2gtbGFiZWwtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tc2VhcmNoLWxhYmVsLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXNlYXJjaC1pbnB1dC1oZWlnaHQpfS52YW4tc2VhcmNoX19maWVsZHtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmcteHMpIDAgMDtoZWlnaHQ6dmFyKC0tdmFuLXNlYXJjaC1pbnB1dC1oZWlnaHQpO2JhY2tncm91bmQtY29sb3I6IzAwMDA7ZmxleDoxO2FsaWduLWl0ZW1zOmNlbnRlcn0udmFuLXNlYXJjaF9fZmllbGQgLnZhbi1maWVsZF9fbGVmdC1pY29ue2NvbG9yOnZhcigtLXZhbi1zZWFyY2gtbGVmdC1pY29uLWNvbG9yKX0udmFuLXNlYXJjaF9fZmllbGQtLXdpdGgtbWVzc2FnZXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2hlaWdodDphdXRvO3BhZGRpbmctdG9wOjVweDtwYWRkaW5nLWJvdHRvbTo1cHh9LnZhbi1zZWFyY2gtLXNob3ctYWN0aW9ue3BhZGRpbmctcmlnaHQ6MH0udmFuLXNlYXJjaCBpbnB1dDo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbntkaXNwbGF5Om5vbmV9LnZhbi1zZWFyY2ggaW5wdXQ6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b257ZGlzcGxheTpub25lfS52YW4tc2VhcmNoIGlucHV0Ojotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbntkaXNwbGF5Om5vbmV9LnZhbi1zZWFyY2ggaW5wdXQ6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbntkaXNwbGF5Om5vbmV9LnZhbi1zZWFyY2hfX2FjdGlvbntwYWRkaW5nOnZhcigtLXZhbi1zZWFyY2gtYWN0aW9uLXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi1zZWFyY2gtYWN0aW9uLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tc2VhcmNoLWFjdGlvbi1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1zZWFyY2gtaW5wdXQtaGVpZ2h0KTtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udmFuLXNlYXJjaF9fYWN0aW9uOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1hY3RpdmUtY29sb3IpfTpyb290LDpob3N0ey0tdmFuLWFjdGlvbi1iYXItaWNvbi13aWR0aDo0OHB4Oy0tdmFuLWFjdGlvbi1iYXItaWNvbi1oZWlnaHQ6MTAwJTstLXZhbi1hY3Rpb24tYmFyLWljb24tY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLWFjdGlvbi1iYXItaWNvbi1zaXplOjE4cHg7LS12YW4tYWN0aW9uLWJhci1pY29uLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLXhzKTstLXZhbi1hY3Rpb24tYmFyLWljb24tYWN0aXZlLWNvbG9yOnZhcigtLXZhbi1hY3RpdmUtY29sb3IpOy0tdmFuLWFjdGlvbi1iYXItaWNvbi10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1hY3Rpb24tYmFyLWljb24tYmFja2dyb3VuZDp2YXIoLS12YW4tYmFja2dyb3VuZC0yKX0udmFuLWFjdGlvbi1iYXItaWNvbnttaW4td2lkdGg6dmFyKC0tdmFuLWFjdGlvbi1iYXItaWNvbi13aWR0aCk7aGVpZ2h0OnZhcigtLXZhbi1hY3Rpb24tYmFyLWljb24taGVpZ2h0KTtjb2xvcjp2YXIoLS12YW4tYWN0aW9uLWJhci1pY29uLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tYWN0aW9uLWJhci1pY29uLWZvbnQtc2l6ZSk7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZDp2YXIoLS12YW4tYWN0aW9uLWJhci1pY29uLWJhY2tncm91bmQpO2N1cnNvcjpwb2ludGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xpbmUtaGVpZ2h0OjE7ZGlzcGxheTpmbGV4fS52YW4tYWN0aW9uLWJhci1pY29uOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1hY3Rpb24tYmFyLWljb24tYWN0aXZlLWNvbG9yKX0udmFuLWFjdGlvbi1iYXItaWNvbi0tZGlzYWJsZWR7Y29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMyk7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tYWN0aW9uLWJhci1pY29uLS1kaXNhYmxlZDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMDAwMH0udmFuLWFjdGlvbi1iYXItaWNvbi0tZGlzYWJsZWQgLnZhbi1hY3Rpb24tYmFyLWljb25fX2ljb257Y29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMyl9LnZhbi1hY3Rpb24tYmFyLWljb25fX2ljb257bWFyZ2luOjAgYXV0byB2YXIoLS12YW4tcGFkZGluZy1iYXNlKTtjb2xvcjp2YXIoLS12YW4tYWN0aW9uLWJhci1pY29uLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWFjdGlvbi1iYXItaWNvbi1zaXplKX06cm9vdCw6aG9zdHstLXZhbi1sb2FkaW5nLXRleHQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tbG9hZGluZy10ZXh0LWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1sb2FkaW5nLXNwaW5uZXItY29sb3I6dmFyKC0tdmFuLWdyYXktNSk7LS12YW4tbG9hZGluZy1zcGlubmVyLXNpemU6MzBweDstLXZhbi1sb2FkaW5nLXNwaW5uZXItZHVyYXRpb246LjhzfS52YW4tbG9hZGluZ3tjb2xvcjp2YXIoLS12YW4tbG9hZGluZy1zcGlubmVyLWNvbG9yKTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Zm9udC1zaXplOjA7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1sb2FkaW5nX19zcGlubmVye3dpZHRoOnZhcigtLXZhbi1sb2FkaW5nLXNwaW5uZXItc2l6ZSk7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OnZhcigtLXZhbi1sb2FkaW5nLXNwaW5uZXItc2l6ZSk7dmVydGljYWwtYWxpZ246bWlkZGxlO21heC1oZWlnaHQ6MTAwJTthbmltYXRpb246dmFuLXJvdGF0ZSB2YXIoLS12YW4tbG9hZGluZy1zcGlubmVyLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGU7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1sb2FkaW5nX19zcGlubmVyLS1zcGlubmVye2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246c3RlcHMoMTIsZW5kKX0udmFuLWxvYWRpbmdfX3NwaW5uZXItLWNpcmN1bGFye2FuaW1hdGlvbi1kdXJhdGlvbjoyc30udmFuLWxvYWRpbmdfX2xpbmV7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjB9LnZhbi1sb2FkaW5nX19saW5lOmJlZm9yZXtjb250ZW50OiIgIjtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcjtib3JkZXItcmFkaXVzOjQwJTt3aWR0aDoycHg7aGVpZ2h0OjI1JTttYXJnaW46MCBhdXRvO2Rpc3BsYXk6YmxvY2t9LnZhbi1sb2FkaW5nX19jaXJjdWxhcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6YmxvY2t9LnZhbi1sb2FkaW5nX19jaXJjdWxhciBjaXJjbGV7c3Ryb2tlOmN1cnJlbnRDb2xvcjtzdHJva2Utd2lkdGg6M3B4O3N0cm9rZS1saW5lY2FwOnJvdW5kO2FuaW1hdGlvbjoxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlIHZhbi1jaXJjdWxhcn0udmFuLWxvYWRpbmdfX3RleHR7bWFyZ2luLWxlZnQ6dmFyKC0tdmFuLXBhZGRpbmcteHMpO2NvbG9yOnZhcigtLXZhbi1sb2FkaW5nLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tbG9hZGluZy10ZXh0LWZvbnQtc2l6ZSk7dmVydGljYWwtYWxpZ246bWlkZGxlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS52YW4tbG9hZGluZy0tdmVydGljYWx7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LnZhbi1sb2FkaW5nLS12ZXJ0aWNhbCAudmFuLWxvYWRpbmdfX3RleHR7bWFyZ2luOnZhcigtLXZhbi1wYWRkaW5nLXhzKSAwIDB9QGtleWZyYW1lcyB2YW4tY2lyY3VsYXJ7MCV7c3Ryb2tlLWRhc2hhcnJheToxIDIwMDtzdHJva2UtZGFzaG9mZnNldDowfTUwJXtzdHJva2UtZGFzaGFycmF5OjkwIDE1MDtzdHJva2UtZGFzaG9mZnNldDotNDBweH10b3tzdHJva2UtZGFzaGFycmF5OjkwIDE1MDtzdHJva2UtZGFzaG9mZnNldDotMTIwcHh9fS52YW4tbG9hZGluZ19fbGluZS0tMXtvcGFjaXR5OjE7dHJhbnNmb3JtOnJvdGF0ZSgzMGRlZyl9LnZhbi1sb2FkaW5nX19saW5lLS0ye29wYWNpdHk6LjkzNzU7dHJhbnNmb3JtOnJvdGF0ZSg2MGRlZyl9LnZhbi1sb2FkaW5nX19saW5lLS0ze29wYWNpdHk6Ljg3NTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX0udmFuLWxvYWRpbmdfX2xpbmUtLTR7b3BhY2l0eTouODEyNTt0cmFuc2Zvcm06cm90YXRlKDEyMGRlZyl9LnZhbi1sb2FkaW5nX19saW5lLS01e29wYWNpdHk6Ljc1O3RyYW5zZm9ybTpyb3RhdGUoMTUwZGVnKX0udmFuLWxvYWRpbmdfX2xpbmUtLTZ7b3BhY2l0eTouNjg3NTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LnZhbi1sb2FkaW5nX19saW5lLS03e29wYWNpdHk6LjYyNTt0cmFuc2Zvcm06cm90YXRlKDIxMGRlZyl9LnZhbi1sb2FkaW5nX19saW5lLS04e29wYWNpdHk6LjU2MjU7dHJhbnNmb3JtOnJvdGF0ZSgyNDBkZWcpfS52YW4tbG9hZGluZ19fbGluZS0tOXtvcGFjaXR5Oi41O3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0udmFuLWxvYWRpbmdfX2xpbmUtLTEwe29wYWNpdHk6LjQzNzU7dHJhbnNmb3JtOnJvdGF0ZSgzMDBkZWcpfS52YW4tbG9hZGluZ19fbGluZS0tMTF7b3BhY2l0eTouMzc1O3RyYW5zZm9ybTpyb3RhdGUoMzMwZGVnKX0udmFuLWxvYWRpbmdfX2xpbmUtLTEye29wYWNpdHk6LjMxMjU7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfTpyb290LDpob3N0ey0tdmFuLXB1bGwtcmVmcmVzaC1oZWFkLWhlaWdodDo1MHB4Oy0tdmFuLXB1bGwtcmVmcmVzaC1oZWFkLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1wdWxsLXJlZnJlc2gtaGVhZC10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLXB1bGwtcmVmcmVzaC1sb2FkaW5nLWljb24tc2l6ZToxNnB4fS52YW4tcHVsbC1yZWZyZXNoe292ZXJmbG93OmhpZGRlbn0udmFuLXB1bGwtcmVmcmVzaF9fdHJhY2t7aGVpZ2h0OjEwMCU7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm07cG9zaXRpb246cmVsYXRpdmV9LnZhbi1wdWxsLXJlZnJlc2hfX2hlYWR7d2lkdGg6MTAwJTtoZWlnaHQ6dmFyKC0tdmFuLXB1bGwtcmVmcmVzaC1oZWFkLWhlaWdodCk7Y29sb3I6dmFyKC0tdmFuLXB1bGwtcmVmcmVzaC1oZWFkLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tcHVsbC1yZWZyZXNoLWhlYWQtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tcHVsbC1yZWZyZXNoLWhlYWQtaGVpZ2h0KTt0ZXh0LWFsaWduOmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMDAlKX0udmFuLXB1bGwtcmVmcmVzaF9fbG9hZGluZyAudmFuLWxvYWRpbmdfX3NwaW5uZXJ7d2lkdGg6dmFyKC0tdmFuLXB1bGwtcmVmcmVzaC1sb2FkaW5nLWljb24tc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1wdWxsLXJlZnJlc2gtbG9hZGluZy1pY29uLXNpemUpfTpyb290LDpob3N0ey0tdmFuLW51bWJlci1rZXlib2FyZC1iYWNrZ3JvdW5kOnZhcigtLXZhbi1ncmF5LTIpOy0tdmFuLW51bWJlci1rZXlib2FyZC1rZXktaGVpZ2h0OjQ4cHg7LS12YW4tbnVtYmVyLWtleWJvYXJkLWtleS1mb250LXNpemU6MjhweDstLXZhbi1udW1iZXIta2V5Ym9hcmQta2V5LWFjdGl2ZS1jb2xvcjp2YXIoLS12YW4tZ3JheS0zKTstLXZhbi1udW1iZXIta2V5Ym9hcmQta2V5LWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tbnVtYmVyLWtleWJvYXJkLWRlbGV0ZS1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7LS12YW4tbnVtYmVyLWtleWJvYXJkLXRpdGxlLWNvbG9yOnZhcigtLXZhbi1ncmF5LTcpOy0tdmFuLW51bWJlci1rZXlib2FyZC10aXRsZS1oZWlnaHQ6MzRweDstLXZhbi1udW1iZXIta2V5Ym9hcmQtdGl0bGUtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLW51bWJlci1rZXlib2FyZC1jbG9zZS1wYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctbWQpOy0tdmFuLW51bWJlci1rZXlib2FyZC1jbG9zZS1jb2xvcjp2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tbnVtYmVyLWtleWJvYXJkLWNsb3NlLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1udW1iZXIta2V5Ym9hcmQtYnV0dG9uLXRleHQtY29sb3I6dmFyKC0tdmFuLXdoaXRlKTstLXZhbi1udW1iZXIta2V5Ym9hcmQtYnV0dG9uLWJhY2tncm91bmQ6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLW51bWJlci1rZXlib2FyZC16LWluZGV4OjEwMH0udmFuLXRoZW1lLWRhcmt7LS12YW4tbnVtYmVyLWtleWJvYXJkLWJhY2tncm91bmQ6dmFyKC0tdmFuLWdyYXktOCk7LS12YW4tbnVtYmVyLWtleWJvYXJkLWtleS1iYWNrZ3JvdW5kOnZhcigtLXZhbi1ncmF5LTcpOy0tdmFuLW51bWJlci1rZXlib2FyZC1rZXktYWN0aXZlLWNvbG9yOnZhcigtLXZhbi1ncmF5LTYpfS52YW4tbnVtYmVyLWtleWJvYXJke3otaW5kZXg6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC16LWluZGV4KTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1udW1iZXIta2V5Ym9hcmQtYmFja2dyb3VuZCk7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7d2lkdGg6MTAwJTtwYWRkaW5nLWJvdHRvbToyMnB4O3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO2xlZnQ6MH0udmFuLW51bWJlci1rZXlib2FyZC0td2l0aC10aXRsZXtib3JkZXItcmFkaXVzOjIwcHggMjBweCAwIDB9LnZhbi1udW1iZXIta2V5Ym9hcmRfX2hlYWRlcntib3gtc2l6aW5nOmNvbnRlbnQtYm94O2hlaWdodDp2YXIoLS12YW4tbnVtYmVyLWtleWJvYXJkLXRpdGxlLWhlaWdodCk7Y29sb3I6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC10aXRsZS1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1udW1iZXIta2V5Ym9hcmQtdGl0bGUtZm9udC1zaXplKTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nLXRvcDo2cHg7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4tbnVtYmVyLWtleWJvYXJkX190aXRsZXtmb250LXdlaWdodDo0MDA7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnZhbi1udW1iZXIta2V5Ym9hcmRfX3RpdGxlLWxlZnR7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowfS52YW4tbnVtYmVyLWtleWJvYXJkX19ib2R5e3BhZGRpbmc6NnB4IDAgMCA2cHg7ZGlzcGxheTpmbGV4fS52YW4tbnVtYmVyLWtleWJvYXJkX19rZXlze2ZsZXgtd3JhcDp3cmFwO2ZsZXg6MztkaXNwbGF5OmZsZXh9LnZhbi1udW1iZXIta2V5Ym9hcmRfX2Nsb3Nle2hlaWdodDoxMDAlO3BhZGRpbmc6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC1jbG9zZS1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tbnVtYmVyLWtleWJvYXJkLWNsb3NlLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC1jbG9zZS1mb250LXNpemUpO2JhY2tncm91bmQtY29sb3I6IzAwMDA7Ym9yZGVyOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0udmFuLW51bWJlci1rZXlib2FyZF9fc2lkZWJhcntmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleDoxO2Rpc3BsYXk6ZmxleH0udmFuLW51bWJlci1rZXlib2FyZC0tdW5maXR7cGFkZGluZy1ib3R0b206MH0udmFuLWtleXtoZWlnaHQ6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC1rZXktaGVpZ2h0KTtmb250LXNpemU6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC1rZXktZm9udC1zaXplKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1udW1iZXIta2V5Ym9hcmQta2V5LWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1sZyk7Y3Vyc29yOnBvaW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bGluZS1oZWlnaHQ6MS41O2Rpc3BsYXk6ZmxleH0udmFuLWtleS0tbGFyZ2V7aGVpZ2h0OmF1dG87cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MCA2cHggNnB4IDB9LnZhbi1rZXktLWJsdWUsLnZhbi1rZXktLWRlbGV0ZXtmb250LXNpemU6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC1kZWxldGUtZm9udC1zaXplKX0udmFuLWtleS0tYWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC1rZXktYWN0aXZlLWNvbG9yKX0udmFuLWtleS0tYmx1ZXtjb2xvcjp2YXIoLS12YW4tbnVtYmVyLWtleWJvYXJkLWJ1dHRvbi10ZXh0LWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1udW1iZXIta2V5Ym9hcmQtYnV0dG9uLWJhY2tncm91bmQpfS52YW4ta2V5LS1ibHVlLnZhbi1rZXktLWFjdGl2ZXtvcGFjaXR5OnZhcigtLXZhbi1hY3RpdmUtb3BhY2l0eSl9LnZhbi1rZXlfX3dyYXBwZXJ7Ym94LXNpemluZzpib3JkZXItYm94O2ZsZXg6MzMlO3BhZGRpbmc6MCA2cHggNnB4IDA7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1rZXlfX3dyYXBwZXItLXdpZGVye2ZsZXgtYmFzaXM6NjYlfS52YW4ta2V5X19kZWxldGUtaWNvbnt3aWR0aDozMnB4O2hlaWdodDoyMnB4fS52YW4ta2V5X19jb2xsYXBzZS1pY29ue3dpZHRoOjMwcHg7aGVpZ2h0OjI0cHh9LnZhbi1rZXlfX2xvYWRpbmctaWNvbntjb2xvcjp2YXIoLS12YW4tbnVtYmVyLWtleWJvYXJkLWJ1dHRvbi10ZXh0LWNvbG9yKX06cm9vdCw6aG9zdHstLXZhbi1saXN0LXRleHQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tbGlzdC10ZXh0LWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1saXN0LXRleHQtbGluZS1oZWlnaHQ6NTBweDstLXZhbi1saXN0LWxvYWRpbmctaWNvbi1zaXplOjE2cHh9LnZhbi1saXN0X19sb2FkaW5nLC52YW4tbGlzdF9fZmluaXNoZWQtdGV4dCwudmFuLWxpc3RfX2Vycm9yLXRleHR7Y29sb3I6dmFyKC0tdmFuLWxpc3QtdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1saXN0LXRleHQtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tbGlzdC10ZXh0LWxpbmUtaGVpZ2h0KTt0ZXh0LWFsaWduOmNlbnRlcn0udmFuLWxpc3RfX3BsYWNlaG9sZGVye3BvaW50ZXItZXZlbnRzOm5vbmU7aGVpZ2h0OjB9LnZhbi1saXN0X19sb2FkaW5nLWljb24gLnZhbi1sb2FkaW5nX19zcGlubmVye3dpZHRoOnZhcigtLXZhbi1saXN0LWxvYWRpbmctaWNvbi1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLWxpc3QtbG9hZGluZy1pY29uLXNpemUpfTpyb290LDpob3N0ey0tdmFuLXN3aXRjaC1zaXplOjI2cHg7LS12YW4tc3dpdGNoLXdpZHRoOmNhbGMoMS44ZW0gKyA0cHgpOy0tdmFuLXN3aXRjaC1oZWlnaHQ6Y2FsYygxZW0gKyA0cHgpOy0tdmFuLXN3aXRjaC1ub2RlLXNpemU6MWVtOy0tdmFuLXN3aXRjaC1ub2RlLWJhY2tncm91bmQ6dmFyKC0tdmFuLXdoaXRlKTstLXZhbi1zd2l0Y2gtbm9kZS1zaGFkb3c6MCAzcHggMXB4IDAgIzAwMDAwMDBkOy0tdmFuLXN3aXRjaC1iYWNrZ3JvdW5kOiM3ODc4ODAyOTstLXZhbi1zd2l0Y2gtb24tYmFja2dyb3VuZDp2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tc3dpdGNoLWR1cmF0aW9uOnZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKTstLXZhbi1zd2l0Y2gtZGlzYWJsZWQtb3BhY2l0eTp2YXIoLS12YW4tZGlzYWJsZWQtb3BhY2l0eSl9LnZhbi10aGVtZS1kYXJrey0tdmFuLXN3aXRjaC1iYWNrZ3JvdW5kOiM3ODc4ODA1Mn0udmFuLXN3aXRjaHtib3gtc2l6aW5nOmNvbnRlbnQtYm94O3dpZHRoOnZhcigtLXZhbi1zd2l0Y2gtd2lkdGgpO2hlaWdodDp2YXIoLS12YW4tc3dpdGNoLWhlaWdodCk7Zm9udC1zaXplOnZhcigtLXZhbi1zd2l0Y2gtc2l6ZSk7YmFja2dyb3VuZDp2YXIoLS12YW4tc3dpdGNoLWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXN3aXRjaC1ub2RlLXNpemUpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciB2YXIoLS12YW4tc3dpdGNoLWR1cmF0aW9uKTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLXN3aXRjaF9fbm9kZXt3aWR0aDp2YXIoLS12YW4tc3dpdGNoLW5vZGUtc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1zd2l0Y2gtbm9kZS1zaXplKTtmb250LXNpemU6aW5oZXJpdDtiYWNrZ3JvdW5kOnZhcigtLXZhbi1zd2l0Y2gtbm9kZS1iYWNrZ3JvdW5kKTtib3gtc2hhZG93OnZhcigtLXZhbi1zd2l0Y2gtbm9kZS1zaGFkb3cpO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXZhbi1zd2l0Y2gtZHVyYXRpb24pIGN1YmljLWJlemllciguMywxLjA1LC40LDEuMDUpO2JvcmRlci1yYWRpdXM6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MnB4O2xlZnQ6MnB4fS52YW4tc3dpdGNoX19sb2FkaW5ne3dpZHRoOjUwJTtoZWlnaHQ6NTAlO2xpbmUtaGVpZ2h0OjE7dG9wOjI1JTtsZWZ0OjI1JX0udmFuLXN3aXRjaC0tb257YmFja2dyb3VuZDp2YXIoLS12YW4tc3dpdGNoLW9uLWJhY2tncm91bmQpfS52YW4tc3dpdGNoLS1vbiAudmFuLXN3aXRjaF9fbm9kZXt0cmFuc2Zvcm06dHJhbnNsYXRlKGNhbGModmFyKC0tdmFuLXN3aXRjaC13aWR0aCkgLSB2YXIoLS12YW4tc3dpdGNoLW5vZGUtc2l6ZSkgLSA0cHgpKX0udmFuLXN3aXRjaC0tb24gLnZhbi1zd2l0Y2hfX2xvYWRpbmd7Y29sb3I6dmFyKC0tdmFuLXN3aXRjaC1vbi1iYWNrZ3JvdW5kKX0udmFuLXN3aXRjaC0tZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6dmFyKC0tdmFuLXN3aXRjaC1kaXNhYmxlZC1vcGFjaXR5KX0udmFuLXN3aXRjaC0tbG9hZGluZ3tjdXJzb3I6ZGVmYXVsdH06cm9vdCw6aG9zdHstLXZhbi1idXR0b24tbWluaS1oZWlnaHQ6MjRweDstLXZhbi1idXR0b24tbWluaS1wYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctYmFzZSk7LS12YW4tYnV0dG9uLW1pbmktZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUteHMpOy0tdmFuLWJ1dHRvbi1zbWFsbC1oZWlnaHQ6MzJweDstLXZhbi1idXR0b24tc21hbGwtcGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLXhzKTstLXZhbi1idXR0b24tc21hbGwtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLWJ1dHRvbi1ub3JtYWwtcGFkZGluZzowIDE1cHg7LS12YW4tYnV0dG9uLW5vcm1hbC1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tYnV0dG9uLWxhcmdlLWhlaWdodDo1MHB4Oy0tdmFuLWJ1dHRvbi1kZWZhdWx0LWhlaWdodDo0NHB4Oy0tdmFuLWJ1dHRvbi1kZWZhdWx0LWxpbmUtaGVpZ2h0OjEuMjstLXZhbi1idXR0b24tZGVmYXVsdC1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7LS12YW4tYnV0dG9uLWRlZmF1bHQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLWJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tYnV0dG9uLWRlZmF1bHQtYm9yZGVyLWNvbG9yOnZhcigtLXZhbi1ncmF5LTQpOy0tdmFuLWJ1dHRvbi1wcmltYXJ5LWNvbG9yOnZhcigtLXZhbi13aGl0ZSk7LS12YW4tYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZDp2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tYnV0dG9uLXByaW1hcnktYm9yZGVyLWNvbG9yOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1idXR0b24tc3VjY2Vzcy1jb2xvcjp2YXIoLS12YW4td2hpdGUpOy0tdmFuLWJ1dHRvbi1zdWNjZXNzLWJhY2tncm91bmQ6dmFyKC0tdmFuLXN1Y2Nlc3MtY29sb3IpOy0tdmFuLWJ1dHRvbi1zdWNjZXNzLWJvcmRlci1jb2xvcjp2YXIoLS12YW4tc3VjY2Vzcy1jb2xvcik7LS12YW4tYnV0dG9uLWRhbmdlci1jb2xvcjp2YXIoLS12YW4td2hpdGUpOy0tdmFuLWJ1dHRvbi1kYW5nZXItYmFja2dyb3VuZDp2YXIoLS12YW4tZGFuZ2VyLWNvbG9yKTstLXZhbi1idXR0b24tZGFuZ2VyLWJvcmRlci1jb2xvcjp2YXIoLS12YW4tZGFuZ2VyLWNvbG9yKTstLXZhbi1idXR0b24td2FybmluZy1jb2xvcjp2YXIoLS12YW4td2hpdGUpOy0tdmFuLWJ1dHRvbi13YXJuaW5nLWJhY2tncm91bmQ6dmFyKC0tdmFuLXdhcm5pbmctY29sb3IpOy0tdmFuLWJ1dHRvbi13YXJuaW5nLWJvcmRlci1jb2xvcjp2YXIoLS12YW4td2FybmluZy1jb2xvcik7LS12YW4tYnV0dG9uLWJvcmRlci13aWR0aDp2YXIoLS12YW4tYm9yZGVyLXdpZHRoKTstLXZhbi1idXR0b24tcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWQpOy0tdmFuLWJ1dHRvbi1yb3VuZC1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tYXgpOy0tdmFuLWJ1dHRvbi1wbGFpbi1iYWNrZ3JvdW5kOnZhcigtLXZhbi13aGl0ZSk7LS12YW4tYnV0dG9uLWRpc2FibGVkLW9wYWNpdHk6dmFyKC0tdmFuLWRpc2FibGVkLW9wYWNpdHkpOy0tdmFuLWJ1dHRvbi1pY29uLXNpemU6MS4yZW07LS12YW4tYnV0dG9uLWxvYWRpbmctaWNvbi1zaXplOjIwcHh9LnZhbi10aGVtZS1kYXJrey0tdmFuLWJ1dHRvbi1wbGFpbi1iYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS52YW4tYnV0dG9ue2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6dmFyKC0tdmFuLWJ1dHRvbi1kZWZhdWx0LWhlaWdodCk7Zm9udC1zaXplOnZhcigtLXZhbi1idXR0b24tZGVmYXVsdC1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1idXR0b24tZGVmYXVsdC1saW5lLWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tYnV0dG9uLXJhZGl1cyk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLXZhbi1kdXJhdGlvbi1mYXN0KTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmF1dG87bWFyZ2luOjA7cGFkZGluZzowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4tYnV0dG9uOmJlZm9yZXtiYWNrZ3JvdW5kOnZhcigtLXZhbi1ibGFjayk7Ym9yZGVyOmluaGVyaXQ7Ym9yZGVyLWNvbG9yOnZhcigtLXZhbi1ibGFjayk7Ym9yZGVyLXJhZGl1czppbmhlcml0O29wYWNpdHk6MDtjb250ZW50OiIgIjtib3gtc2l6aW5nOmNvbnRlbnQtYm94O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSl9LnZhbi1idXR0b246YWN0aXZlOmJlZm9yZXtvcGFjaXR5Oi4xfS52YW4tYnV0dG9uLS1sb2FkaW5nOmJlZm9yZSwudmFuLWJ1dHRvbi0tZGlzYWJsZWQ6YmVmb3Jle2Rpc3BsYXk6bm9uZX0udmFuLWJ1dHRvbi0tZGVmYXVsdHtjb2xvcjp2YXIoLS12YW4tYnV0dG9uLWRlZmF1bHQtY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQpO2JvcmRlcjp2YXIoLS12YW4tYnV0dG9uLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tdmFuLWJ1dHRvbi1kZWZhdWx0LWJvcmRlci1jb2xvcil9LnZhbi1idXR0b24tLXByaW1hcnl7Y29sb3I6dmFyKC0tdmFuLWJ1dHRvbi1wcmltYXJ5LWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kKTtib3JkZXI6dmFyKC0tdmFuLWJ1dHRvbi1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXZhbi1idXR0b24tcHJpbWFyeS1ib3JkZXItY29sb3IpfS52YW4tYnV0dG9uLS1zdWNjZXNze2NvbG9yOnZhcigtLXZhbi1idXR0b24tc3VjY2Vzcy1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS12YW4tYnV0dG9uLXN1Y2Nlc3MtYmFja2dyb3VuZCk7Ym9yZGVyOnZhcigtLXZhbi1idXR0b24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS12YW4tYnV0dG9uLXN1Y2Nlc3MtYm9yZGVyLWNvbG9yKX0udmFuLWJ1dHRvbi0tZGFuZ2Vye2NvbG9yOnZhcigtLXZhbi1idXR0b24tZGFuZ2VyLWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1idXR0b24tZGFuZ2VyLWJhY2tncm91bmQpO2JvcmRlcjp2YXIoLS12YW4tYnV0dG9uLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tdmFuLWJ1dHRvbi1kYW5nZXItYm9yZGVyLWNvbG9yKX0udmFuLWJ1dHRvbi0td2FybmluZ3tjb2xvcjp2YXIoLS12YW4tYnV0dG9uLXdhcm5pbmctY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWJ1dHRvbi13YXJuaW5nLWJhY2tncm91bmQpO2JvcmRlcjp2YXIoLS12YW4tYnV0dG9uLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tdmFuLWJ1dHRvbi13YXJuaW5nLWJvcmRlci1jb2xvcil9LnZhbi1idXR0b24tLXBsYWlue2JhY2tncm91bmQ6dmFyKC0tdmFuLWJ1dHRvbi1wbGFpbi1iYWNrZ3JvdW5kKX0udmFuLWJ1dHRvbi0tcGxhaW4udmFuLWJ1dHRvbi0tcHJpbWFyeXtjb2xvcjp2YXIoLS12YW4tYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZCl9LnZhbi1idXR0b24tLXBsYWluLnZhbi1idXR0b24tLXN1Y2Nlc3N7Y29sb3I6dmFyKC0tdmFuLWJ1dHRvbi1zdWNjZXNzLWJhY2tncm91bmQpfS52YW4tYnV0dG9uLS1wbGFpbi52YW4tYnV0dG9uLS1kYW5nZXJ7Y29sb3I6dmFyKC0tdmFuLWJ1dHRvbi1kYW5nZXItYmFja2dyb3VuZCl9LnZhbi1idXR0b24tLXBsYWluLnZhbi1idXR0b24tLXdhcm5pbmd7Y29sb3I6dmFyKC0tdmFuLWJ1dHRvbi13YXJuaW5nLWJhY2tncm91bmQpfS52YW4tYnV0dG9uLS1sYXJnZXt3aWR0aDoxMDAlO2hlaWdodDp2YXIoLS12YW4tYnV0dG9uLWxhcmdlLWhlaWdodCl9LnZhbi1idXR0b24tLW5vcm1hbHtwYWRkaW5nOnZhcigtLXZhbi1idXR0b24tbm9ybWFsLXBhZGRpbmcpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tYnV0dG9uLW5vcm1hbC1mb250LXNpemUpfS52YW4tYnV0dG9uLS1zbWFsbHtoZWlnaHQ6dmFyKC0tdmFuLWJ1dHRvbi1zbWFsbC1oZWlnaHQpO3BhZGRpbmc6dmFyKC0tdmFuLWJ1dHRvbi1zbWFsbC1wYWRkaW5nKTtmb250LXNpemU6dmFyKC0tdmFuLWJ1dHRvbi1zbWFsbC1mb250LXNpemUpfS52YW4tYnV0dG9uX19sb2FkaW5ne2NvbG9yOmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXR9LnZhbi1idXR0b25fX2xvYWRpbmcgLnZhbi1sb2FkaW5nX19zcGlubmVye2NvbG9yOmN1cnJlbnRDb2xvcjt3aWR0aDp2YXIoLS12YW4tYnV0dG9uLWxvYWRpbmctaWNvbi1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLWJ1dHRvbi1sb2FkaW5nLWljb24tc2l6ZSl9LnZhbi1idXR0b24tLW1pbml7aGVpZ2h0OnZhcigtLXZhbi1idXR0b24tbWluaS1oZWlnaHQpO3BhZGRpbmc6dmFyKC0tdmFuLWJ1dHRvbi1taW5pLXBhZGRpbmcpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tYnV0dG9uLW1pbmktZm9udC1zaXplKX0udmFuLWJ1dHRvbi0tbWluaSsudmFuLWJ1dHRvbi0tbWluaXttYXJnaW4tbGVmdDp2YXIoLS12YW4tcGFkZGluZy1iYXNlKX0udmFuLWJ1dHRvbi0tYmxvY2t7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS52YW4tYnV0dG9uLS1kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTp2YXIoLS12YW4tYnV0dG9uLWRpc2FibGVkLW9wYWNpdHkpfS52YW4tYnV0dG9uLS1sb2FkaW5ne2N1cnNvcjpkZWZhdWx0fS52YW4tYnV0dG9uLS1yb3VuZHtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1idXR0b24tcm91bmQtcmFkaXVzKX0udmFuLWJ1dHRvbi0tc3F1YXJle2JvcmRlci1yYWRpdXM6MH0udmFuLWJ1dHRvbl9fY29udGVudHtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MTAwJTtkaXNwbGF5OmZsZXh9LnZhbi1idXR0b25fX2NvbnRlbnQ6YmVmb3Jle2NvbnRlbnQ6IiAifS52YW4tYnV0dG9uX19pY29ue2ZvbnQtc2l6ZTp2YXIoLS12YW4tYnV0dG9uLWljb24tc2l6ZSk7bGluZS1oZWlnaHQ6aW5oZXJpdH0udmFuLWJ1dHRvbl9faWNvbisudmFuLWJ1dHRvbl9fdGV4dCwudmFuLWJ1dHRvbl9fbG9hZGluZysudmFuLWJ1dHRvbl9fdGV4dCwudmFuLWJ1dHRvbl9fdGV4dCsudmFuLWJ1dHRvbl9faWNvbiwudmFuLWJ1dHRvbl9fdGV4dCsudmFuLWJ1dHRvbl9fbG9hZGluZ3ttYXJnaW4tbGVmdDp2YXIoLS12YW4tcGFkZGluZy1iYXNlKX0udmFuLWJ1dHRvbi0taGFpcmxpbmV7Ym9yZGVyLXdpZHRoOjB9LnZhbi1idXR0b24tLWhhaXJsaW5lOmFmdGVye2JvcmRlci1jb2xvcjppbmhlcml0O2JvcmRlci1yYWRpdXM6Y2FsYyh2YXIoLS12YW4tYnV0dG9uLXJhZGl1cykgKiAyKX0udmFuLWJ1dHRvbi0taGFpcmxpbmUudmFuLWJ1dHRvbi0tcm91bmQ6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tYnV0dG9uLXJvdW5kLXJhZGl1cyl9LnZhbi1idXR0b24tLWhhaXJsaW5lLnZhbi1idXR0b24tLXNxdWFyZTphZnRlcntib3JkZXItcmFkaXVzOjB9OnJvb3QsOmhvc3R7LS12YW4tc3VibWl0LWJhci1oZWlnaHQ6NTBweDstLXZhbi1zdWJtaXQtYmFyLXotaW5kZXg6MTAwOy0tdmFuLXN1Ym1pdC1iYXItYmFja2dyb3VuZDp2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1zdWJtaXQtYmFyLWJ1dHRvbi13aWR0aDoxMTBweDstLXZhbi1zdWJtaXQtYmFyLXByaWNlLWNvbG9yOnZhcigtLXZhbi1kYW5nZXItY29sb3IpOy0tdmFuLXN1Ym1pdC1iYXItcHJpY2UtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLXN1Ym1pdC1iYXItcHJpY2UtaW50ZWdlci1mb250LXNpemU6MjBweDstLXZhbi1zdWJtaXQtYmFyLXByaWNlLWZvbnQ6dmFyKC0tdmFuLXByaWNlLWZvbnQpOy0tdmFuLXN1Ym1pdC1iYXItdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tc3VibWl0LWJhci10ZXh0LWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1zdWJtaXQtYmFyLXRpcC1wYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLXhzKSB2YXIoLS12YW4tcGFkZGluZy1zbSk7LS12YW4tc3VibWl0LWJhci10aXAtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLXN1Ym1pdC1iYXItdGlwLWxpbmUtaGVpZ2h0OjEuNTstLXZhbi1zdWJtaXQtYmFyLXRpcC1jb2xvcjp2YXIoLS12YW4tb3JhbmdlLWRhcmspOy0tdmFuLXN1Ym1pdC1iYXItdGlwLWJhY2tncm91bmQ6dmFyKC0tdmFuLW9yYW5nZS1saWdodCk7LS12YW4tc3VibWl0LWJhci10aXAtaWNvbi1zaXplOjEycHg7LS12YW4tc3VibWl0LWJhci1idXR0b24taGVpZ2h0OjQwcHg7LS12YW4tc3VibWl0LWJhci1wYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctbWQpfS52YW4tc3VibWl0LWJhcnt6LWluZGV4OnZhcigtLXZhbi1zdWJtaXQtYmFyLXotaW5kZXgpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXN1Ym1pdC1iYXItYmFja2dyb3VuZCk7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7d2lkdGg6MTAwJTtwb3NpdGlvbjpmaXhlZDtib3R0b206MDtsZWZ0OjB9LnZhbi1zdWJtaXQtYmFyX190aXB7cGFkZGluZzp2YXIoLS12YW4tc3VibWl0LWJhci10aXAtcGFkZGluZyk7Y29sb3I6dmFyKC0tdmFuLXN1Ym1pdC1iYXItdGlwLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXN1Ym1pdC1iYXItdGlwLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXN1Ym1pdC1iYXItdGlwLWxpbmUtaGVpZ2h0KTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1zdWJtaXQtYmFyLXRpcC1iYWNrZ3JvdW5kKX0udmFuLXN1Ym1pdC1iYXJfX3RpcC1pY29ue21hcmdpbi1yaWdodDp2YXIoLS12YW4tcGFkZGluZy1iYXNlKTtmb250LXNpemU6dmFyKC0tdmFuLXN1Ym1pdC1iYXItdGlwLWljb24tc2l6ZSk7dmVydGljYWwtYWxpZ246bWlkZGxlfS52YW4tc3VibWl0LWJhcl9fdGlwLXRleHR7dmVydGljYWwtYWxpZ246bWlkZGxlfS52YW4tc3VibWl0LWJhcl9fYmFye2hlaWdodDp2YXIoLS12YW4tc3VibWl0LWJhci1oZWlnaHQpO3BhZGRpbmc6dmFyKC0tdmFuLXN1Ym1pdC1iYXItcGFkZGluZyk7Zm9udC1zaXplOnZhcigtLXZhbi1zdWJtaXQtYmFyLXRleHQtZm9udC1zaXplKTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0udmFuLXN1Ym1pdC1iYXJfX3RleHR7cGFkZGluZy1yaWdodDp2YXIoLS12YW4tcGFkZGluZy1zbSk7Y29sb3I6dmFyKC0tdmFuLXN1Ym1pdC1iYXItdGV4dC1jb2xvcik7dGV4dC1hbGlnbjpyaWdodDtmbGV4OjF9LnZhbi1zdWJtaXQtYmFyX190ZXh0IHNwYW57ZGlzcGxheTppbmxpbmUtYmxvY2t9LnZhbi1zdWJtaXQtYmFyX19zdWZmaXgtbGFiZWx7bWFyZ2luLWxlZnQ6dmFyKC0tdmFuLXBhZGRpbmctYmFzZSk7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCl9LnZhbi1zdWJtaXQtYmFyX19wcmljZXtjb2xvcjp2YXIoLS12YW4tc3VibWl0LWJhci1wcmljZS1jb2xvcik7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCk7Zm9udC1zaXplOnZhcigtLXZhbi1zdWJtaXQtYmFyLXByaWNlLWZvbnQtc2l6ZSk7bWFyZ2luLWxlZnQ6dmFyKC0tdmFuLXBhZGRpbmctYmFzZSl9LnZhbi1zdWJtaXQtYmFyX19wcmljZS1pbnRlZ2Vye2ZvbnQtc2l6ZTp2YXIoLS12YW4tc3VibWl0LWJhci1wcmljZS1pbnRlZ2VyLWZvbnQtc2l6ZSk7Zm9udC1mYW1pbHk6dmFyKC0tdmFuLXN1Ym1pdC1iYXItcHJpY2UtZm9udCl9LnZhbi1zdWJtaXQtYmFyX19idXR0b257d2lkdGg6dmFyKC0tdmFuLXN1Ym1pdC1iYXItYnV0dG9uLXdpZHRoKTtoZWlnaHQ6dmFyKC0tdmFuLXN1Ym1pdC1iYXItYnV0dG9uLWhlaWdodCk7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCk7Ym9yZGVyOm5vbmV9LnZhbi1zdWJtaXQtYmFyX19idXR0b24tLWRhbmdlcntiYWNrZ3JvdW5kOnZhcigtLXZhbi1ncmFkaWVudC1yZWQpfTpyb290LDpob3N0ey0tdmFuLXNpZ25hdHVyZS1wYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLXhzKTstLXZhbi1zaWduYXR1cmUtY29udGVudC1oZWlnaHQ6MjAwcHg7LS12YW4tc2lnbmF0dXJlLWNvbnRlbnQtYmFja2dyb3VuZDp2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1zaWduYXR1cmUtY29udGVudC1ib3JkZXI6MXB4IGRvdHRlZCAjZGFkYWRhfS52YW4tc2lnbmF0dXJle3BhZGRpbmc6dmFyKC0tdmFuLXNpZ25hdHVyZS1wYWRkaW5nKX0udmFuLXNpZ25hdHVyZV9fY29udGVudHtoZWlnaHQ6dmFyKC0tdmFuLXNpZ25hdHVyZS1jb250ZW50LWhlaWdodCk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tc2lnbmF0dXJlLWNvbnRlbnQtYmFja2dyb3VuZCk7Ym9yZGVyOnZhcigtLXZhbi1zaWduYXR1cmUtY29udGVudC1ib3JkZXIpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1sZyk7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbn0udmFuLXNpZ25hdHVyZV9fY29udGVudCBjYW52YXN7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0udmFuLXNpZ25hdHVyZV9fZm9vdGVye2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtkaXNwbGF5OmZsZXh9LnZhbi1zaWduYXR1cmVfX2Zvb3RlciAudmFuLWJ1dHRvbntwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctbWQpO21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmcteHMpO21hcmdpbi1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLXhzKX06cm9vdCw6aG9zdHstLXZhbi1jb250YWN0LWVkaXQtcGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tY29udGFjdC1lZGl0LWZpZWxkcy1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tZCk7LS12YW4tY29udGFjdC1lZGl0LWJ1dHRvbnMtcGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy14bCkgMDstLXZhbi1jb250YWN0LWVkaXQtYnV0dG9uLW1hcmdpbi1ib3R0b206dmFyKC0tdmFuLXBhZGRpbmctc20pOy0tdmFuLWNvbnRhY3QtZWRpdC1idXR0b24tZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLWNvbnRhY3QtZWRpdC1maWVsZC1sYWJlbC13aWR0aDo0LjFlbX0udmFuLWNvbnRhY3QtZWRpdHtwYWRkaW5nOnZhcigtLXZhbi1jb250YWN0LWVkaXQtcGFkZGluZyl9LnZhbi1jb250YWN0LWVkaXRfX2ZpZWxkc3tib3JkZXItcmFkaXVzOnZhcigtLXZhbi1jb250YWN0LWVkaXQtZmllbGRzLXJhZGl1cyk7b3ZlcmZsb3c6aGlkZGVufS52YW4tY29udGFjdC1lZGl0X19maWVsZHMgLnZhbi1maWVsZF9fbGFiZWx7d2lkdGg6dmFyKC0tdmFuLWNvbnRhY3QtZWRpdC1maWVsZC1sYWJlbC13aWR0aCl9LnZhbi1jb250YWN0LWVkaXRfX3N3aXRjaC1jZWxse2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLWNvbnRhY3QtZWRpdC1maWVsZHMtcmFkaXVzKTttYXJnaW4tdG9wOjEwcHg7cGFkZGluZy10b3A6OXB4O3BhZGRpbmctYm90dG9tOjlweH0udmFuLWNvbnRhY3QtZWRpdF9fYnV0dG9uc3twYWRkaW5nOnZhcigtLXZhbi1jb250YWN0LWVkaXQtYnV0dG9ucy1wYWRkaW5nKX0udmFuLWNvbnRhY3QtZWRpdF9fYnV0dG9ue21hcmdpbi1ib3R0b206dmFyKC0tdmFuLWNvbnRhY3QtZWRpdC1idXR0b24tbWFyZ2luLWJvdHRvbSk7Zm9udC1zaXplOnZhcigtLXZhbi1jb250YWN0LWVkaXQtYnV0dG9uLWZvbnQtc2l6ZSl9OnJvb3QsOmhvc3R7LS12YW4tYWN0aW9uLWJhci1idXR0b24taGVpZ2h0OjQwcHg7LS12YW4tYWN0aW9uLWJhci1idXR0b24td2FybmluZy1jb2xvcjp2YXIoLS12YW4tZ3JhZGllbnQtb3JhbmdlKTstLXZhbi1hY3Rpb24tYmFyLWJ1dHRvbi1kYW5nZXItY29sb3I6dmFyKC0tdmFuLWdyYWRpZW50LXJlZCl9LnZhbi1hY3Rpb24tYmFyLWJ1dHRvbntoZWlnaHQ6dmFyKC0tdmFuLWFjdGlvbi1iYXItYnV0dG9uLWhlaWdodCk7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCk7Zm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDtmbGV4OjF9LnZhbi1hY3Rpb24tYmFyLWJ1dHRvbi0tZmlyc3R7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLW1heCk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLW1heCk7bWFyZ2luLWxlZnQ6NXB4fS52YW4tYWN0aW9uLWJhci1idXR0b24tLWxhc3R7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tYXgpO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWF4KTttYXJnaW4tcmlnaHQ6NXB4fS52YW4tYWN0aW9uLWJhci1idXR0b24tLXdhcm5pbmd7YmFja2dyb3VuZDp2YXIoLS12YW4tYWN0aW9uLWJhci1idXR0b24td2FybmluZy1jb2xvcil9LnZhbi1hY3Rpb24tYmFyLWJ1dHRvbi0tZGFuZ2Vye2JhY2tncm91bmQ6dmFyKC0tdmFuLWFjdGlvbi1iYXItYnV0dG9uLWRhbmdlci1jb2xvcil9QG1lZGlhICh3aWR0aDw9MzIxcHgpey52YW4tYWN0aW9uLWJhci1idXR0b257Zm9udC1zaXplOjEzcHh9fTpyb290LDpob3N0ey0tdmFuLW92ZXJsYXktei1pbmRleDoxOy0tdmFuLW92ZXJsYXktYmFja2dyb3VuZDojMDAwMDAwYjN9LnZhbi1vdmVybGF5e3otaW5kZXg6dmFyKC0tdmFuLW92ZXJsYXktei1pbmRleCk7YmFja2dyb3VuZDp2YXIoLS12YW4tb3ZlcmxheS1iYWNrZ3JvdW5kKTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MH06cm9vdCw6aG9zdHstLXZhbi1wb3B1cC1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLXBvcHVwLXRyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKTstLXZhbi1wb3B1cC1yb3VuZC1yYWRpdXM6MTZweDstLXZhbi1wb3B1cC1jbG9zZS1pY29uLXNpemU6MjJweDstLXZhbi1wb3B1cC1jbG9zZS1pY29uLWNvbG9yOnZhcigtLXZhbi1ncmF5LTUpOy0tdmFuLXBvcHVwLWNsb3NlLWljb24tbWFyZ2luOjE2cHg7LS12YW4tcG9wdXAtY2xvc2UtaWNvbi16LWluZGV4OjF9LnZhbi1vdmVyZmxvdy1oaWRkZW57b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0udmFuLXBvcHVwe2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kOnZhcigtLXZhbi1wb3B1cC1iYWNrZ3JvdW5kKTttYXgtaGVpZ2h0OjEwMCU7dHJhbnNpdGlvbjp2YXIoLS12YW4tcG9wdXAtdHJhbnNpdGlvbik7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7cG9zaXRpb246Zml4ZWQ7b3ZlcmZsb3cteTphdXRvfS52YW4tcG9wdXAtLWNlbnRlcnt3aWR0aDpmaXQtY29udGVudDttYXgtd2lkdGg6Y2FsYygxMDB2dyAtIHZhcigtLXZhbi1wYWRkaW5nLW1kKSAqIDIpO21hcmdpbjowIGF1dG87dG9wOjUwJTtsZWZ0OjA7cmlnaHQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0udmFuLXBvcHVwLS1jZW50ZXIudmFuLXBvcHVwLS1yb3VuZHtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1wb3B1cC1yb3VuZC1yYWRpdXMpfS52YW4tcG9wdXAtLXRvcHt3aWR0aDoxMDAlO3RvcDowO2xlZnQ6MH0udmFuLXBvcHVwLS10b3AudmFuLXBvcHVwLS1yb3VuZHtib3JkZXItcmFkaXVzOjAgMCB2YXIoLS12YW4tcG9wdXAtcm91bmQtcmFkaXVzKSB2YXIoLS12YW4tcG9wdXAtcm91bmQtcmFkaXVzKX0udmFuLXBvcHVwLS1yaWdodHt0b3A6NTAlO3JpZ2h0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LnZhbi1wb3B1cC0tcmlnaHQudmFuLXBvcHVwLS1yb3VuZHtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1wb3B1cC1yb3VuZC1yYWRpdXMpIDAgMCB2YXIoLS12YW4tcG9wdXAtcm91bmQtcmFkaXVzKX0udmFuLXBvcHVwLS1ib3R0b217d2lkdGg6MTAwJTtib3R0b206MDtsZWZ0OjB9LnZhbi1wb3B1cC0tYm90dG9tLnZhbi1wb3B1cC0tcm91bmR7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcG9wdXAtcm91bmQtcmFkaXVzKSB2YXIoLS12YW4tcG9wdXAtcm91bmQtcmFkaXVzKSAwIDB9LnZhbi1wb3B1cC0tbGVmdHt0b3A6NTAlO2xlZnQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0udmFuLXBvcHVwLS1sZWZ0LnZhbi1wb3B1cC0tcm91bmR7Ym9yZGVyLXJhZGl1czowIHZhcigtLXZhbi1wb3B1cC1yb3VuZC1yYWRpdXMpIHZhcigtLXZhbi1wb3B1cC1yb3VuZC1yYWRpdXMpIDB9LnZhbi1wb3B1cC1zbGlkZS10b3AtZW50ZXItYWN0aXZlLC52YW4tcG9wdXAtc2xpZGUtbGVmdC1lbnRlci1hY3RpdmUsLnZhbi1wb3B1cC1zbGlkZS1yaWdodC1lbnRlci1hY3RpdmUsLnZhbi1wb3B1cC1zbGlkZS1ib3R0b20tZW50ZXItYWN0aXZle3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLXZhbi1lYXNlLW91dCl9LnZhbi1wb3B1cC1zbGlkZS10b3AtbGVhdmUtYWN0aXZlLC52YW4tcG9wdXAtc2xpZGUtbGVmdC1sZWF2ZS1hY3RpdmUsLnZhbi1wb3B1cC1zbGlkZS1yaWdodC1sZWF2ZS1hY3RpdmUsLnZhbi1wb3B1cC1zbGlkZS1ib3R0b20tbGVhdmUtYWN0aXZle3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLXZhbi1lYXNlLWluKX0udmFuLXBvcHVwLXNsaWRlLXRvcC1lbnRlci1mcm9tLC52YW4tcG9wdXAtc2xpZGUtdG9wLWxlYXZlLWFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTAwJSl9LnZhbi1wb3B1cC1zbGlkZS1yaWdodC1lbnRlci1mcm9tLC52YW4tcG9wdXAtc2xpZGUtcmlnaHQtbGVhdmUtYWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGUoMTAwJSwtNTAlKX0udmFuLXBvcHVwLXNsaWRlLWJvdHRvbS1lbnRlci1mcm9tLC52YW4tcG9wdXAtc2xpZGUtYm90dG9tLWxlYXZlLWFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKX0udmFuLXBvcHVwLXNsaWRlLWxlZnQtZW50ZXItZnJvbSwudmFuLXBvcHVwLXNsaWRlLWxlZnQtbGVhdmUtYWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEwMCUsLTUwJSl9LnZhbi1wb3B1cF9fY2xvc2UtaWNvbnt6LWluZGV4OnZhcigtLXZhbi1wb3B1cC1jbG9zZS1pY29uLXotaW5kZXgpO2NvbG9yOnZhcigtLXZhbi1wb3B1cC1jbG9zZS1pY29uLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXBvcHVwLWNsb3NlLWljb24tc2l6ZSk7cG9zaXRpb246YWJzb2x1dGV9LnZhbi1wb3B1cF9fY2xvc2UtaWNvbi0tdG9wLWxlZnR7dG9wOnZhcigtLXZhbi1wb3B1cC1jbG9zZS1pY29uLW1hcmdpbik7bGVmdDp2YXIoLS12YW4tcG9wdXAtY2xvc2UtaWNvbi1tYXJnaW4pfS52YW4tcG9wdXBfX2Nsb3NlLWljb24tLXRvcC1yaWdodHt0b3A6dmFyKC0tdmFuLXBvcHVwLWNsb3NlLWljb24tbWFyZ2luKTtyaWdodDp2YXIoLS12YW4tcG9wdXAtY2xvc2UtaWNvbi1tYXJnaW4pfS52YW4tcG9wdXBfX2Nsb3NlLWljb24tLWJvdHRvbS1sZWZ0e2JvdHRvbTp2YXIoLS12YW4tcG9wdXAtY2xvc2UtaWNvbi1tYXJnaW4pO2xlZnQ6dmFyKC0tdmFuLXBvcHVwLWNsb3NlLWljb24tbWFyZ2luKX0udmFuLXBvcHVwX19jbG9zZS1pY29uLS1ib3R0b20tcmlnaHR7cmlnaHQ6dmFyKC0tdmFuLXBvcHVwLWNsb3NlLWljb24tbWFyZ2luKTtib3R0b206dmFyKC0tdmFuLXBvcHVwLWNsb3NlLWljb24tbWFyZ2luKX06cm9vdCw6aG9zdHstLXZhbi1zaGFyZS1zaGVldC1oZWFkZXItcGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy1zbSkgdmFyKC0tdmFuLXBhZGRpbmctbWQpOy0tdmFuLXNoYXJlLXNoZWV0LXRpdGxlLWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1zaGFyZS1zaGVldC10aXRsZS1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tc2hhcmUtc2hlZXQtdGl0bGUtbGluZS1oZWlnaHQ6dmFyKC0tdmFuLWxpbmUtaGVpZ2h0LW1kKTstLXZhbi1zaGFyZS1zaGVldC1kZXNjcmlwdGlvbi1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvci0yKTstLXZhbi1zaGFyZS1zaGVldC1kZXNjcmlwdGlvbi1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1zbSk7LS12YW4tc2hhcmUtc2hlZXQtZGVzY3JpcHRpb24tbGluZS1oZWlnaHQ6MTZweDstLXZhbi1zaGFyZS1zaGVldC1pY29uLXNpemU6NDhweDstLXZhbi1zaGFyZS1zaGVldC1vcHRpb24tbmFtZS1jb2xvcjp2YXIoLS12YW4tZ3JheS03KTstLXZhbi1zaGFyZS1zaGVldC1vcHRpb24tbmFtZS1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1zbSk7LS12YW4tc2hhcmUtc2hlZXQtb3B0aW9uLWRlc2NyaXB0aW9uLWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLXNoYXJlLXNoZWV0LW9wdGlvbi1kZXNjcmlwdGlvbi1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1zbSk7LS12YW4tc2hhcmUtc2hlZXQtY2FuY2VsLWJ1dHRvbi1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7LS12YW4tc2hhcmUtc2hlZXQtY2FuY2VsLWJ1dHRvbi1oZWlnaHQ6NDhweDstLXZhbi1zaGFyZS1zaGVldC1jYW5jZWwtYnV0dG9uLWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQtMil9LnZhbi1zaGFyZS1zaGVldF9faGVhZGVye3BhZGRpbmc6dmFyKC0tdmFuLXNoYXJlLXNoZWV0LWhlYWRlci1wYWRkaW5nKTt0ZXh0LWFsaWduOmNlbnRlcn0udmFuLXNoYXJlLXNoZWV0X190aXRsZXttYXJnaW4tdG9wOnZhcigtLXZhbi1wYWRkaW5nLXhzKTtjb2xvcjp2YXIoLS12YW4tc2hhcmUtc2hlZXQtdGl0bGUtY29sb3IpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6dmFyKC0tdmFuLXNoYXJlLXNoZWV0LXRpdGxlLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXNoYXJlLXNoZWV0LXRpdGxlLWxpbmUtaGVpZ2h0KX0udmFuLXNoYXJlLXNoZWV0X19kZXNjcmlwdGlvbnttYXJnaW4tdG9wOnZhcigtLXZhbi1wYWRkaW5nLXhzKTtjb2xvcjp2YXIoLS12YW4tc2hhcmUtc2hlZXQtZGVzY3JpcHRpb24tY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tc2hhcmUtc2hlZXQtZGVzY3JpcHRpb24tZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tc2hhcmUtc2hlZXQtZGVzY3JpcHRpb24tbGluZS1oZWlnaHQpO2Rpc3BsYXk6YmxvY2t9LnZhbi1zaGFyZS1zaGVldF9fb3B0aW9uc3twYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLW1kKSAwIHZhcigtLXZhbi1wYWRkaW5nLW1kKSB2YXIoLS12YW4tcGFkZGluZy14cyk7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmF1dG8gdmlzaWJsZX0udmFuLXNoYXJlLXNoZWV0X19vcHRpb25zLS1ib3JkZXI6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIgIjtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO3JpZ2h0OjA7bGVmdDp2YXIoLS12YW4tcGFkZGluZy1tZCk7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tdmFuLWJvcmRlci1jb2xvcik7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnNjYWxlWSguNSl9LnZhbi1zaGFyZS1zaGVldF9fb3B0aW9uczo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjB9LnZhbi1zaGFyZS1zaGVldF9fb3B0aW9uey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS52YW4tc2hhcmUtc2hlZXRfX2ljb24sLnZhbi1zaGFyZS1zaGVldF9faW1hZ2UtaWNvbnt3aWR0aDp2YXIoLS12YW4tc2hhcmUtc2hlZXQtaWNvbi1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLXNoYXJlLXNoZWV0LWljb24tc2l6ZSk7bWFyZ2luOjAgdmFyKC0tdmFuLXBhZGRpbmctbWQpfS52YW4tc2hhcmUtc2hlZXRfX2ljb257Y29sb3I6dmFyKC0tdmFuLWdyYXktNyk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tZ3JheS0yKTtib3JkZXItcmFkaXVzOjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS52YW4tc2hhcmUtc2hlZXRfX2ljb24tLWxpbmssLnZhbi1zaGFyZS1zaGVldF9faWNvbi0tcG9zdGVyLC52YW4tc2hhcmUtc2hlZXRfX2ljb24tLXFyY29kZXtmb250LXNpemU6MjZweH0udmFuLXNoYXJlLXNoZWV0X19pY29uLS13ZWFwcC1xcmNvZGV7Zm9udC1zaXplOjI4cHh9LnZhbi1zaGFyZS1zaGVldF9faWNvbi0tcXEsLnZhbi1zaGFyZS1zaGVldF9faWNvbi0td2VpYm8sLnZhbi1zaGFyZS1zaGVldF9faWNvbi0td2VjaGF0LC52YW4tc2hhcmUtc2hlZXRfX2ljb24tLXdlY2hhdC1tb21lbnRze2NvbG9yOnZhcigtLXZhbi13aGl0ZSk7Zm9udC1zaXplOjMwcHh9LnZhbi1zaGFyZS1zaGVldF9faWNvbi0tcXF7YmFja2dyb3VuZC1jb2xvcjojMzhiOWZhfS52YW4tc2hhcmUtc2hlZXRfX2ljb24tLXdlY2hhdHtiYWNrZ3JvdW5kLWNvbG9yOiMwYmMxNWZ9LnZhbi1zaGFyZS1zaGVldF9faWNvbi0td2VpYm97YmFja2dyb3VuZC1jb2xvcjojZWU1NzVlfS52YW4tc2hhcmUtc2hlZXRfX2ljb24tLXdlY2hhdC1tb21lbnRze2JhY2tncm91bmQtY29sb3I6IzdiYzg0NX0udmFuLXNoYXJlLXNoZWV0X19uYW1le21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmcteHMpO3BhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy1iYXNlKTtjb2xvcjp2YXIoLS12YW4tc2hhcmUtc2hlZXQtb3B0aW9uLW5hbWUtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tc2hhcmUtc2hlZXQtb3B0aW9uLW5hbWUtZm9udC1zaXplKX0udmFuLXNoYXJlLXNoZWV0X19vcHRpb24tZGVzY3JpcHRpb257cGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLWJhc2UpO2NvbG9yOnZhcigtLXZhbi1zaGFyZS1zaGVldC1vcHRpb24tZGVzY3JpcHRpb24tY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tc2hhcmUtc2hlZXQtb3B0aW9uLWRlc2NyaXB0aW9uLWZvbnQtc2l6ZSl9LnZhbi1zaGFyZS1zaGVldF9fY2FuY2Vse3dpZHRoOjEwMCU7Zm9udC1zaXplOnZhcigtLXZhbi1zaGFyZS1zaGVldC1jYW5jZWwtYnV0dG9uLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXNoYXJlLXNoZWV0LWNhbmNlbC1idXR0b24taGVpZ2h0KTt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLXZhbi1zaGFyZS1zaGVldC1jYW5jZWwtYnV0dG9uLWJhY2tncm91bmQpO2N1cnNvcjpwb2ludGVyO2JvcmRlcjpub25lO3BhZGRpbmc6MDtkaXNwbGF5OmJsb2NrfS52YW4tc2hhcmUtc2hlZXRfX2NhbmNlbDpiZWZvcmV7aGVpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLXhzKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1iYWNrZ3JvdW5kKTtjb250ZW50OiIgIjtkaXNwbGF5OmJsb2NrfS52YW4tc2hhcmUtc2hlZXRfX2NhbmNlbDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tYWN0aXZlLWNvbG9yKX06cm9vdCw6aG9zdHstLXZhbi1wb3BvdmVyLWFycm93LXNpemU6NnB4Oy0tdmFuLXBvcG92ZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbGcpOy0tdmFuLXBvcG92ZXItYWN0aW9uLXdpZHRoOjEyOHB4Oy0tdmFuLXBvcG92ZXItYWN0aW9uLWhlaWdodDo0NHB4Oy0tdmFuLXBvcG92ZXItYWN0aW9uLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1wb3BvdmVyLWFjdGlvbi1saW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpOy0tdmFuLXBvcG92ZXItYWN0aW9uLWljb24tc2l6ZToyMHB4Oy0tdmFuLXBvcG92ZXItaG9yaXpvbnRhbC1hY3Rpb24taGVpZ2h0OjM0cHg7LS12YW4tcG9wb3Zlci1ob3Jpem9udGFsLWFjdGlvbi1pY29uLXNpemU6MTZweDstLXZhbi1wb3BvdmVyLWxpZ2h0LXRleHQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXBvcG92ZXItbGlnaHQtYmFja2dyb3VuZDp2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1wb3BvdmVyLWxpZ2h0LWFjdGlvbi1kaXNhYmxlZC10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLXBvcG92ZXItZGFyay10ZXh0LWNvbG9yOnZhcigtLXZhbi13aGl0ZSk7LS12YW4tcG9wb3Zlci1kYXJrLWJhY2tncm91bmQ6IzRhNGE0YTstLXZhbi1wb3BvdmVyLWRhcmstYWN0aW9uLWRpc2FibGVkLXRleHQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMil9LnZhbi1wb3BvdmVye2JhY2tncm91bmQtY29sb3I6IzAwMDA7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMsdHJhbnNmb3JtIC4xNXM7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3c6dmlzaWJsZX0udmFuLXBvcG92ZXJfX3dyYXBwZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnZhbi1wb3BvdmVyX19hcnJvd3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiMwMDAwO2JvcmRlci13aWR0aDp2YXIoLS12YW4tcG9wb3Zlci1hcnJvdy1zaXplKTt3aWR0aDowO2hlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlfS52YW4tcG9wb3Zlcl9fY29udGVudHtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1wb3BvdmVyLXJhZGl1cyk7b3ZlcmZsb3c6aGlkZGVufS52YW4tcG9wb3Zlcl9fY29udGVudC0taG9yaXpvbnRhbHt3aWR0aDptYXgtY29udGVudDtkaXNwbGF5OmZsZXh9LnZhbi1wb3BvdmVyX19jb250ZW50LS1ob3Jpem9udGFsIC52YW4tcG9wb3Zlcl9fYWN0aW9ue3dpZHRoOmF1dG87aGVpZ2h0OnZhcigtLXZhbi1wb3BvdmVyLWhvcml6b250YWwtYWN0aW9uLWhlaWdodCk7cGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLXNtKTtmbGV4Om5vbmV9LnZhbi1wb3BvdmVyX19jb250ZW50LS1ob3Jpem9udGFsIC52YW4tcG9wb3Zlcl9fYWN0aW9uOmxhc3QtY2hpbGQ6YWZ0ZXJ7ZGlzcGxheTpub25lfS52YW4tcG9wb3Zlcl9fY29udGVudC0taG9yaXpvbnRhbCAudmFuLXBvcG92ZXJfX2FjdGlvbi1pY29ue21hcmdpbi1yaWdodDp2YXIoLS12YW4tcGFkZGluZy1iYXNlKTtmb250LXNpemU6dmFyKC0tdmFuLXBvcG92ZXItaG9yaXpvbnRhbC1hY3Rpb24taWNvbi1zaXplKX0udmFuLXBvcG92ZXJfX2FjdGlvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6dmFyKC0tdmFuLXBvcG92ZXItYWN0aW9uLXdpZHRoKTtoZWlnaHQ6dmFyKC0tdmFuLXBvcG92ZXItYWN0aW9uLWhlaWdodCk7cGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLW1kKTtmb250LXNpemU6dmFyKC0tdmFuLXBvcG92ZXItYWN0aW9uLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWxpbmUtaGVpZ2h0LW1kKTtjdXJzb3I6cG9pbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4tcG9wb3Zlcl9fYWN0aW9uOmxhc3QtY2hpbGQgLnZhbi1wb3BvdmVyX19hY3Rpb24tdGV4dDphZnRlcntkaXNwbGF5Om5vbmV9LnZhbi1wb3BvdmVyX19hY3Rpb24tdGV4dHtmbGV4OjE7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4fS52YW4tcG9wb3Zlcl9fYWN0aW9uLWljb257bWFyZ2luLXJpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLXhzKTtmb250LXNpemU6dmFyKC0tdmFuLXBvcG92ZXItYWN0aW9uLWljb24tc2l6ZSl9LnZhbi1wb3BvdmVyX19hY3Rpb24tLXdpdGgtaWNvbiAudmFuLXBvcG92ZXJfX2FjdGlvbi10ZXh0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnRePXRvcF0gLnZhbi1wb3BvdmVyX19hcnJvd3ttYXJnaW4tYm90dG9tOmNhbGModmFyKC0tdmFuLXBvcG92ZXItYXJyb3ctc2l6ZSkgKiAtMSk7Ym9yZGVyLXRvcC1jb2xvcjpjdXJyZW50Q29sb3I7Ym9yZGVyLWJvdHRvbS13aWR0aDowO2JvdHRvbTowfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9dG9wXXt0cmFuc2Zvcm0tb3JpZ2luOjUwJSAxMDAlfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9dG9wXSAudmFuLXBvcG92ZXJfX2Fycm93e2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD10b3Atc3RhcnRde3RyYW5zZm9ybS1vcmlnaW46MCAxMDAlfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9dG9wLXN0YXJ0XSAudmFuLXBvcG92ZXJfX2Fycm93e2xlZnQ6dmFyKC0tdmFuLXBhZGRpbmctbWQpfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9dG9wLWVuZF17dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDEwMCV9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD10b3AtZW5kXSAudmFuLXBvcG92ZXJfX2Fycm93e3JpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKX0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1sZWZ0XSAudmFuLXBvcG92ZXJfX2Fycm93e21hcmdpbi1yaWdodDpjYWxjKHZhcigtLXZhbi1wb3BvdmVyLWFycm93LXNpemUpICogLTEpO2JvcmRlci1sZWZ0LWNvbG9yOmN1cnJlbnRDb2xvcjtib3JkZXItcmlnaHQtd2lkdGg6MDtyaWdodDowfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9bGVmdF17dHJhbnNmb3JtLW9yaWdpbjoxMDAlfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9bGVmdF0gLnZhbi1wb3BvdmVyX19hcnJvd3t0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9bGVmdC1zdGFydF17dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDB9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD1sZWZ0LXN0YXJ0XSAudmFuLXBvcG92ZXJfX2Fycm93e3RvcDp2YXIoLS12YW4tcGFkZGluZy1tZCl9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD1sZWZ0LWVuZF17dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDEwMCV9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD1sZWZ0LWVuZF0gLnZhbi1wb3BvdmVyX19hcnJvd3tib3R0b206dmFyKC0tdmFuLXBhZGRpbmctbWQpfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnRePXJpZ2h0XSAudmFuLXBvcG92ZXJfX2Fycm93e21hcmdpbi1sZWZ0OmNhbGModmFyKC0tdmFuLXBvcG92ZXItYXJyb3ctc2l6ZSkgKiAtMSk7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQtY29sb3I6Y3VycmVudENvbG9yO2xlZnQ6MH0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50PXJpZ2h0XXt0cmFuc2Zvcm0tb3JpZ2luOjB9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD1yaWdodF0gLnZhbi1wb3BvdmVyX19hcnJvd3t0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9cmlnaHQtc3RhcnRde3RyYW5zZm9ybS1vcmlnaW46MCAwfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9cmlnaHQtc3RhcnRdIC52YW4tcG9wb3Zlcl9fYXJyb3d7dG9wOnZhcigtLXZhbi1wYWRkaW5nLW1kKX0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50PXJpZ2h0LWVuZF17dHJhbnNmb3JtLW9yaWdpbjowIDEwMCV9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD1yaWdodC1lbmRdIC52YW4tcG9wb3Zlcl9fYXJyb3d7Ym90dG9tOnZhcigtLXZhbi1wYWRkaW5nLW1kKX0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1ib3R0b21dIC52YW4tcG9wb3Zlcl9fYXJyb3d7bWFyZ2luLXRvcDpjYWxjKHZhcigtLXZhbi1wb3BvdmVyLWFycm93LXNpemUpICogLTEpO2JvcmRlci10b3Atd2lkdGg6MDtib3JkZXItYm90dG9tLWNvbG9yOmN1cnJlbnRDb2xvcjt0b3A6MH0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50PWJvdHRvbV17dHJhbnNmb3JtLW9yaWdpbjo1MCUgMH0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50PWJvdHRvbV0gLnZhbi1wb3BvdmVyX19hcnJvd3tsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9Ym90dG9tLXN0YXJ0XXt0cmFuc2Zvcm0tb3JpZ2luOjAgMH0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50PWJvdHRvbS1zdGFydF0gLnZhbi1wb3BvdmVyX19hcnJvd3tsZWZ0OnZhcigtLXZhbi1wYWRkaW5nLW1kKX0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50PWJvdHRvbS1lbmRde3RyYW5zZm9ybS1vcmlnaW46MTAwJSAwfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9Ym90dG9tLWVuZF0gLnZhbi1wb3BvdmVyX19hcnJvd3tyaWdodDp2YXIoLS12YW4tcGFkZGluZy1tZCl9LnZhbi1wb3BvdmVyLS1saWdodHtjb2xvcjp2YXIoLS12YW4tcG9wb3Zlci1saWdodC10ZXh0LWNvbG9yKX0udmFuLXBvcG92ZXItLWxpZ2h0IC52YW4tcG9wb3Zlcl9fY29udGVudHtiYWNrZ3JvdW5kOnZhcigtLXZhbi1wb3BvdmVyLWxpZ2h0LWJhY2tncm91bmQpO2JveC1zaGFkb3c6MCAycHggMTJweCAjMzIzMjMzMWZ9LnZhbi1wb3BvdmVyLS1saWdodCAudmFuLXBvcG92ZXJfX2Fycm93e2NvbG9yOnZhcigtLXZhbi1wb3BvdmVyLWxpZ2h0LWJhY2tncm91bmQpfS52YW4tcG9wb3Zlci0tbGlnaHQgLnZhbi1wb3BvdmVyX19hY3Rpb246YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWFjdGl2ZS1jb2xvcil9LnZhbi1wb3BvdmVyLS1saWdodCAudmFuLXBvcG92ZXJfX2FjdGlvbi0tZGlzYWJsZWR7Y29sb3I6dmFyKC0tdmFuLXBvcG92ZXItbGlnaHQtYWN0aW9uLWRpc2FibGVkLXRleHQtY29sb3IpO2N1cnNvcjpub3QtYWxsb3dlZH0udmFuLXBvcG92ZXItLWxpZ2h0IC52YW4tcG9wb3Zlcl9fYWN0aW9uLS1kaXNhYmxlZDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMDAwMH0udmFuLXBvcG92ZXItLWRhcmt7Y29sb3I6dmFyKC0tdmFuLXBvcG92ZXItZGFyay10ZXh0LWNvbG9yKX0udmFuLXBvcG92ZXItLWRhcmsgLnZhbi1wb3BvdmVyX19jb250ZW50e2JhY2tncm91bmQ6dmFyKC0tdmFuLXBvcG92ZXItZGFyay1iYWNrZ3JvdW5kKX0udmFuLXBvcG92ZXItLWRhcmsgLnZhbi1wb3BvdmVyX19hcnJvd3tjb2xvcjp2YXIoLS12YW4tcG9wb3Zlci1kYXJrLWJhY2tncm91bmQpfS52YW4tcG9wb3Zlci0tZGFyayAudmFuLXBvcG92ZXJfX2FjdGlvbjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMDAwM30udmFuLXBvcG92ZXItLWRhcmsgLnZhbi1wb3BvdmVyX19hY3Rpb24tLWRpc2FibGVke2NvbG9yOnZhcigtLXZhbi1wb3BvdmVyLWRhcmstYWN0aW9uLWRpc2FibGVkLXRleHQtY29sb3IpfS52YW4tcG9wb3Zlci0tZGFyayAudmFuLXBvcG92ZXJfX2FjdGlvbi0tZGlzYWJsZWQ6YWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwMDB9LnZhbi1wb3BvdmVyLS1kYXJrIC52YW4tcG9wb3Zlcl9fYWN0aW9uLXRleHQ6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLXZhbi1ncmF5LTcpfS52YW4tcG9wb3Zlci16b29tLWVudGVyLWZyb20sLnZhbi1wb3BvdmVyLXpvb20tbGVhdmUtYWN0aXZle29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoLjgpfS52YW4tcG9wb3Zlci16b29tLWVudGVyLWFjdGl2ZXt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS12YW4tZWFzZS1vdXQpfS52YW4tcG9wb3Zlci16b29tLWxlYXZlLWFjdGl2ZXt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS12YW4tZWFzZS1pbil9OnJvb3QsOmhvc3R7LS12YW4tbm90aWZ5LXRleHQtY29sb3I6dmFyKC0tdmFuLXdoaXRlKTstLXZhbi1ub3RpZnktcGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy14cykgdmFyKC0tdmFuLXBhZGRpbmctbWQpOy0tdmFuLW5vdGlmeS1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tbm90aWZ5LWxpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1tZCk7LS12YW4tbm90aWZ5LXByaW1hcnktYmFja2dyb3VuZDp2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tbm90aWZ5LXN1Y2Nlc3MtYmFja2dyb3VuZDp2YXIoLS12YW4tc3VjY2Vzcy1jb2xvcik7LS12YW4tbm90aWZ5LWRhbmdlci1iYWNrZ3JvdW5kOnZhcigtLXZhbi1kYW5nZXItY29sb3IpOy0tdmFuLW5vdGlmeS13YXJuaW5nLWJhY2tncm91bmQ6dmFyKC0tdmFuLXdhcm5pbmctY29sb3IpfS52YW4tbm90aWZ5e2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOnZhcigtLXZhbi1ub3RpZnktcGFkZGluZyk7Y29sb3I6dmFyKC0tdmFuLW5vdGlmeS10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLW5vdGlmeS1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1ub3RpZnktbGluZS1oZWlnaHQpO3doaXRlLXNwYWNlOnByZS13cmFwO3RleHQtYWxpZ246Y2VudGVyO3dvcmQtd3JhcDpicmVhay13b3JkO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0udmFuLW5vdGlmeS0tcHJpbWFyeXtiYWNrZ3JvdW5kOnZhcigtLXZhbi1ub3RpZnktcHJpbWFyeS1iYWNrZ3JvdW5kKX0udmFuLW5vdGlmeS0tc3VjY2Vzc3tiYWNrZ3JvdW5kOnZhcigtLXZhbi1ub3RpZnktc3VjY2Vzcy1iYWNrZ3JvdW5kKX0udmFuLW5vdGlmeS0tZGFuZ2Vye2JhY2tncm91bmQ6dmFyKC0tdmFuLW5vdGlmeS1kYW5nZXItYmFja2dyb3VuZCl9LnZhbi1ub3RpZnktLXdhcm5pbmd7YmFja2dyb3VuZDp2YXIoLS12YW4tbm90aWZ5LXdhcm5pbmctYmFja2dyb3VuZCl9OnJvb3QsOmhvc3R7LS12YW4tZGlhbG9nLXdpZHRoOjMyMHB4Oy0tdmFuLWRpYWxvZy1zbWFsbC1zY3JlZW4td2lkdGg6OTAlOy0tdmFuLWRpYWxvZy1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7LS12YW4tZGlhbG9nLXRyYW5zaXRpb246dmFyKC0tdmFuLWR1cmF0aW9uLWJhc2UpOy0tdmFuLWRpYWxvZy1yYWRpdXM6MTZweDstLXZhbi1kaWFsb2ctYmFja2dyb3VuZDp2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1kaWFsb2ctaGVhZGVyLWZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpOy0tdmFuLWRpYWxvZy1oZWFkZXItbGluZS1oZWlnaHQ6MjRweDstLXZhbi1kaWFsb2ctaGVhZGVyLXBhZGRpbmctdG9wOjI2cHg7LS12YW4tZGlhbG9nLWhlYWRlci1pc29sYXRlZC1wYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLWxnKSAwOy0tdmFuLWRpYWxvZy1tZXNzYWdlLXBhZGRpbmc6dmFyKC0tdmFuLXBhZGRpbmctbGcpOy0tdmFuLWRpYWxvZy1tZXNzYWdlLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1kaWFsb2ctbWVzc2FnZS1saW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpOy0tdmFuLWRpYWxvZy1tZXNzYWdlLW1heC1oZWlnaHQ6NjB2aDstLXZhbi1kaWFsb2ctaGFzLXRpdGxlLW1lc3NhZ2UtdGV4dC1jb2xvcjp2YXIoLS12YW4tZ3JheS03KTstLXZhbi1kaWFsb2ctaGFzLXRpdGxlLW1lc3NhZ2UtcGFkZGluZy10b3A6dmFyKC0tdmFuLXBhZGRpbmcteHMpOy0tdmFuLWRpYWxvZy1idXR0b24taGVpZ2h0OjQ4cHg7LS12YW4tZGlhbG9nLXJvdW5kLWJ1dHRvbi1oZWlnaHQ6MzZweDstLXZhbi1kaWFsb2ctY29uZmlybS1idXR0b24tdGV4dC1jb2xvcjp2YXIoLS12YW4tcHJpbWFyeS1jb2xvcil9LnZhbi1kaWFsb2d7d2lkdGg6dmFyKC0tdmFuLWRpYWxvZy13aWR0aCk7Zm9udC1zaXplOnZhcigtLXZhbi1kaWFsb2ctZm9udC1zaXplKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1kaWFsb2ctYmFja2dyb3VuZCk7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tZGlhbG9nLXJhZGl1cyk7YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47dHJhbnNpdGlvbjp2YXIoLS12YW4tZGlhbG9nLXRyYW5zaXRpb24pO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtLG9wYWNpdHk7dG9wOjQ1JTtvdmVyZmxvdzpoaWRkZW59QG1lZGlhICh3aWR0aDw9MzIxcHgpey52YW4tZGlhbG9ne3dpZHRoOnZhcigtLXZhbi1kaWFsb2ctc21hbGwtc2NyZWVuLXdpZHRoKX19LnZhbi1kaWFsb2dfX2hlYWRlcntjb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7cGFkZGluZy10b3A6dmFyKC0tdmFuLWRpYWxvZy1oZWFkZXItcGFkZGluZy10b3ApO2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1kaWFsb2ctaGVhZGVyLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS12YW4tZGlhbG9nLWhlYWRlci1saW5lLWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXJ9LnZhbi1kaWFsb2dfX2hlYWRlci0taXNvbGF0ZWR7cGFkZGluZzp2YXIoLS12YW4tZGlhbG9nLWhlYWRlci1pc29sYXRlZC1wYWRkaW5nKX0udmFuLWRpYWxvZ19fY29udGVudC0taXNvbGF0ZWR7YWxpZ24taXRlbXM6Y2VudGVyO21pbi1oZWlnaHQ6MTA0cHg7ZGlzcGxheTpmbGV4fS52YW4tZGlhbG9nX19tZXNzYWdle2NvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTttYXgtaGVpZ2h0OnZhcigtLXZhbi1kaWFsb2ctbWVzc2FnZS1tYXgtaGVpZ2h0KTtwYWRkaW5nOjI2cHggdmFyKC0tdmFuLWRpYWxvZy1tZXNzYWdlLXBhZGRpbmcpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tZGlhbG9nLW1lc3NhZ2UtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tZGlhbG9nLW1lc3NhZ2UtbGluZS1oZWlnaHQpO3doaXRlLXNwYWNlOnByZS13cmFwO3RleHQtYWxpZ246Y2VudGVyO3dvcmQtd3JhcDpicmVhay13b3JkOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO2ZsZXg6MTtvdmVyZmxvdy15OmF1dG99LnZhbi1kaWFsb2dfX21lc3NhZ2UtLWhhcy10aXRsZXtwYWRkaW5nLXRvcDp2YXIoLS12YW4tZGlhbG9nLWhhcy10aXRsZS1tZXNzYWdlLXBhZGRpbmctdG9wKTtjb2xvcjp2YXIoLS12YW4tZGlhbG9nLWhhcy10aXRsZS1tZXNzYWdlLXRleHQtY29sb3IpfS52YW4tZGlhbG9nX19tZXNzYWdlLS1sZWZ0e3RleHQtYWxpZ246bGVmdH0udmFuLWRpYWxvZ19fbWVzc2FnZS0tcmlnaHR7dGV4dC1hbGlnbjpyaWdodH0udmFuLWRpYWxvZ19fbWVzc2FnZS0tanVzdGlmeXt0ZXh0LWFsaWduOmp1c3RpZnl9LnZhbi1kaWFsb2dfX2Zvb3Rlcnstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVufS52YW4tZGlhbG9nX19jb25maXJtLC52YW4tZGlhbG9nX19jYW5jZWx7aGVpZ2h0OnZhcigtLXZhbi1kaWFsb2ctYnV0dG9uLWhlaWdodCk7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2ZsZXg6MTttYXJnaW46MH0udmFuLWRpYWxvZ19fY29uZmlybSwudmFuLWRpYWxvZ19fY29uZmlybTphY3RpdmV7Y29sb3I6dmFyKC0tdmFuLWRpYWxvZy1jb25maXJtLWJ1dHRvbi10ZXh0LWNvbG9yKX0udmFuLWRpYWxvZy0tcm91bmQtYnV0dG9uIC52YW4tZGlhbG9nX19mb290ZXJ7aGVpZ2h0OmF1dG87cGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy14cykgdmFyKC0tdmFuLXBhZGRpbmctbGcpIHZhcigtLXZhbi1wYWRkaW5nLW1kKTtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLWRpYWxvZy0tcm91bmQtYnV0dG9uIC52YW4tZGlhbG9nX19tZXNzYWdle3BhZGRpbmctYm90dG9tOnZhcigtLXZhbi1wYWRkaW5nLW1kKTtjb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcil9LnZhbi1kaWFsb2ctLXJvdW5kLWJ1dHRvbiAudmFuLWRpYWxvZ19fY29uZmlybSwudmFuLWRpYWxvZy0tcm91bmQtYnV0dG9uIC52YW4tZGlhbG9nX19jYW5jZWx7aGVpZ2h0OnZhcigtLXZhbi1kaWFsb2ctcm91bmQtYnV0dG9uLWhlaWdodCl9LnZhbi1kaWFsb2ctLXJvdW5kLWJ1dHRvbiAudmFuLWRpYWxvZ19fY29uZmlybXtjb2xvcjp2YXIoLS12YW4td2hpdGUpfS52YW4tZGlhbG9nLS1yb3VuZC1idXR0b24gLnZhbi1hY3Rpb24tYmFyLWJ1dHRvbi0tZmlyc3R7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLW1heCk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLW1heCl9LnZhbi1kaWFsb2ctLXJvdW5kLWJ1dHRvbiAudmFuLWFjdGlvbi1iYXItYnV0dG9uLS1sYXN0e2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWF4KTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLW1heCl9LnZhbi1kaWFsb2ctYm91bmNlLWVudGVyLWZyb217b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpc2NhbGUoLjcpfS52YW4tZGlhbG9nLWJvdW5jZS1sZWF2ZS1hY3RpdmV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpc2NhbGUoLjkpfTpyb290LDpob3N0ey0tdmFuLXRvYXN0LW1heC13aWR0aDo3MCU7LS12YW4tdG9hc3QtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLXRvYXN0LXRleHQtY29sb3I6dmFyKC0tdmFuLXdoaXRlKTstLXZhbi10b2FzdC1sb2FkaW5nLWljb24tY29sb3I6dmFyKC0tdmFuLXdoaXRlKTstLXZhbi10b2FzdC1saW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpOy0tdmFuLXRvYXN0LXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLWxnKTstLXZhbi10b2FzdC1iYWNrZ3JvdW5kOiMwMDAwMDBiMzstLXZhbi10b2FzdC1pY29uLXNpemU6MzZweDstLXZhbi10b2FzdC10ZXh0LW1pbi13aWR0aDo5NnB4Oy0tdmFuLXRvYXN0LXRleHQtcGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy14cykgdmFyKC0tdmFuLXBhZGRpbmctc20pOy0tdmFuLXRvYXN0LWRlZmF1bHQtcGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tdG9hc3QtZGVmYXVsdC13aWR0aDo4OHB4Oy0tdmFuLXRvYXN0LWRlZmF1bHQtbWluLWhlaWdodDo4OHB4Oy0tdmFuLXRvYXN0LXBvc2l0aW9uLXRvcC1kaXN0YW5jZToyMCU7LS12YW4tdG9hc3QtcG9zaXRpb24tYm90dG9tLWRpc3RhbmNlOjIwJX0udmFuLXRvYXN0e2JveC1zaXppbmc6Y29udGVudC1ib3g7dHJhbnNpdGlvbjphbGwgdmFyKC0tdmFuLWR1cmF0aW9uLWZhc3QpO3dpZHRoOnZhcigtLXZhbi10b2FzdC1kZWZhdWx0LXdpZHRoKTttYXgtd2lkdGg6dmFyKC0tdmFuLXRvYXN0LW1heC13aWR0aCk7bWluLWhlaWdodDp2YXIoLS12YW4tdG9hc3QtZGVmYXVsdC1taW4taGVpZ2h0KTtwYWRkaW5nOnZhcigtLXZhbi10b2FzdC1kZWZhdWx0LXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi10b2FzdC10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXRvYXN0LWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXRvYXN0LWxpbmUtaGVpZ2h0KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLWFsbDt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLXZhbi10b2FzdC1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi10b2FzdC1yYWRpdXMpO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LnZhbi10b2FzdC0tYnJlYWstbm9ybWFse3dvcmQtYnJlYWs6bm9ybWFsO3dvcmQtd3JhcDpub3JtYWx9LnZhbi10b2FzdC0tYnJlYWstd29yZHt3b3JkLWJyZWFrOm5vcm1hbDt3b3JkLXdyYXA6YnJlYWstd29yZH0udmFuLXRvYXN0LS11bmNsaWNrYWJsZXtjdXJzb3I6bm90LWFsbG93ZWQ7b3ZlcmZsb3c6aGlkZGVufS52YW4tdG9hc3QtLXVuY2xpY2thYmxlICp7cG9pbnRlci1ldmVudHM6bm9uZX0udmFuLXRvYXN0LS10ZXh0LC52YW4tdG9hc3QtLWh0bWx7d2lkdGg6Zml0LWNvbnRlbnQ7bWluLXdpZHRoOnZhcigtLXZhbi10b2FzdC10ZXh0LW1pbi13aWR0aCk7bWluLWhlaWdodDowO3BhZGRpbmc6dmFyKC0tdmFuLXRvYXN0LXRleHQtcGFkZGluZyl9LnZhbi10b2FzdC0tdGV4dCAudmFuLXRvYXN0X190ZXh0LC52YW4tdG9hc3QtLWh0bWwgLnZhbi10b2FzdF9fdGV4dHttYXJnaW4tdG9wOjB9LnZhbi10b2FzdC0tdG9we3RvcDp2YXIoLS12YW4tdG9hc3QtcG9zaXRpb24tdG9wLWRpc3RhbmNlKX0udmFuLXRvYXN0LS1ib3R0b217dG9wOmF1dG87Ym90dG9tOnZhcigtLXZhbi10b2FzdC1wb3NpdGlvbi1ib3R0b20tZGlzdGFuY2UpfS52YW4tdG9hc3RfX2ljb257Zm9udC1zaXplOnZhcigtLXZhbi10b2FzdC1pY29uLXNpemUpfS52YW4tdG9hc3RfX2xvYWRpbmd7cGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy1iYXNlKTtjb2xvcjp2YXIoLS12YW4tdG9hc3QtbG9hZGluZy1pY29uLWNvbG9yKX0udmFuLXRvYXN0X190ZXh0e21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmcteHMpfTpyb290LDpob3N0ey0tdmFuLWFjdGlvbi1zaGVldC1tYXgtaGVpZ2h0OjgwJTstLXZhbi1hY3Rpb24tc2hlZXQtaGVhZGVyLWhlaWdodDo0OHB4Oy0tdmFuLWFjdGlvbi1zaGVldC1oZWFkZXItZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLWFjdGlvbi1zaGVldC1kZXNjcmlwdGlvbi1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvci0yKTstLXZhbi1hY3Rpb24tc2hlZXQtZGVzY3JpcHRpb24tZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLWFjdGlvbi1zaGVldC1kZXNjcmlwdGlvbi1saW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpOy0tdmFuLWFjdGlvbi1zaGVldC1pdGVtLWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tYWN0aW9uLXNoZWV0LWl0ZW0tZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLWFjdGlvbi1zaGVldC1pdGVtLWxpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1sZyk7LS12YW4tYWN0aW9uLXNoZWV0LWl0ZW0tdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tYWN0aW9uLXNoZWV0LWl0ZW0tZGlzYWJsZWQtdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvci0zKTstLXZhbi1hY3Rpb24tc2hlZXQtaXRlbS1pY29uLXNpemU6MThweDstLXZhbi1hY3Rpb24tc2hlZXQtaXRlbS1pY29uLW1hcmdpbi1yaWdodDp2YXIoLS12YW4tcGFkZGluZy14cyk7LS12YW4tYWN0aW9uLXNoZWV0LXN1Ym5hbWUtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tYWN0aW9uLXNoZWV0LXN1Ym5hbWUtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLWFjdGlvbi1zaGVldC1zdWJuYW1lLWxpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1zbSk7LS12YW4tYWN0aW9uLXNoZWV0LWNsb3NlLWljb24tc2l6ZToyMnB4Oy0tdmFuLWFjdGlvbi1zaGVldC1jbG9zZS1pY29uLWNvbG9yOnZhcigtLXZhbi1ncmF5LTUpOy0tdmFuLWFjdGlvbi1zaGVldC1jbG9zZS1pY29uLXBhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tYWN0aW9uLXNoZWV0LWNhbmNlbC10ZXh0LWNvbG9yOnZhcigtLXZhbi1ncmF5LTcpOy0tdmFuLWFjdGlvbi1zaGVldC1jYW5jZWwtcGFkZGluZy10b3A6dmFyKC0tdmFuLXBhZGRpbmcteHMpOy0tdmFuLWFjdGlvbi1zaGVldC1jYW5jZWwtcGFkZGluZy1jb2xvcjp2YXIoLS12YW4tYmFja2dyb3VuZCk7LS12YW4tYWN0aW9uLXNoZWV0LWxvYWRpbmctaWNvbi1zaXplOjIycHh9LnZhbi1hY3Rpb24tc2hlZXR7bWF4LWhlaWdodDp2YXIoLS12YW4tYWN0aW9uLXNoZWV0LW1heC1oZWlnaHQpO2NvbG9yOnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtaXRlbS10ZXh0LWNvbG9yKTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbn0udmFuLWFjdGlvbi1zaGVldF9fY29udGVudHstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtmbGV4OmF1dG87b3ZlcmZsb3cteTphdXRvfS52YW4tYWN0aW9uLXNoZWV0X19pdGVtLC52YW4tYWN0aW9uLXNoZWV0X19jYW5jZWx7d2lkdGg6MTAwJTtwYWRkaW5nOjE0cHggdmFyKC0tdmFuLXBhZGRpbmctbWQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tYWN0aW9uLXNoZWV0LWl0ZW0tZm9udC1zaXplKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtaXRlbS1iYWNrZ3JvdW5kKTtjdXJzb3I6cG9pbnRlcjtib3JkZXI6bm9uZTtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LnZhbi1hY3Rpb24tc2hlZXRfX2l0ZW06YWN0aXZlLC52YW4tYWN0aW9uLXNoZWV0X19jYW5jZWw6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWFjdGl2ZS1jb2xvcil9LnZhbi1hY3Rpb24tc2hlZXRfX2l0ZW17bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1pdGVtLWxpbmUtaGVpZ2h0KX0udmFuLWFjdGlvbi1zaGVldF9faXRlbS0tbG9hZGluZywudmFuLWFjdGlvbi1zaGVldF9faXRlbS0tZGlzYWJsZWR7Y29sb3I6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1pdGVtLWRpc2FibGVkLXRleHQtY29sb3IpfS52YW4tYWN0aW9uLXNoZWV0X19pdGVtLS1sb2FkaW5nOmFjdGl2ZSwudmFuLWFjdGlvbi1zaGVldF9faXRlbS0tZGlzYWJsZWQ6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1pdGVtLWJhY2tncm91bmQpfS52YW4tYWN0aW9uLXNoZWV0X19pdGVtLS1kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi1hY3Rpb24tc2hlZXRfX2l0ZW0tLWxvYWRpbmd7Y3Vyc29yOmRlZmF1bHR9LnZhbi1hY3Rpb24tc2hlZXRfX2l0ZW0taWNvbntmb250LXNpemU6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1pdGVtLWljb24tc2l6ZSk7bWFyZ2luLXJpZ2h0OnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtaXRlbS1pY29uLW1hcmdpbi1yaWdodCl9LnZhbi1hY3Rpb24tc2hlZXRfX2NhbmNlbHtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1jYW5jZWwtdGV4dC1jb2xvcik7ZmxleC1zaHJpbms6MH0udmFuLWFjdGlvbi1zaGVldF9fc3VibmFtZXt3aWR0aDoxMDAlO21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmcteHMpO2NvbG9yOnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtc3VibmFtZS1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtc3VibmFtZS1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtc3VibmFtZS1saW5lLWhlaWdodCk7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkfS52YW4tYWN0aW9uLXNoZWV0X19nYXB7aGVpZ2h0OnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtY2FuY2VsLXBhZGRpbmctdG9wKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtY2FuY2VsLXBhZGRpbmctY29sb3IpO2Rpc3BsYXk6YmxvY2t9LnZhbi1hY3Rpb24tc2hlZXRfX2hlYWRlcntmb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKTtmb250LXNpemU6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1oZWFkZXItZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tYWN0aW9uLXNoZWV0LWhlYWRlci1oZWlnaHQpO3RleHQtYWxpZ246Y2VudGVyO2ZsZXgtc2hyaW5rOjB9LnZhbi1hY3Rpb24tc2hlZXRfX2Rlc2NyaXB0aW9ue3BhZGRpbmc6MjBweCB2YXIoLS12YW4tcGFkZGluZy1tZCk7Y29sb3I6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1kZXNjcmlwdGlvbi1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtZGVzY3JpcHRpb24tZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tYWN0aW9uLXNoZWV0LWRlc2NyaXB0aW9uLWxpbmUtaGVpZ2h0KTt0ZXh0LWFsaWduOmNlbnRlcjtmbGV4LXNocmluazowO3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4tYWN0aW9uLXNoZWV0X19kZXNjcmlwdGlvbjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiICI7cG9pbnRlci1ldmVudHM6bm9uZTtyaWdodDp2YXIoLS12YW4tcGFkZGluZy1tZCk7Ym90dG9tOjA7bGVmdDp2YXIoLS12YW4tcGFkZGluZy1tZCk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tdmFuLWJvcmRlci1jb2xvcik7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnNjYWxlWSguNSl9LnZhbi1hY3Rpb24tc2hlZXRfX2xvYWRpbmctaWNvbiAudmFuLWxvYWRpbmdfX3NwaW5uZXJ7d2lkdGg6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1sb2FkaW5nLWljb24tc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtbG9hZGluZy1pY29uLXNpemUpfS52YW4tYWN0aW9uLXNoZWV0X19jbG9zZXt6LWluZGV4OjE7cGFkZGluZzp2YXIoLS12YW4tYWN0aW9uLXNoZWV0LWNsb3NlLWljb24tcGFkZGluZyk7Y29sb3I6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1jbG9zZS1pY29uLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1jbG9zZS1pY29uLXNpemUpO2xpbmUtaGVpZ2h0OmluaGVyaXQ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MH06cm9vdCw6aG9zdHstLXZhbi1zdGlja3ktei1pbmRleDo5OX0udmFuLXN0aWNreS0tZml4ZWR7ei1pbmRleDp2YXIoLS12YW4tc3RpY2t5LXotaW5kZXgpO3Bvc2l0aW9uOmZpeGVkfTpyb290LDpob3N0ey0tdmFuLXN3aXBlLWluZGljYXRvci1zaXplOjZweDstLXZhbi1zd2lwZS1pbmRpY2F0b3ItbWFyZ2luOnZhcigtLXZhbi1wYWRkaW5nLXNtKTstLXZhbi1zd2lwZS1pbmRpY2F0b3ItYWN0aXZlLW9wYWNpdHk6MTstLXZhbi1zd2lwZS1pbmRpY2F0b3ItaW5hY3RpdmUtb3BhY2l0eTouMzstLXZhbi1zd2lwZS1pbmRpY2F0b3ItYWN0aXZlLWJhY2tncm91bmQ6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLXN3aXBlLWluZGljYXRvci1pbmFjdGl2ZS1iYWNrZ3JvdW5kOnZhcigtLXZhbi1ib3JkZXItY29sb3IpfS52YW4tc3dpcGV7Y3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9LnZhbi1zd2lwZV9fdHJhY2t7aGVpZ2h0OjEwMCU7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm07ZGlzcGxheTpmbGV4fS52YW4tc3dpcGVfX3RyYWNrLS12ZXJ0aWNhbHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnZhbi1zd2lwZV9faW5kaWNhdG9yc3tib3R0b206dmFyKC0tdmFuLXN3aXBlLWluZGljYXRvci1tYXJnaW4pO2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpfS52YW4tc3dpcGVfX2luZGljYXRvcnMtLXZlcnRpY2Fse3RvcDo1MCU7Ym90dG9tOmF1dG87bGVmdDp2YXIoLS12YW4tc3dpcGUtaW5kaWNhdG9yLW1hcmdpbik7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS52YW4tc3dpcGVfX2luZGljYXRvcnMtLXZlcnRpY2FsIC52YW4tc3dpcGVfX2luZGljYXRvcjpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206dmFyKC0tdmFuLXN3aXBlLWluZGljYXRvci1zaXplKX0udmFuLXN3aXBlX19pbmRpY2F0b3J7d2lkdGg6dmFyKC0tdmFuLXN3aXBlLWluZGljYXRvci1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLXN3aXBlLWluZGljYXRvci1zaXplKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1zd2lwZS1pbmRpY2F0b3ItaW5hY3RpdmUtYmFja2dyb3VuZCk7b3BhY2l0eTp2YXIoLS12YW4tc3dpcGUtaW5kaWNhdG9yLWluYWN0aXZlLW9wYWNpdHkpO3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS12YW4tZHVyYXRpb24tZmFzdCksYmFja2dyb3VuZC1jb2xvciB2YXIoLS12YW4tZHVyYXRpb24tZmFzdCk7Ym9yZGVyLXJhZGl1czoxMDAlfS52YW4tc3dpcGVfX2luZGljYXRvcjpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDp2YXIoLS12YW4tc3dpcGUtaW5kaWNhdG9yLXNpemUpfS52YW4tc3dpcGVfX2luZGljYXRvci0tYWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLXN3aXBlLWluZGljYXRvci1hY3RpdmUtYmFja2dyb3VuZCk7b3BhY2l0eTp2YXIoLS12YW4tc3dpcGUtaW5kaWNhdG9yLWFjdGl2ZS1vcGFjaXR5KX0udmFuLXN3aXBlLWl0ZW17ZmxleC1zaHJpbms6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlfTpyb290LDpob3N0ey0tdmFuLWltYWdlLXByZXZpZXctaW5kZXgtdGV4dC1jb2xvcjp2YXIoLS12YW4td2hpdGUpOy0tdmFuLWltYWdlLXByZXZpZXctaW5kZXgtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLWltYWdlLXByZXZpZXctaW5kZXgtbGluZS1oZWlnaHQ6dmFyKC0tdmFuLWxpbmUtaGVpZ2h0LW1kKTstLXZhbi1pbWFnZS1wcmV2aWV3LWluZGV4LXRleHQtc2hhZG93OjAgMXB4IDFweCB2YXIoLS12YW4tZ3JheS04KTstLXZhbi1pbWFnZS1wcmV2aWV3LW92ZXJsYXktYmFja2dyb3VuZDojMDAwMDAwZTY7LS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLXNpemU6MjJweDstLXZhbi1pbWFnZS1wcmV2aWV3LWNsb3NlLWljb24tY29sb3I6dmFyKC0tdmFuLWdyYXktNSk7LS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLW1hcmdpbjp2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLXotaW5kZXg6MX0udmFuLWltYWdlLXByZXZpZXd7YmFja2dyb3VuZC1jb2xvcjojMDAwMDt3aWR0aDoxMDAlO21heC13aWR0aDpub25lO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDt0cmFuc2Zvcm06bm9uZX0udmFuLWltYWdlLXByZXZpZXdfX3N3aXBle2hlaWdodDoxMDAlfS52YW4taW1hZ2UtcHJldmlld19fc3dpcGUtaXRlbXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVufS52YW4taW1hZ2UtcHJldmlld19fY292ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowfS52YW4taW1hZ2UtcHJldmlld19faW1hZ2UsLnZhbi1pbWFnZS1wcmV2aWV3X19pbWFnZS13cmFwe3dpZHRoOjEwMCU7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm19LnZhbi1pbWFnZS1wcmV2aWV3X19pbWFnZS0tdmVydGljYWwsLnZhbi1pbWFnZS1wcmV2aWV3X19pbWFnZS13cmFwLS12ZXJ0aWNhbHt3aWR0aDphdXRvO2hlaWdodDoxMDAlfS52YW4taW1hZ2UtcHJldmlld19faW1hZ2UgaW1nLC52YW4taW1hZ2UtcHJldmlld19faW1hZ2Utd3JhcCBpbWcsLnZhbi1pbWFnZS1wcmV2aWV3X19pbWFnZSB2aWRlbywudmFuLWltYWdlLXByZXZpZXdfX2ltYWdlLXdyYXAgdmlkZW97LXdlYmtpdC11c2VyLWRyYWc6bm9uZX0udmFuLWltYWdlLXByZXZpZXdfX2ltYWdlIC52YW4taW1hZ2VfX2Vycm9yLC52YW4taW1hZ2UtcHJldmlld19faW1hZ2Utd3JhcCAudmFuLWltYWdlX19lcnJvcntoZWlnaHQ6NDAlO3RvcDozMCV9LnZhbi1pbWFnZS1wcmV2aWV3X19pbWFnZSAudmFuLWltYWdlX19lcnJvci1pY29uLC52YW4taW1hZ2UtcHJldmlld19faW1hZ2Utd3JhcCAudmFuLWltYWdlX19lcnJvci1pY29ue2ZvbnQtc2l6ZTozNnB4fS52YW4taW1hZ2UtcHJldmlld19faW1hZ2UgLnZhbi1pbWFnZV9fbG9hZGluZywudmFuLWltYWdlLXByZXZpZXdfX2ltYWdlLXdyYXAgLnZhbi1pbWFnZV9fbG9hZGluZ3tiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS52YW4taW1hZ2UtcHJldmlld19faW5kZXh7dG9wOnZhcigtLXZhbi1wYWRkaW5nLW1kKTtjb2xvcjp2YXIoLS12YW4taW1hZ2UtcHJldmlldy1pbmRleC10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWltYWdlLXByZXZpZXctaW5kZXgtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4taW1hZ2UtcHJldmlldy1pbmRleC1saW5lLWhlaWdodCk7dGV4dC1zaGFkb3c6dmFyKC0tdmFuLWltYWdlLXByZXZpZXctaW5kZXgtdGV4dC1zaGFkb3cpO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9LnZhbi1pbWFnZS1wcmV2aWV3X19vdmVybGF5e2JhY2tncm91bmQ6dmFyKC0tdmFuLWltYWdlLXByZXZpZXctb3ZlcmxheS1iYWNrZ3JvdW5kKX0udmFuLWltYWdlLXByZXZpZXdfX2Nsb3NlLWljb257ei1pbmRleDp2YXIoLS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLXotaW5kZXgpO2NvbG9yOnZhcigtLXZhbi1pbWFnZS1wcmV2aWV3LWNsb3NlLWljb24tY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLXNpemUpO3Bvc2l0aW9uOmFic29sdXRlfS52YW4taW1hZ2UtcHJldmlld19fY2xvc2UtaWNvbi0tdG9wLWxlZnR7dG9wOnZhcigtLXZhbi1pbWFnZS1wcmV2aWV3LWNsb3NlLWljb24tbWFyZ2luKTtsZWZ0OnZhcigtLXZhbi1pbWFnZS1wcmV2aWV3LWNsb3NlLWljb24tbWFyZ2luKX0udmFuLWltYWdlLXByZXZpZXdfX2Nsb3NlLWljb24tLXRvcC1yaWdodHt0b3A6dmFyKC0tdmFuLWltYWdlLXByZXZpZXctY2xvc2UtaWNvbi1tYXJnaW4pO3JpZ2h0OnZhcigtLXZhbi1pbWFnZS1wcmV2aWV3LWNsb3NlLWljb24tbWFyZ2luKX0udmFuLWltYWdlLXByZXZpZXdfX2Nsb3NlLWljb24tLWJvdHRvbS1sZWZ0e2JvdHRvbTp2YXIoLS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLW1hcmdpbik7bGVmdDp2YXIoLS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLW1hcmdpbil9LnZhbi1pbWFnZS1wcmV2aWV3X19jbG9zZS1pY29uLS1ib3R0b20tcmlnaHR7cmlnaHQ6dmFyKC0tdmFuLWltYWdlLXByZXZpZXctY2xvc2UtaWNvbi1tYXJnaW4pO2JvdHRvbTp2YXIoLS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLW1hcmdpbil9OnJvb3QsOmhvc3R7LS12YW4tdXBsb2FkZXItc2l6ZTo4MHB4Oy0tdmFuLXVwbG9hZGVyLWljb24tc2l6ZToyNHB4Oy0tdmFuLXVwbG9hZGVyLWljb24tY29sb3I6dmFyKC0tdmFuLWdyYXktNCk7LS12YW4tdXBsb2FkZXItdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvci0yKTstLXZhbi11cGxvYWRlci10ZXh0LWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLXNtKTstLXZhbi11cGxvYWRlci11cGxvYWQtYmFja2dyb3VuZDp2YXIoLS12YW4tZ3JheS0xKTstLXZhbi11cGxvYWRlci11cGxvYWQtYWN0aXZlLWNvbG9yOnZhcigtLXZhbi1hY3RpdmUtY29sb3IpOy0tdmFuLXVwbG9hZGVyLWRlbGV0ZS1jb2xvcjp2YXIoLS12YW4td2hpdGUpOy0tdmFuLXVwbG9hZGVyLWRlbGV0ZS1pY29uLXNpemU6MTRweDstLXZhbi11cGxvYWRlci1kZWxldGUtYmFja2dyb3VuZDojMDAwMDAwYjM7LS12YW4tdXBsb2FkZXItZmlsZS1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kKTstLXZhbi11cGxvYWRlci1maWxlLWljb24tc2l6ZToyMHB4Oy0tdmFuLXVwbG9hZGVyLWZpbGUtaWNvbi1jb2xvcjp2YXIoLS12YW4tZ3JheS03KTstLXZhbi11cGxvYWRlci1maWxlLW5hbWUtcGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLWJhc2UpOy0tdmFuLXVwbG9hZGVyLWZpbGUtbmFtZS1tYXJnaW4tdG9wOnZhcigtLXZhbi1wYWRkaW5nLXhzKTstLXZhbi11cGxvYWRlci1maWxlLW5hbWUtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLXVwbG9hZGVyLWZpbGUtbmFtZS10ZXh0LWNvbG9yOnZhcigtLXZhbi1ncmF5LTcpOy0tdmFuLXVwbG9hZGVyLW1hc2stdGV4dC1jb2xvcjp2YXIoLS12YW4td2hpdGUpOy0tdmFuLXVwbG9hZGVyLW1hc2stYmFja2dyb3VuZDojMzIzMjMzZTA7LS12YW4tdXBsb2FkZXItbWFzay1pY29uLXNpemU6MjJweDstLXZhbi11cGxvYWRlci1tYXNrLW1lc3NhZ2UtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLXVwbG9hZGVyLW1hc2stbWVzc2FnZS1saW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQteHMpOy0tdmFuLXVwbG9hZGVyLWxvYWRpbmctaWNvbi1zaXplOjIycHg7LS12YW4tdXBsb2FkZXItbG9hZGluZy1pY29uLWNvbG9yOnZhcigtLXZhbi13aGl0ZSk7LS12YW4tdXBsb2FkZXItZGlzYWJsZWQtb3BhY2l0eTp2YXIoLS12YW4tZGlzYWJsZWQtb3BhY2l0eSk7LS12YW4tdXBsb2FkZXItYm9yZGVyLXJhZGl1czowcHh9LnZhbi11cGxvYWRlcntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLXVwbG9hZGVyX193cmFwcGVye2ZsZXgtd3JhcDp3cmFwO2Rpc3BsYXk6ZmxleH0udmFuLXVwbG9hZGVyX193cmFwcGVyLS1kaXNhYmxlZHtvcGFjaXR5OnZhcigtLXZhbi11cGxvYWRlci1kaXNhYmxlZC1vcGFjaXR5KX0udmFuLXVwbG9hZGVyX19pbnB1dHtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7b3ZlcmZsb3c6aGlkZGVufS52YW4tdXBsb2FkZXJfX2lucHV0LXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmV9LnZhbi11cGxvYWRlcl9faW5wdXQ6ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tdXBsb2FkZXJfX3VwbG9hZHtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6dmFyKC0tdmFuLXVwbG9hZGVyLXNpemUpO2hlaWdodDp2YXIoLS12YW4tdXBsb2FkZXItc2l6ZSk7bWFyZ2luOjAgdmFyKC0tdmFuLXBhZGRpbmcteHMpIHZhcigtLXZhbi1wYWRkaW5nLXhzKSAwO2JhY2tncm91bmQ6dmFyKC0tdmFuLXVwbG9hZGVyLXVwbG9hZC1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi11cGxvYWRlci1ib3JkZXItcmFkaXVzKTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4tdXBsb2FkZXJfX3VwbG9hZDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tdXBsb2FkZXItdXBsb2FkLWFjdGl2ZS1jb2xvcil9LnZhbi11cGxvYWRlcl9fdXBsb2FkLS1yZWFkb25seTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tdXBsb2FkZXItdXBsb2FkLWJhY2tncm91bmQpfS52YW4tdXBsb2FkZXJfX3VwbG9hZC1pY29ue2NvbG9yOnZhcigtLXZhbi11cGxvYWRlci1pY29uLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXVwbG9hZGVyLWljb24tc2l6ZSl9LnZhbi11cGxvYWRlcl9fdXBsb2FkLXRleHR7bWFyZ2luLXRvcDp2YXIoLS12YW4tcGFkZGluZy14cyk7Y29sb3I6dmFyKC0tdmFuLXVwbG9hZGVyLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tdXBsb2FkZXItdGV4dC1mb250LXNpemUpfS52YW4tdXBsb2FkZXJfX3ByZXZpZXd7bWFyZ2luOjAgdmFyKC0tdmFuLXBhZGRpbmcteHMpIHZhcigtLXZhbi1wYWRkaW5nLXhzKSAwO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4tdXBsb2FkZXJfX3ByZXZpZXctaW1hZ2V7d2lkdGg6dmFyKC0tdmFuLXVwbG9hZGVyLXNpemUpO2hlaWdodDp2YXIoLS12YW4tdXBsb2FkZXItc2l6ZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tdXBsb2FkZXItYm9yZGVyLXJhZGl1cyk7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW59LnZhbi11cGxvYWRlcl9fcHJldmlldy1kZWxldGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MH0udmFuLXVwbG9hZGVyX19wcmV2aWV3LWRlbGV0ZS0tc2hhZG93e3dpZHRoOnZhcigtLXZhbi11cGxvYWRlci1kZWxldGUtaWNvbi1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLXVwbG9hZGVyLWRlbGV0ZS1pY29uLXNpemUpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXVwbG9hZGVyLWRlbGV0ZS1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOjAgMCAwIDEycHh9LnZhbi11cGxvYWRlcl9fcHJldmlldy1kZWxldGUtaWNvbntjb2xvcjp2YXIoLS12YW4tdXBsb2FkZXItZGVsZXRlLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXVwbG9hZGVyLWRlbGV0ZS1pY29uLXNpemUpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7dHJhbnNmb3JtOnNjYWxlKC43KXRyYW5zbGF0ZSgxMCUsLTEwJSl9LnZhbi11cGxvYWRlcl9fcHJldmlldy1jb3Zlcntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowfS52YW4tdXBsb2FkZXJfX21hc2t7Y29sb3I6dmFyKC0tdmFuLXVwbG9hZGVyLW1hc2stdGV4dC1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS12YW4tdXBsb2FkZXItbWFzay1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi11cGxvYWRlci1ib3JkZXItcmFkaXVzKTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjB9LnZhbi11cGxvYWRlcl9fbWFzay1pY29ue2ZvbnQtc2l6ZTp2YXIoLS12YW4tdXBsb2FkZXItbWFzay1pY29uLXNpemUpfS52YW4tdXBsb2FkZXJfX21hc2stbWVzc2FnZXtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctYmFzZSk7Zm9udC1zaXplOnZhcigtLXZhbi11cGxvYWRlci1tYXNrLW1lc3NhZ2UtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tdXBsb2FkZXItbWFzay1tZXNzYWdlLWxpbmUtaGVpZ2h0KTttYXJnaW4tdG9wOjZweH0udmFuLXVwbG9hZGVyX19sb2FkaW5ne3dpZHRoOnZhcigtLXZhbi11cGxvYWRlci1sb2FkaW5nLWljb24tc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi11cGxvYWRlci1sb2FkaW5nLWljb24tc2l6ZSk7Y29sb3I6dmFyKC0tdmFuLXVwbG9hZGVyLWxvYWRpbmctaWNvbi1jb2xvcil9LnZhbi11cGxvYWRlcl9fZmlsZXt3aWR0aDp2YXIoLS12YW4tdXBsb2FkZXItc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi11cGxvYWRlci1zaXplKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi11cGxvYWRlci1maWxlLWJhY2tncm91bmQpO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LnZhbi11cGxvYWRlcl9fZmlsZS1pY29ue2NvbG9yOnZhcigtLXZhbi11cGxvYWRlci1maWxlLWljb24tY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tdXBsb2FkZXItZmlsZS1pY29uLXNpemUpfS52YW4tdXBsb2FkZXJfX2ZpbGUtbmFtZXtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTttYXJnaW4tdG9wOnZhcigtLXZhbi11cGxvYWRlci1maWxlLW5hbWUtbWFyZ2luLXRvcCk7cGFkZGluZzp2YXIoLS12YW4tdXBsb2FkZXItZmlsZS1uYW1lLXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi11cGxvYWRlci1maWxlLW5hbWUtdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi11cGxvYWRlci1maWxlLW5hbWUtZm9udC1zaXplKTt0ZXh0LWFsaWduOmNlbnRlcn06cm9vdCw6aG9zdHstLXZhbi10YWItdGV4dC1jb2xvcjp2YXIoLS12YW4tZ3JheS03KTstLXZhbi10YWItYWN0aXZlLXRleHQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXRhYi1kaXNhYmxlZC10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLXRhYi1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tdGFiLWxpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1tZCk7LS12YW4tdGFicy1kZWZhdWx0LWNvbG9yOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi10YWJzLWxpbmUtaGVpZ2h0OjQ0cHg7LS12YW4tdGFicy1jYXJkLWhlaWdodDozMHB4Oy0tdmFuLXRhYnMtbmF2LWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tdGFicy1ib3R0b20tYmFyLXdpZHRoOjQwcHg7LS12YW4tdGFicy1ib3R0b20tYmFyLWhlaWdodDozcHg7LS12YW4tdGFicy1ib3R0b20tYmFyLWNvbG9yOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKX0udmFuLXRhYntib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLWJhc2UpO2NvbG9yOnZhcigtLXZhbi10YWItdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi10YWItZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tdGFiLWxpbmUtaGVpZ2h0KTtjdXJzb3I6cG9pbnRlcjtmbGV4OjE7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4tdGFiLS1hY3RpdmV7Y29sb3I6dmFyKC0tdmFuLXRhYi1hY3RpdmUtdGV4dC1jb2xvcik7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCl9LnZhbi10YWItLWRpc2FibGVke2NvbG9yOnZhcigtLXZhbi10YWItZGlzYWJsZWQtdGV4dC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tdGFiLS1ncm93e3BhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy1zbSk7ZmxleDoxIDAgYXV0b30udmFuLXRhYi0tc2hyaW5re3BhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy14cyk7ZmxleDpub25lfS52YW4tdGFiLS1jYXJke2NvbG9yOnZhcigtLXZhbi10YWJzLWRlZmF1bHQtY29sb3IpO2JvcmRlci1yaWdodDp2YXIoLS12YW4tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS12YW4tdGFicy1kZWZhdWx0LWNvbG9yKX0udmFuLXRhYi0tY2FyZDpsYXN0LWNoaWxke2JvcmRlci1yaWdodDpub25lfS52YW4tdGFiLS1jYXJkLnZhbi10YWItLWFjdGl2ZXtjb2xvcjp2YXIoLS12YW4td2hpdGUpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLXRhYnMtZGVmYXVsdC1jb2xvcil9LnZhbi10YWItLWNhcmQudmFuLXRhYi0tZGlzYWJsZWR7Y29sb3I6dmFyKC0tdmFuLXRhYi1kaXNhYmxlZC10ZXh0LWNvbG9yKX0udmFuLXRhYl9fdGV4dC0tZWxsaXBzaXN7LXdlYmtpdC1saW5lLWNsYW1wOjE7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVufS52YW4tdGFic3twb3NpdGlvbjpyZWxhdGl2ZX0udmFuLXRhYnNfX3dyYXB7b3ZlcmZsb3c6aGlkZGVufS52YW4tdGFic19fd3JhcC0tcGFnZS10b3B7cG9zaXRpb246Zml4ZWR9LnZhbi10YWJzX193cmFwLS1jb250ZW50LWJvdHRvbXt0b3A6YXV0bztib3R0b206MH0udmFuLXRhYnNfX25hdntiYWNrZ3JvdW5kOnZhcigtLXZhbi10YWJzLW5hdi1iYWNrZ3JvdW5kKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmV9LnZhbi10YWJzX19uYXYtLWNvbXBsZXRley13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO292ZXJmbG93OmF1dG8gaGlkZGVufS52YW4tdGFic19fbmF2LS1jb21wbGV0ZTo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfS52YW4tdGFic19fbmF2LS1saW5le2JveC1zaXppbmc6Y29udGVudC1ib3g7aGVpZ2h0OjEwMCU7cGFkZGluZy1ib3R0b206MTVweH0udmFuLXRhYnNfX25hdi0tbGluZS52YW4tdGFic19fbmF2LS1zaHJpbmssLnZhbi10YWJzX19uYXYtLWxpbmUudmFuLXRhYnNfX25hdi0tY29tcGxldGV7cGFkZGluZy1yaWdodDp2YXIoLS12YW4tcGFkZGluZy14cyk7cGFkZGluZy1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLXhzKX0udmFuLXRhYnNfX25hdi0tY2FyZHtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OnZhcigtLXZhbi10YWJzLWNhcmQtaGVpZ2h0KTttYXJnaW46MCB2YXIoLS12YW4tcGFkZGluZy1tZCk7Ym9yZGVyOnZhcigtLXZhbi1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXZhbi10YWJzLWRlZmF1bHQtY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1zbSl9LnZhbi10YWJzX19uYXYtLWNhcmQudmFuLXRhYnNfX25hdi0tc2hyaW5re2Rpc3BsYXk6aW5saW5lLWZsZXh9LnZhbi10YWJzX19saW5le3otaW5kZXg6MTt3aWR0aDp2YXIoLS12YW4tdGFicy1ib3R0b20tYmFyLXdpZHRoKTtoZWlnaHQ6dmFyKC0tdmFuLXRhYnMtYm90dG9tLWJhci1oZWlnaHQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXRhYnMtYm90dG9tLWJhci1jb2xvcik7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tdGFicy1ib3R0b20tYmFyLWhlaWdodCk7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjE1cHg7bGVmdDowfS52YW4tdGFic19fdHJhY2t7d2lsbC1jaGFuZ2U6bGVmdDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLXRhYnNfX2NvbnRlbnQtLWFuaW1hdGVke292ZXJmbG93OmhpZGRlbn0udmFuLXRhYnMtLWxpbmUgLnZhbi10YWJzX193cmFwe2hlaWdodDp2YXIoLS12YW4tdGFicy1saW5lLWhlaWdodCl9LnZhbi10YWJzLS1jYXJkPi52YW4tdGFic19fd3JhcHtoZWlnaHQ6dmFyKC0tdmFuLXRhYnMtY2FyZC1oZWlnaHQpfS52YW4tdGFiX19wYW5lbCwudmFuLXRhYl9fcGFuZWwtd3JhcHBlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7ZmxleC1zaHJpbms6MDt3aWR0aDoxMDAlfS52YW4tdGFiX19wYW5lbC13cmFwcGVyLS1pbmFjdGl2ZXtoZWlnaHQ6MDtvdmVyZmxvdzp2aXNpYmxlfTpyb290LDpob3N0ey0tdmFuLWNhc2NhZGVyLWhlYWRlci1oZWlnaHQ6NDhweDstLXZhbi1jYXNjYWRlci1oZWFkZXItcGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLW1kKTstLXZhbi1jYXNjYWRlci10aXRsZS1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7LS12YW4tY2FzY2FkZXItdGl0bGUtbGluZS1oZWlnaHQ6MjBweDstLXZhbi1jYXNjYWRlci1jbG9zZS1pY29uLXNpemU6MjJweDstLXZhbi1jYXNjYWRlci1jbG9zZS1pY29uLWNvbG9yOnZhcigtLXZhbi1ncmF5LTUpOy0tdmFuLWNhc2NhZGVyLXNlbGVjdGVkLWljb24tc2l6ZToxOHB4Oy0tdmFuLWNhc2NhZGVyLXRhYnMtaGVpZ2h0OjQ4cHg7LS12YW4tY2FzY2FkZXItYWN0aXZlLWNvbG9yOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1jYXNjYWRlci1vcHRpb25zLWhlaWdodDozODRweDstLXZhbi1jYXNjYWRlci1vcHRpb24tZGlzYWJsZWQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMyk7LS12YW4tY2FzY2FkZXItdGFiLWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1jYXNjYWRlci11bnNlbGVjdGVkLXRhYi1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvci0yKX0udmFuLWNhc2NhZGVyX19oZWFkZXJ7aGVpZ2h0OnZhcigtLXZhbi1jYXNjYWRlci1oZWFkZXItaGVpZ2h0KTtwYWRkaW5nOnZhcigtLXZhbi1jYXNjYWRlci1oZWFkZXItcGFkZGluZyk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0udmFuLWNhc2NhZGVyX190aXRsZXtmb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKTtmb250LXNpemU6dmFyKC0tdmFuLWNhc2NhZGVyLXRpdGxlLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNhc2NhZGVyLXRpdGxlLWxpbmUtaGVpZ2h0KX0udmFuLWNhc2NhZGVyX19jbG9zZS1pY29ue2NvbG9yOnZhcigtLXZhbi1jYXNjYWRlci1jbG9zZS1pY29uLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWNhc2NhZGVyLWNsb3NlLWljb24tc2l6ZSl9LnZhbi1jYXNjYWRlcl9fdGFicy52YW4tdGFicy0tbGluZSAudmFuLXRhYnNfX3dyYXB7aGVpZ2h0OnZhcigtLXZhbi1jYXNjYWRlci10YWJzLWhlaWdodCl9LnZhbi1jYXNjYWRlcl9fdGFie2NvbG9yOnZhcigtLXZhbi1jYXNjYWRlci10YWItY29sb3IpO2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpfS52YW4tY2FzY2FkZXJfX3RhYi0tdW5zZWxlY3RlZHtjb2xvcjp2YXIoLS12YW4tY2FzY2FkZXItdW5zZWxlY3RlZC10YWItY29sb3IpO2ZvbnQtd2VpZ2h0OjQwMH0udmFuLWNhc2NhZGVyX19vcHRpb257cGFkZGluZzoxMHB4IHZhcigtLXZhbi1wYWRkaW5nLW1kKTtmb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWxpbmUtaGVpZ2h0LW1kKTtjdXJzb3I6cG9pbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS52YW4tY2FzY2FkZXJfX29wdGlvbjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tYWN0aXZlLWNvbG9yKX0udmFuLWNhc2NhZGVyX19vcHRpb24tLXNlbGVjdGVke2NvbG9yOnZhcigtLXZhbi1jYXNjYWRlci1hY3RpdmUtY29sb3IpO2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpfS52YW4tY2FzY2FkZXJfX29wdGlvbi0tZGlzYWJsZWR7Y29sb3I6dmFyKC0tdmFuLWNhc2NhZGVyLW9wdGlvbi1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tY2FzY2FkZXJfX29wdGlvbi0tZGlzYWJsZWQ6YWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwMDB9LnZhbi1jYXNjYWRlcl9fc2VsZWN0ZWQtaWNvbntmb250LXNpemU6dmFyKC0tdmFuLWNhc2NhZGVyLXNlbGVjdGVkLWljb24tc2l6ZSl9LnZhbi1jYXNjYWRlcl9fb3B0aW9uc3tib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OnZhcigtLXZhbi1jYXNjYWRlci1vcHRpb25zLWhlaWdodCk7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7cGFkZGluZy10b3A6NnB4O292ZXJmbG93LXk6YXV0b306cm9vdCw6aG9zdHstLXZhbi1waWNrZXItYmFja2dyb3VuZDp2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1waWNrZXItdG9vbGJhci1oZWlnaHQ6NDRweDstLXZhbi1waWNrZXItdGl0bGUtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLXBpY2tlci10aXRsZS1saW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpOy0tdmFuLXBpY2tlci1hY3Rpb24tcGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLW1kKTstLXZhbi1waWNrZXItYWN0aW9uLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1waWNrZXItY29uZmlybS1hY3Rpb24tY29sb3I6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLXBpY2tlci1jYW5jZWwtYWN0aW9uLWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLXBpY2tlci1vcHRpb24tZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLXBpY2tlci1vcHRpb24tcGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLWJhc2UpOy0tdmFuLXBpY2tlci1vcHRpb24tdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tcGlja2VyLW9wdGlvbi1kaXNhYmxlZC1vcGFjaXR5Oi4zOy0tdmFuLXBpY2tlci1sb2FkaW5nLWljb24tY29sb3I6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLXBpY2tlci1sb2FkaW5nLW1hc2stY29sb3I6I2ZmZmZmZmU2Oy0tdmFuLXBpY2tlci1tYXNrLWNvbG9yOmxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmZmZmZmZlNiwgI2ZmZjYpLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgI2ZmZmZmZmU2LCAjZmZmNil9LnZhbi10aGVtZS1kYXJrey0tdmFuLXBpY2tlci1sb2FkaW5nLW1hc2stY29sb3I6IzAwMDk7LS12YW4tcGlja2VyLW1hc2stY29sb3I6bGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzAwMDksICMwMDAwMDAxYSksIGxpbmVhci1ncmFkaWVudCgwZGVnLCAjMDAwOSwgIzAwMDAwMDFhKX0udmFuLXBpY2tlcntiYWNrZ3JvdW5kOnZhcigtLXZhbi1waWNrZXItYmFja2dyb3VuZCk7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1waWNrZXJfX3Rvb2xiYXJ7aGVpZ2h0OnZhcigtLXZhbi1waWNrZXItdG9vbGJhci1oZWlnaHQpO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1waWNrZXJfX2NhbmNlbCwudmFuLXBpY2tlcl9fY29uZmlybXtoZWlnaHQ6MTAwJTtwYWRkaW5nOnZhcigtLXZhbi1waWNrZXItYWN0aW9uLXBhZGRpbmcpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tcGlja2VyLWFjdGlvbi1mb250LXNpemUpO2JhY2tncm91bmQtY29sb3I6IzAwMDA7Ym9yZGVyOm5vbmV9LnZhbi1waWNrZXJfX2NvbmZpcm17Y29sb3I6dmFyKC0tdmFuLXBpY2tlci1jb25maXJtLWFjdGlvbi1jb2xvcil9LnZhbi1waWNrZXJfX2NhbmNlbHtjb2xvcjp2YXIoLS12YW4tcGlja2VyLWNhbmNlbC1hY3Rpb24tY29sb3IpfS52YW4tcGlja2VyX190aXRsZXtjb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7bWF4LXdpZHRoOjUwJTtmb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKTtmb250LXNpemU6dmFyKC0tdmFuLXBpY2tlci10aXRsZS1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1waWNrZXItdGl0bGUtbGluZS1oZWlnaHQpO3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9LnZhbi1waWNrZXJfX2NvbHVtbnN7Y3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1waWNrZXJfX2xvYWRpbmd7ei1pbmRleDozO2NvbG9yOnZhcigtLXZhbi1waWNrZXItbG9hZGluZy1pY29uLWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1waWNrZXItbG9hZGluZy1tYXNrLWNvbG9yKTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MH0udmFuLXBpY2tlcl9fZnJhbWV7dG9wOjUwJTtyaWdodDp2YXIoLS12YW4tcGFkZGluZy1tZCk7bGVmdDp2YXIoLS12YW4tcGFkZGluZy1tZCk7ei1pbmRleDoyO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LnZhbi1waWNrZXJfX21hc2t7ei1pbmRleDoxO2JhY2tncm91bmQtaW1hZ2U6dmFyKC0tdmFuLXBpY2tlci1tYXNrLWNvbG9yKTtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQtcG9zaXRpb246dG9wLGJvdHRvbTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9LnZhbi1waWNrZXItY29sdW1ue2ZvbnQtc2l6ZTp2YXIoLS12YW4tcGlja2VyLW9wdGlvbi1mb250LXNpemUpO2ZsZXg6MTtvdmVyZmxvdzpoaWRkZW59LnZhbi1waWNrZXItY29sdW1uX193cmFwcGVye3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjMsMSwuNjgsMSl9LnZhbi1waWNrZXItY29sdW1uX19pdGVte3BhZGRpbmc6dmFyKC0tdmFuLXBpY2tlci1vcHRpb24tcGFkZGluZyk7Y29sb3I6dmFyKC0tdmFuLXBpY2tlci1vcHRpb24tdGV4dC1jb2xvcik7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS52YW4tcGlja2VyLWNvbHVtbl9faXRlbS0tZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6dmFyKC0tdmFuLXBpY2tlci1vcHRpb24tZGlzYWJsZWQtb3BhY2l0eSl9OnJvb3QsOmhvc3R7LS12YW4tcGlja2VyLWdyb3VwLWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQtMil9LnZhbi1waWNrZXItZ3JvdXB7YmFja2dyb3VuZDp2YXIoLS12YW4tcGlja2VyLWdyb3VwLWJhY2tncm91bmQpfS52YW4tcGlja2VyLWdyb3VwX190YWJze21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmctYmFzZSl9LnZhbi1waWNrZXItZ3JvdXBfX3RhYi10aXRsZXttYXJnaW4tcmlnaHQ6MTZweH06cm9vdCw6aG9zdHstLXZhbi1jYWxlbmRhci1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLWNhbGVuZGFyLXBvcHVwLWhlaWdodDo4MCU7LS12YW4tY2FsZW5kYXItaGVhZGVyLXNoYWRvdzowIDJweCAxMHB4ICM3ZDdlODAyOTstLXZhbi1jYWxlbmRhci1oZWFkZXItdGl0bGUtaGVpZ2h0OjQ0cHg7LS12YW4tY2FsZW5kYXItaGVhZGVyLXRpdGxlLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLWxnKTstLXZhbi1jYWxlbmRhci1oZWFkZXItc3VidGl0bGUtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLWNhbGVuZGFyLWhlYWRlci1hY3Rpb24td2lkdGg6MjhweDstLXZhbi1jYWxlbmRhci1oZWFkZXItYWN0aW9uLWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1jYWxlbmRhci1oZWFkZXItYWN0aW9uLWRpc2FibGVkLWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLWNhbGVuZGFyLXdlZWtkYXlzLWhlaWdodDozMHB4Oy0tdmFuLWNhbGVuZGFyLXdlZWtkYXlzLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLXNtKTstLXZhbi1jYWxlbmRhci1tb250aC10aXRsZS1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tY2FsZW5kYXItbW9udGgtbWFyay1jb2xvcjojZjJmM2Y1Y2M7LS12YW4tY2FsZW5kYXItbW9udGgtbWFyay1mb250LXNpemU6MTYwcHg7LS12YW4tY2FsZW5kYXItZGF5LWhlaWdodDo2NHB4Oy0tdmFuLWNhbGVuZGFyLWRheS1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7LS12YW4tY2FsZW5kYXItZGF5LW1hcmdpbi1ib3R0b206NHB4Oy0tdmFuLWNhbGVuZGFyLWRheS1kaXNhYmxlZC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvci0zKTstLXZhbi1jYWxlbmRhci1yYW5nZS1lZGdlLWNvbG9yOnZhcigtLXZhbi13aGl0ZSk7LS12YW4tY2FsZW5kYXItcmFuZ2UtZWRnZS1iYWNrZ3JvdW5kOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1jYWxlbmRhci1yYW5nZS1taWRkbGUtY29sb3I6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLWNhbGVuZGFyLXJhbmdlLW1pZGRsZS1iYWNrZ3JvdW5kLW9wYWNpdHk6LjE7LS12YW4tY2FsZW5kYXItc2VsZWN0ZWQtZGF5LXNpemU6NTRweDstLXZhbi1jYWxlbmRhci1zZWxlY3RlZC1kYXktY29sb3I6dmFyKC0tdmFuLXdoaXRlKTstLXZhbi1jYWxlbmRhci1zZWxlY3RlZC1kYXktYmFja2dyb3VuZDp2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tY2FsZW5kYXItaW5mby1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS14cyk7LS12YW4tY2FsZW5kYXItaW5mby1saW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQteHMpOy0tdmFuLWNhbGVuZGFyLWNvbmZpcm0tYnV0dG9uLWhlaWdodDozNnB4Oy0tdmFuLWNhbGVuZGFyLWNvbmZpcm0tYnV0dG9uLW1hcmdpbjo3cHggMH0udmFuLXRoZW1lLWRhcmt7LS12YW4tY2FsZW5kYXItbW9udGgtbWFyay1jb2xvcjojNjQ2NTY2MzM7LS12YW4tY2FsZW5kYXItZGF5LWRpc2FibGVkLWNvbG9yOnZhcigtLXZhbi1ncmF5LTcpfS52YW4tY2FsZW5kYXJ7YmFja2dyb3VuZDp2YXIoLS12YW4tY2FsZW5kYXItYmFja2dyb3VuZCk7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleH0udmFuLWNhbGVuZGFyX19wb3B1cC52YW4tcG9wdXAtLXRvcCwudmFuLWNhbGVuZGFyX19wb3B1cC52YW4tcG9wdXAtLWJvdHRvbXtoZWlnaHQ6dmFyKC0tdmFuLWNhbGVuZGFyLXBvcHVwLWhlaWdodCl9LnZhbi1jYWxlbmRhcl9fcG9wdXAudmFuLXBvcHVwLS1sZWZ0LC52YW4tY2FsZW5kYXJfX3BvcHVwLnZhbi1wb3B1cC0tcmlnaHR7aGVpZ2h0OjEwMCV9LnZhbi1jYWxlbmRhcl9fcG9wdXAgLnZhbi1wb3B1cF9fY2xvc2UtaWNvbnt0b3A6MTFweH0udmFuLWNhbGVuZGFyX19oZWFkZXJ7Ym94LXNoYWRvdzp2YXIoLS12YW4tY2FsZW5kYXItaGVhZGVyLXNoYWRvdyk7ZmxleC1zaHJpbms6MH0udmFuLWNhbGVuZGFyX19tb250aC10aXRsZSwudmFuLWNhbGVuZGFyX19oZWFkZXItdGl0bGUsLnZhbi1jYWxlbmRhcl9faGVhZGVyLXN1YnRpdGxle2NvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTtoZWlnaHQ6dmFyKC0tdmFuLWNhbGVuZGFyLWhlYWRlci10aXRsZS1oZWlnaHQpO2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1jYWxlbmRhci1oZWFkZXItdGl0bGUtaGVpZ2h0KTt0ZXh0LWFsaWduOmNlbnRlcn0udmFuLWNhbGVuZGFyX19oZWFkZXItdGl0bGV7Zm9udC1zaXplOnZhcigtLXZhbi1jYWxlbmRhci1oZWFkZXItdGl0bGUtZm9udC1zaXplKX0udmFuLWNhbGVuZGFyX19oZWFkZXItc3VidGl0bGV7Zm9udC1zaXplOnZhcigtLXZhbi1jYWxlbmRhci1oZWFkZXItc3VidGl0bGUtZm9udC1zaXplKX0udmFuLWNhbGVuZGFyX19oZWFkZXItc3VidGl0bGUtLXdpdGgtc3dpdGNoe3BhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy1iYXNlKTthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS52YW4tY2FsZW5kYXJfX2hlYWRlci1zdWJ0aXRsZS10ZXh0e2ZsZXg6MX0udmFuLWNhbGVuZGFyX19oZWFkZXItYWN0aW9ue21pbi13aWR0aDp2YXIoLS12YW4tY2FsZW5kYXItaGVhZGVyLWFjdGlvbi13aWR0aCk7aGVpZ2h0OjEwMCU7Y29sb3I6dmFyKC0tdmFuLWNhbGVuZGFyLWhlYWRlci1hY3Rpb24tY29sb3IpO2N1cnNvcjpwb2ludGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0udmFuLWNhbGVuZGFyX19oZWFkZXItYWN0aW9uLS1kaXNhYmxlZHtjb2xvcjp2YXIoLS12YW4tY2FsZW5kYXItaGVhZGVyLWFjdGlvbi1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tY2FsZW5kYXJfX21vbnRoLXRpdGxle2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2FsZW5kYXItbW9udGgtdGl0bGUtZm9udC1zaXplKX0udmFuLWNhbGVuZGFyX193ZWVrZGF5c3tkaXNwbGF5OmZsZXh9LnZhbi1jYWxlbmRhcl9fd2Vla2RheXtmb250LXNpemU6dmFyKC0tdmFuLWNhbGVuZGFyLXdlZWtkYXlzLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNhbGVuZGFyLXdlZWtkYXlzLWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXI7ZmxleDoxfS52YW4tY2FsZW5kYXJfX2JvZHl7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7ZmxleDoxO292ZXJmbG93OmF1dG99LnZhbi1jYWxlbmRhcl9fZGF5c3std2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtmbGV4LXdyYXA6d3JhcDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1jYWxlbmRhcl9fbW9udGgtbWFya3t6LWluZGV4OjA7Y29sb3I6dmFyKC0tdmFuLWNhbGVuZGFyLW1vbnRoLW1hcmstY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2FsZW5kYXItbW9udGgtbWFyay1mb250LXNpemUpO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSl9LnZhbi1jYWxlbmRhcl9fZGF5LC52YW4tY2FsZW5kYXJfX3NlbGVjdGVkLWRheXt0ZXh0LWFsaWduOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LnZhbi1jYWxlbmRhcl9fZGF5e3dpZHRoOjE0LjI4NSU7aGVpZ2h0OnZhcigtLXZhbi1jYWxlbmRhci1kYXktaGVpZ2h0KTtmb250LXNpemU6dmFyKC0tdmFuLWNhbGVuZGFyLWRheS1mb250LXNpemUpO21hcmdpbi1ib3R0b206dmFyKC0tdmFuLWNhbGVuZGFyLWRheS1tYXJnaW4tYm90dG9tKTtjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLWNhbGVuZGFyX19kYXktLWVuZCwudmFuLWNhbGVuZGFyX19kYXktLXN0YXJ0LC52YW4tY2FsZW5kYXJfX2RheS0tc3RhcnQtZW5kLC52YW4tY2FsZW5kYXJfX2RheS0tbXVsdGlwbGUtbWlkZGxlLC52YW4tY2FsZW5kYXJfX2RheS0tbXVsdGlwbGUtc2VsZWN0ZWR7Y29sb3I6dmFyKC0tdmFuLWNhbGVuZGFyLXJhbmdlLWVkZ2UtY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWNhbGVuZGFyLXJhbmdlLWVkZ2UtYmFja2dyb3VuZCl9LnZhbi1jYWxlbmRhcl9fZGF5LS1zdGFydHtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWQpIDAgMCB2YXIoLS12YW4tcmFkaXVzLW1kKX0udmFuLWNhbGVuZGFyX19kYXktLWVuZHtib3JkZXItcmFkaXVzOjAgdmFyKC0tdmFuLXJhZGl1cy1tZCkgdmFyKC0tdmFuLXJhZGl1cy1tZCkgMH0udmFuLWNhbGVuZGFyX19kYXktLXN0YXJ0LWVuZCwudmFuLWNhbGVuZGFyX19kYXktLW11bHRpcGxlLXNlbGVjdGVke2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tZCl9LnZhbi1jYWxlbmRhcl9fZGF5LS1taWRkbGV7Y29sb3I6dmFyKC0tdmFuLWNhbGVuZGFyLXJhbmdlLW1pZGRsZS1jb2xvcil9LnZhbi1jYWxlbmRhcl9fZGF5LS1taWRkbGU6YWZ0ZXJ7b3BhY2l0eTp2YXIoLS12YW4tY2FsZW5kYXItcmFuZ2UtbWlkZGxlLWJhY2tncm91bmQtb3BhY2l0eSk7Y29udGVudDoiIjtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcjtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowfS52YW4tY2FsZW5kYXJfX2RheS0tZGlzYWJsZWR7Y29sb3I6dmFyKC0tdmFuLWNhbGVuZGFyLWRheS1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOmRlZmF1bHR9LnZhbi1jYWxlbmRhcl9fdG9wLWluZm8sLnZhbi1jYWxlbmRhcl9fYm90dG9tLWluZm97Zm9udC1zaXplOnZhcigtLXZhbi1jYWxlbmRhci1pbmZvLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNhbGVuZGFyLWluZm8tbGluZS1oZWlnaHQpO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowfUBtZWRpYSAod2lkdGg8PTM1MHB4KXsudmFuLWNhbGVuZGFyX190b3AtaW5mbywudmFuLWNhbGVuZGFyX19ib3R0b20taW5mb3tmb250LXNpemU6OXB4fX0udmFuLWNhbGVuZGFyX190b3AtaW5mb3t0b3A6NnB4fS52YW4tY2FsZW5kYXJfX2JvdHRvbS1pbmZve2JvdHRvbTo2cHh9LnZhbi1jYWxlbmRhcl9fc2VsZWN0ZWQtZGF5e3dpZHRoOnZhcigtLXZhbi1jYWxlbmRhci1zZWxlY3RlZC1kYXktc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1jYWxlbmRhci1zZWxlY3RlZC1kYXktc2l6ZSk7Y29sb3I6dmFyKC0tdmFuLWNhbGVuZGFyLXNlbGVjdGVkLWRheS1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS12YW4tY2FsZW5kYXItc2VsZWN0ZWQtZGF5LWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tZCl9LnZhbi1jYWxlbmRhcl9fZm9vdGVye3BhZGRpbmctbGVmdDp2YXIoLS12YW4tcGFkZGluZy1tZCk7cGFkZGluZy1yaWdodDp2YXIoLS12YW4tcGFkZGluZy1tZCk7ZmxleC1zaHJpbms6MH0udmFuLWNhbGVuZGFyX19jb25maXJte2hlaWdodDp2YXIoLS12YW4tY2FsZW5kYXItY29uZmlybS1idXR0b24taGVpZ2h0KTttYXJnaW46dmFyKC0tdmFuLWNhbGVuZGFyLWNvbmZpcm0tYnV0dG9uLW1hcmdpbil9OnJvb3QsOmhvc3R7LS12YW4tYWRkcmVzcy1lZGl0LXBhZGRpbmc6dmFyKC0tdmFuLXBhZGRpbmctc20pOy0tdmFuLWFkZHJlc3MtZWRpdC1idXR0b25zLXBhZGRpbmc6dmFyKC0tdmFuLXBhZGRpbmcteGwpIHZhcigtLXZhbi1wYWRkaW5nLWJhc2UpOy0tdmFuLWFkZHJlc3MtZWRpdC1idXR0b24tbWFyZ2luLWJvdHRvbTp2YXIoLS12YW4tcGFkZGluZy1zbSk7LS12YW4tYWRkcmVzcy1lZGl0LWJ1dHRvbi1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyl9LnZhbi1hZGRyZXNzLWVkaXR7cGFkZGluZzp2YXIoLS12YW4tYWRkcmVzcy1lZGl0LXBhZGRpbmcpfS52YW4tYWRkcmVzcy1lZGl0X19maWVsZHN7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcGFkZGluZy14cyk7b3ZlcmZsb3c6aGlkZGVufS52YW4tYWRkcmVzcy1lZGl0X19maWVsZHMgLnZhbi1maWVsZF9fbGFiZWx7d2lkdGg6NC4xZW19LnZhbi1hZGRyZXNzLWVkaXRfX2RlZmF1bHR7bWFyZ2luLXRvcDp2YXIoLS12YW4tcGFkZGluZy1zbSk7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcGFkZGluZy14cyk7b3ZlcmZsb3c6aGlkZGVufS52YW4tYWRkcmVzcy1lZGl0X19idXR0b25ze3BhZGRpbmc6dmFyKC0tdmFuLWFkZHJlc3MtZWRpdC1idXR0b25zLXBhZGRpbmcpfS52YW4tYWRkcmVzcy1lZGl0X19idXR0b257bWFyZ2luLWJvdHRvbTp2YXIoLS12YW4tYWRkcmVzcy1lZGl0LWJ1dHRvbi1tYXJnaW4tYm90dG9tKTtmb250LXNpemU6dmFyKC0tdmFuLWFkZHJlc3MtZWRpdC1idXR0b24tZm9udC1zaXplKX0udmFuLWFkZHJlc3MtZWRpdC1kZXRhaWxfX3NlYXJjaC1pdGVte2JhY2tncm91bmQ6dmFyKC0tdmFuLWdyYXktMil9LnZhbi1yYWRpby1ncm91cC0taG9yaXpvbnRhbCwudmFuLWNoZWNrYm94LWdyb3VwLS1ob3Jpem9udGFse2ZsZXgtd3JhcDp3cmFwO2Rpc3BsYXk6ZmxleH06cm9vdCw6aG9zdHstLXZhbi1jaGVja2JveC1zaXplOjIwcHg7LS12YW4tY2hlY2tib3gtYm9yZGVyLWNvbG9yOnZhcigtLXZhbi1ncmF5LTUpOy0tdmFuLWNoZWNrYm94LWR1cmF0aW9uOnZhcigtLXZhbi1kdXJhdGlvbi1mYXN0KTstLXZhbi1jaGVja2JveC1sYWJlbC1tYXJnaW46dmFyKC0tdmFuLXBhZGRpbmcteHMpOy0tdmFuLWNoZWNrYm94LWxhYmVsLWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1jaGVja2JveC1jaGVja2VkLWljb24tY29sb3I6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLWNoZWNrYm94LWRpc2FibGVkLWljb24tY29sb3I6dmFyKC0tdmFuLWdyYXktNSk7LS12YW4tY2hlY2tib3gtZGlzYWJsZWQtbGFiZWwtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMyk7LS12YW4tY2hlY2tib3gtZGlzYWJsZWQtYmFja2dyb3VuZDp2YXIoLS12YW4tYm9yZGVyLWNvbG9yKX0udmFuLWNoZWNrYm94e2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVufS52YW4tY2hlY2tib3gtLWRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH0udmFuLWNoZWNrYm94LS1sYWJlbC1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0udmFuLWNoZWNrYm94LS1ob3Jpem9udGFse21hcmdpbi1yaWdodDp2YXIoLS12YW4tcGFkZGluZy1zbSl9LnZhbi1jaGVja2JveF9faWNvbntoZWlnaHQ6MWVtO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2hlY2tib3gtc2l6ZSk7Y3Vyc29yOnBvaW50ZXI7ZmxleDpub25lO2xpbmUtaGVpZ2h0OjFlbX0udmFuLWNoZWNrYm94X19pY29uIC52YW4taWNvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6IzAwMDA7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS12YW4tY2hlY2tib3gtYm9yZGVyLWNvbG9yKTt3aWR0aDoxLjI1ZW07aGVpZ2h0OjEuMjVlbTt0cmFuc2l0aW9uLWR1cmF0aW9uOnZhcigtLXZhbi1jaGVja2JveC1kdXJhdGlvbik7Zm9udC1zaXplOi44ZW07bGluZS1oZWlnaHQ6MS4yNTt0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yLGJvcmRlci1jb2xvcixiYWNrZ3JvdW5kLWNvbG9yO2Rpc3BsYXk6YmxvY2t9LnZhbi1jaGVja2JveF9faWNvbi0tcm91bmQgLnZhbi1pY29ue2JvcmRlci1yYWRpdXM6MTAwJX0udmFuLWNoZWNrYm94X19pY29uLS1pbmRldGVybWluYXRlIC52YW4taWNvbntjb2xvcjp2YXIoLS12YW4td2hpdGUpO2JvcmRlci1jb2xvcjp2YXIoLS12YW4tY2hlY2tib3gtY2hlY2tlZC1pY29uLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1jaGVja2JveC1jaGVja2VkLWljb24tY29sb3IpO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0udmFuLWNoZWNrYm94X19pY29uLS1jaGVja2VkIC52YW4taWNvbntjb2xvcjp2YXIoLS12YW4td2hpdGUpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWNoZWNrYm94LWNoZWNrZWQtaWNvbi1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLXZhbi1jaGVja2JveC1jaGVja2VkLWljb24tY29sb3IpfS52YW4tY2hlY2tib3hfX2ljb24tLWRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH0udmFuLWNoZWNrYm94X19pY29uLS1kaXNhYmxlZCAudmFuLWljb257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tY2hlY2tib3gtZGlzYWJsZWQtYmFja2dyb3VuZCk7Ym9yZGVyLWNvbG9yOnZhcigtLXZhbi1jaGVja2JveC1kaXNhYmxlZC1pY29uLWNvbG9yKX0udmFuLWNoZWNrYm94X19pY29uLS1kaXNhYmxlZC52YW4tY2hlY2tib3hfX2ljb24tLWNoZWNrZWQgLnZhbi1pY29ue2NvbG9yOnZhcigtLXZhbi1jaGVja2JveC1kaXNhYmxlZC1pY29uLWNvbG9yKX0udmFuLWNoZWNrYm94X19sYWJlbHttYXJnaW4tbGVmdDp2YXIoLS12YW4tY2hlY2tib3gtbGFiZWwtbWFyZ2luKTtjb2xvcjp2YXIoLS12YW4tY2hlY2tib3gtbGFiZWwtY29sb3IpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1jaGVja2JveC1zaXplKX0udmFuLWNoZWNrYm94X19sYWJlbC0tbGVmdHttYXJnaW46MCB2YXIoLS12YW4tY2hlY2tib3gtbGFiZWwtbWFyZ2luKSAwIDB9LnZhbi1jaGVja2JveF9fbGFiZWwtLWRpc2FibGVke2NvbG9yOnZhcigtLXZhbi1jaGVja2JveC1kaXNhYmxlZC1sYWJlbC1jb2xvcil9OnJvb3QsOmhvc3R7LS12YW4tY291cG9uLW1hcmdpbjowIHZhcigtLXZhbi1wYWRkaW5nLXNtKSB2YXIoLS12YW4tcGFkZGluZy1zbSk7LS12YW4tY291cG9uLWNvbnRlbnQtaGVpZ2h0Ojg0cHg7LS12YW4tY291cG9uLWNvbnRlbnQtcGFkZGluZzoxNHB4IDA7LS12YW4tY291cG9uLWNvbnRlbnQtdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tY291cG9uLWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tY291cG9uLWFjdGl2ZS1iYWNrZ3JvdW5kOnZhcigtLXZhbi1hY3RpdmUtY29sb3IpOy0tdmFuLWNvdXBvbi1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1sZyk7LS12YW4tY291cG9uLXNoYWRvdzowIDAgNHB4ICMwMDAwMDAxYTstLXZhbi1jb3Vwb24taGVhZC13aWR0aDo5NnB4Oy0tdmFuLWNvdXBvbi1hbW91bnQtY29sb3I6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLWNvdXBvbi1hbW91bnQtZm9udC1zaXplOjMwcHg7LS12YW4tY291cG9uLWN1cnJlbmN5LWZvbnQtc2l6ZTo0MCU7LS12YW4tY291cG9uLW5hbWUtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLWNvdXBvbi1kaXNhYmxlZC10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWNvdXBvbi1kZXNjcmlwdGlvbi1wYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLXhzKSB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tY291cG9uLWRlc2NyaXB0aW9uLWJvcmRlci1jb2xvcjp2YXIoLS12YW4tYm9yZGVyLWNvbG9yKTstLXZhbi1jb3Vwb24tY2hlY2tib3gtY29sb3I6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpfS52YW4tY291cG9ue21hcmdpbjp2YXIoLS12YW4tY291cG9uLW1hcmdpbik7YmFja2dyb3VuZDp2YXIoLS12YW4tY291cG9uLWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLWNvdXBvbi1yYWRpdXMpO2JveC1zaGFkb3c6dmFyKC0tdmFuLWNvdXBvbi1zaGFkb3cpO292ZXJmbG93OmhpZGRlbn0udmFuLWNvdXBvbjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tY291cG9uLWFjdGl2ZS1iYWNrZ3JvdW5kKX0udmFuLWNvdXBvbl9fY29udGVudHtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWluLWhlaWdodDp2YXIoLS12YW4tY291cG9uLWNvbnRlbnQtaGVpZ2h0KTtwYWRkaW5nOnZhcigtLXZhbi1jb3Vwb24tY29udGVudC1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tY291cG9uLWNvbnRlbnQtdGV4dC1jb2xvcik7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0udmFuLWNvdXBvbl9faGVhZHttaW4td2lkdGg6dmFyKC0tdmFuLWNvdXBvbi1oZWFkLXdpZHRoKTtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmcteHMpO2NvbG9yOnZhcigtLXZhbi1jb3Vwb24tYW1vdW50LWNvbG9yKTt0ZXh0LWFsaWduOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLWNvdXBvbl9fYW1vdW50LC52YW4tY291cG9uX19jb25kaXRpb24sLnZhbi1jb3Vwb25fX25hbWUsLnZhbi1jb3Vwb25fX3ZhbGlke3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbn0udmFuLWNvdXBvbl9fYW1vdW50e2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY291cG9uLWFtb3VudC1mb250LXNpemUpO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO21hcmdpbi1ib3R0b206NnB4O292ZXJmbG93OmhpZGRlbn0udmFuLWNvdXBvbl9fYW1vdW50IHNwYW57Zm9udC1zaXplOnZhcigtLXZhbi1jb3Vwb24tY3VycmVuY3ktZm9udC1zaXplKX0udmFuLWNvdXBvbl9fYW1vdW50IHNwYW46bm90KDplbXB0eSl7bWFyZ2luLWxlZnQ6MnB4fS52YW4tY291cG9uX19jb25kaXRpb257Zm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtc20pO3doaXRlLXNwYWNlOnByZS13cmFwO2xpbmUtaGVpZ2h0OjE2cHh9LnZhbi1jb3Vwb25fX2JvZHl7ZmxleDoxO3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4tY291cG9uX19uYW1le2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY291cG9uLW5hbWUtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpO21hcmdpbi1ib3R0b206MTBweH0udmFuLWNvdXBvbl9fdmFsaWR7Zm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtc20pfS52YW4tY291cG9uX19jb3JuZXJ7dG9wOjA7cmlnaHQ6dmFyKC0tdmFuLXBhZGRpbmctbWQpO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowfS52YW4tY291cG9uX19jb3JuZXIgLnZhbi1jaGVja2JveF9faWNvbi0tY2hlY2tlZCAudmFuLWljb257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tY291cG9uLWNoZWNrYm94LWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tdmFuLWNvdXBvbi1jaGVja2JveC1jb2xvcil9LnZhbi1jb3Vwb25fX2Rlc2NyaXB0aW9ue3BhZGRpbmc6dmFyKC0tdmFuLWNvdXBvbi1kZXNjcmlwdGlvbi1wYWRkaW5nKTtmb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1zbSk7Ym9yZGVyLXRvcDoxcHggZGFzaGVkIHZhcigtLXZhbi1jb3Vwb24tZGVzY3JpcHRpb24tYm9yZGVyLWNvbG9yKX0udmFuLWNvdXBvbi0tZGlzYWJsZWQ6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWNvdXBvbi1iYWNrZ3JvdW5kKX0udmFuLWNvdXBvbi0tZGlzYWJsZWQgLnZhbi1jb3Vwb24taXRlbV9fY29udGVudHtoZWlnaHQ6Y2FsYyh2YXIoLS12YW4tY291cG9uLWNvbnRlbnQtaGVpZ2h0KSAtIDEwcHgpfS52YW4tY291cG9uLS1kaXNhYmxlZCAudmFuLWNvdXBvbl9faGVhZHtjb2xvcjppbmhlcml0fTpyb290LDpob3N0ey0tdmFuLXJhZGlvLXNpemU6MjBweDstLXZhbi1yYWRpby1kb3Qtc2l6ZTo4cHg7LS12YW4tcmFkaW8tYm9yZGVyLWNvbG9yOnZhcigtLXZhbi1ncmF5LTUpOy0tdmFuLXJhZGlvLWR1cmF0aW9uOnZhcigtLXZhbi1kdXJhdGlvbi1mYXN0KTstLXZhbi1yYWRpby1sYWJlbC1tYXJnaW46dmFyKC0tdmFuLXBhZGRpbmcteHMpOy0tdmFuLXJhZGlvLWxhYmVsLWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1yYWRpby1jaGVja2VkLWljb24tY29sb3I6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLXJhZGlvLWRpc2FibGVkLWljb24tY29sb3I6dmFyKC0tdmFuLWdyYXktNSk7LS12YW4tcmFkaW8tZGlzYWJsZWQtbGFiZWwtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMyk7LS12YW4tcmFkaW8tZGlzYWJsZWQtYmFja2dyb3VuZDp2YXIoLS12YW4tYm9yZGVyLWNvbG9yKX0udmFuLXJhZGlve2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVufS52YW4tcmFkaW8tLWRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH0udmFuLXJhZGlvLS1sYWJlbC1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0udmFuLXJhZGlvLS1ob3Jpem9udGFse21hcmdpbi1yaWdodDp2YXIoLS12YW4tcGFkZGluZy1zbSl9LnZhbi1yYWRpb19faWNvbntoZWlnaHQ6MWVtO2ZvbnQtc2l6ZTp2YXIoLS12YW4tcmFkaW8tc2l6ZSk7Y3Vyc29yOnBvaW50ZXI7ZmxleDpub25lO2xpbmUtaGVpZ2h0OjFlbX0udmFuLXJhZGlvX19pY29uIC52YW4taWNvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6IzAwMDA7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS12YW4tcmFkaW8tYm9yZGVyLWNvbG9yKTt3aWR0aDoxLjI1ZW07aGVpZ2h0OjEuMjVlbTt0cmFuc2l0aW9uLWR1cmF0aW9uOnZhcigtLXZhbi1yYWRpby1kdXJhdGlvbik7Zm9udC1zaXplOi44ZW07bGluZS1oZWlnaHQ6MS4yNTt0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yLGJvcmRlci1jb2xvcixiYWNrZ3JvdW5kLWNvbG9yO2Rpc3BsYXk6YmxvY2t9LnZhbi1yYWRpb19faWNvbi0tcm91bmQgLnZhbi1pY29ue2JvcmRlci1yYWRpdXM6MTAwJX0udmFuLXJhZGlvX19pY29uLS1kb3R7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOnZhcigtLXZhbi1yYWRpby1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLXJhZGlvLXNpemUpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tdmFuLXJhZGlvLWJvcmRlci1jb2xvcik7dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS12YW4tcmFkaW8tZHVyYXRpb24pO2JvcmRlci1yYWRpdXM6MTAwJTt0cmFuc2l0aW9uLXByb3BlcnR5OmJvcmRlci1jb2xvcjtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLXJhZGlvX19pY29uLS1kb3RfX2ljb257aGVpZ2h0OmNhbGMoMTAwJSAtIHZhcigtLXZhbi1yYWRpby1kb3Qtc2l6ZSkpO3dpZHRoOmNhbGMoMTAwJSAtIHZhcigtLXZhbi1yYWRpby1kb3Qtc2l6ZSkpO3RyYW5zaXRpb24tZHVyYXRpb246dmFyKC0tdmFuLXJhZGlvLWR1cmF0aW9uKTtib3JkZXItcmFkaXVzOjEwMCU7dHJhbnNpdGlvbi1wcm9wZXJ0eTpiYWNrZ3JvdW5kLWNvbG9yO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpfS52YW4tcmFkaW9fX2ljb24tLWNoZWNrZWQgLnZhbi1pY29ue2NvbG9yOnZhcigtLXZhbi13aGl0ZSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tcmFkaW8tY2hlY2tlZC1pY29uLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tdmFuLXJhZGlvLWNoZWNrZWQtaWNvbi1jb2xvcil9LnZhbi1yYWRpb19faWNvbi0tY2hlY2tlZC52YW4tcmFkaW9fX2ljb24tLWRvdHtib3JkZXItY29sb3I6dmFyKC0tdmFuLXJhZGlvLWNoZWNrZWQtaWNvbi1jb2xvcil9LnZhbi1yYWRpb19faWNvbi0tY2hlY2tlZC52YW4tcmFkaW9fX2ljb24tLWRvdCAudmFuLXJhZGlvX19pY29uLS1kb3RfX2ljb257YmFja2dyb3VuZDp2YXIoLS12YW4tcmFkaW8tY2hlY2tlZC1pY29uLWNvbG9yKX0udmFuLXJhZGlvX19pY29uLS1kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi1yYWRpb19faWNvbi0tZGlzYWJsZWQgLnZhbi1pY29ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLXJhZGlvLWRpc2FibGVkLWJhY2tncm91bmQpO2JvcmRlci1jb2xvcjp2YXIoLS12YW4tcmFkaW8tZGlzYWJsZWQtaWNvbi1jb2xvcil9LnZhbi1yYWRpb19faWNvbi0tZGlzYWJsZWQudmFuLXJhZGlvX19pY29uLS1jaGVja2VkIC52YW4taWNvbntjb2xvcjp2YXIoLS12YW4tcmFkaW8tZGlzYWJsZWQtaWNvbi1jb2xvcil9LnZhbi1yYWRpb19fbGFiZWx7bWFyZ2luLWxlZnQ6dmFyKC0tdmFuLXJhZGlvLWxhYmVsLW1hcmdpbik7Y29sb3I6dmFyKC0tdmFuLXJhZGlvLWxhYmVsLWNvbG9yKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tcmFkaW8tc2l6ZSl9LnZhbi1yYWRpb19fbGFiZWwtLWxlZnR7bWFyZ2luOjAgdmFyKC0tdmFuLXJhZGlvLWxhYmVsLW1hcmdpbikgMCAwfS52YW4tcmFkaW9fX2xhYmVsLS1kaXNhYmxlZHtjb2xvcjp2YXIoLS12YW4tcmFkaW8tZGlzYWJsZWQtbGFiZWwtY29sb3IpfTpyb290LDpob3N0ey0tdmFuLWNvbnRhY3QtbGlzdC1wYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLXNtKSB2YXIoLS12YW4tcGFkZGluZy1zbSkgODBweDstLXZhbi1jb250YWN0LWxpc3QtZWRpdC1pY29uLXNpemU6MTZweDstLXZhbi1jb250YWN0LWxpc3QtYWRkLWJ1dHRvbi16LWluZGV4Ojk5OTstLXZhbi1jb250YWN0LWxpc3QtcmFkaW8tY29sb3I6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLWNvbnRhY3QtbGlzdC1pdGVtLXBhZGRpbmc6dmFyKC0tdmFuLXBhZGRpbmctbWQpfS52YW4tY29udGFjdC1saXN0e2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MTAwJTtwYWRkaW5nOnZhcigtLXZhbi1jb250YWN0LWxpc3QtcGFkZGluZyl9LnZhbi1jb250YWN0LWxpc3RfX2l0ZW17cGFkZGluZzp2YXIoLS12YW4tY29udGFjdC1saXN0LWl0ZW0tcGFkZGluZyl9LnZhbi1jb250YWN0LWxpc3RfX2l0ZW0tdGl0bGV7cGFkZGluZy1yaWdodDp2YXIoLS12YW4tcGFkZGluZy14bCk7cGFkZGluZy1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLXhzKTthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS52YW4tY29udGFjdC1saXN0X19pdGVtLXRhZ3ttYXJnaW4tbGVmdDp2YXIoLS12YW4tcGFkZGluZy14cyk7ZmxleDpub25lO3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206MDtsaW5lLWhlaWdodDoxLjRlbX0udmFuLWNvbnRhY3QtbGlzdF9fZ3JvdXB7Ym94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1sZyk7aGVpZ2h0OjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9LnZhbi1jb250YWN0LWxpc3RfX2VkaXR7Zm9udC1zaXplOnZhcigtLXZhbi1jb250YWN0LWxpc3QtZWRpdC1pY29uLXNpemUpfS52YW4tY29udGFjdC1saXN0X19yYWRpbyAudmFuLXJhZGlvX19pY29uLS1jaGVja2VkIC52YW4taWNvbntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1jb250YWN0LWxpc3QtcmFkaW8tY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS12YW4tY29udGFjdC1saXN0LXJhZGlvLWNvbG9yKX0udmFuLWNvbnRhY3QtbGlzdF9fYm90dG9te3otaW5kZXg6dmFyKC0tdmFuLWNvbnRhY3QtbGlzdC1hZGQtYnV0dG9uLXotaW5kZXgpO3BhZGRpbmctbGVmdDp2YXIoLS12YW4tcGFkZGluZy1tZCk7cGFkZGluZy1yaWdodDp2YXIoLS12YW4tcGFkZGluZy1tZCk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tYmFja2dyb3VuZC0yKTtwb3NpdGlvbjpmaXhlZDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MH0udmFuLWNvbnRhY3QtbGlzdF9fYWRke2hlaWdodDo0MHB4O21hcmdpbjo1cHggMH06cm9vdCw6aG9zdHstLXZhbi1hZGRyZXNzLWxpc3QtcGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy1zbSkgdmFyKC0tdmFuLXBhZGRpbmctc20pIDgwcHg7LS12YW4tYWRkcmVzcy1saXN0LWRpc2FibGVkLXRleHQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tYWRkcmVzcy1saXN0LWRpc2FibGVkLXRleHQtcGFkZGluZzpjYWxjKHZhcigtLXZhbi1wYWRkaW5nLWJhc2UpICogNSkgMDstLXZhbi1hZGRyZXNzLWxpc3QtZGlzYWJsZWQtdGV4dC1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tYWRkcmVzcy1saXN0LWRpc2FibGVkLXRleHQtbGluZS1oZWlnaHQ6dmFyKC0tdmFuLWxpbmUtaGVpZ2h0LW1kKTstLXZhbi1hZGRyZXNzLWxpc3QtYWRkLWJ1dHRvbi16LWluZGV4Ojk5OTstLXZhbi1hZGRyZXNzLWxpc3QtaXRlbS1wYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLXNtKTstLXZhbi1hZGRyZXNzLWxpc3QtaXRlbS10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1hZGRyZXNzLWxpc3QtaXRlbS1kaXNhYmxlZC10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLWFkZHJlc3MtbGlzdC1pdGVtLWZvbnQtc2l6ZToxM3B4Oy0tdmFuLWFkZHJlc3MtbGlzdC1pdGVtLWxpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1zbSk7LS12YW4tYWRkcmVzcy1saXN0LXJhZGlvLWNvbG9yOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1hZGRyZXNzLWxpc3QtZWRpdC1pY29uLXNpemU6MjBweH0udmFuLWFkZHJlc3MtbGlzdHtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjEwMCU7cGFkZGluZzp2YXIoLS12YW4tYWRkcmVzcy1saXN0LXBhZGRpbmcpfS52YW4tYWRkcmVzcy1saXN0X19ib3R0b217ei1pbmRleDp2YXIoLS12YW4tYWRkcmVzcy1saXN0LWFkZC1idXR0b24tei1pbmRleCk7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7cGFkZGluZy1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtwYWRkaW5nLXJpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpO3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO2xlZnQ6MH0udmFuLWFkZHJlc3MtbGlzdF9fYWRke2hlaWdodDo0MHB4O21hcmdpbjo1cHggMH0udmFuLWFkZHJlc3MtbGlzdF9fZGlzYWJsZWQtdGV4dHtwYWRkaW5nOnZhcigtLXZhbi1hZGRyZXNzLWxpc3QtZGlzYWJsZWQtdGV4dC1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tYWRkcmVzcy1saXN0LWRpc2FibGVkLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tYWRkcmVzcy1saXN0LWRpc2FibGVkLXRleHQtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tYWRkcmVzcy1saXN0LWRpc2FibGVkLXRleHQtbGluZS1oZWlnaHQpfS52YW4tYWRkcmVzcy1pdGVte3BhZGRpbmc6dmFyKC0tdmFuLWFkZHJlc3MtbGlzdC1pdGVtLXBhZGRpbmcpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLWxnKX0udmFuLWFkZHJlc3MtaXRlbTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206dmFyKC0tdmFuLXBhZGRpbmctc20pfS52YW4tYWRkcmVzcy1pdGVtX190aXRsZXtwYWRkaW5nLXJpZ2h0OjQ0cHh9LnZhbi1hZGRyZXNzLWl0ZW1fX25hbWV7bWFyZ2luLWJvdHRvbTp2YXIoLS12YW4tcGFkZGluZy14cyk7Zm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbGcpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1sZyk7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0udmFuLWFkZHJlc3MtaXRlbV9fdGFne21hcmdpbi1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLXhzKTtmbGV4Om5vbmU7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO2xpbmUtaGVpZ2h0OjEuNGVtfS52YW4tYWRkcmVzcy1pdGVtX19hZGRyZXNze2NvbG9yOnZhcigtLXZhbi1hZGRyZXNzLWxpc3QtaXRlbS10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWFkZHJlc3MtbGlzdC1pdGVtLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWFkZHJlc3MtbGlzdC1pdGVtLWxpbmUtaGVpZ2h0KX0udmFuLWFkZHJlc3MtaXRlbS0tZGlzYWJsZWQgLnZhbi1hZGRyZXNzLWl0ZW1fX25hbWUsLnZhbi1hZGRyZXNzLWl0ZW0tLWRpc2FibGVkIC52YW4tYWRkcmVzcy1pdGVtX19hZGRyZXNze2NvbG9yOnZhcigtLXZhbi1hZGRyZXNzLWxpc3QtaXRlbS1kaXNhYmxlZC10ZXh0LWNvbG9yKX0udmFuLWFkZHJlc3MtaXRlbV9fZWRpdHt0b3A6NTAlO3JpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtjb2xvcjp2YXIoLS12YW4tZ3JheS02KTtmb250LXNpemU6dmFyKC0tdmFuLWFkZHJlc3MtbGlzdC1lZGl0LWljb24tc2l6ZSk7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LnZhbi1hZGRyZXNzLWl0ZW0gLnZhbi1jZWxse3BhZGRpbmc6MH0udmFuLWFkZHJlc3MtaXRlbSAudmFuLXJhZGlvX19sYWJlbHttYXJnaW4tbGVmdDp2YXIoLS12YW4tcGFkZGluZy1zbSl9LnZhbi1hZGRyZXNzLWl0ZW0gLnZhbi1yYWRpb19faWNvbi0tY2hlY2tlZCAudmFuLWljb257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tYWRkcmVzcy1saXN0LXJhZGlvLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tdmFuLWFkZHJlc3MtbGlzdC1yYWRpby1jb2xvcil9OnJvb3QsOmhvc3R7LS12YW4tYmFycmFnZS1mb250LXNpemU6MTZweDstLXZhbi1iYXJyYWdlLXNwYWNlOjEwcHg7LS12YW4tYmFycmFnZS1mb250OmluaGVyaXQ7LS12YW4tYmFycmFnZS1jb2xvcjp2YXIoLS12YW4td2hpdGUpfS52YW4tYmFycmFnZXtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59LnZhbi1iYXJyYWdlX19pdGVte3otaW5kZXg6OTk7cGFkZGluZy1ib3R0b206dmFyKC0tdmFuLWJhcnJhZ2Utc3BhY2UpO29wYWNpdHk6Ljc1O2xpbmUtaGVpZ2h0OjE7Zm9udC1zaXplOnZhcigtLXZhbi1iYXJyYWdlLWZvbnQtc2l6ZSk7Zm9udC1mYW1pbHk6dmFyKC0tdmFuLWJhcnJhZ2UtZm9udCk7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOnZhcigtLXZhbi1iYXJyYWdlLWNvbG9yKTt0ZXh0LXNoYWRvdzoxcHggMCAxcHggIzAwMCwwIDFweCAxcHggIzAwMCwwIC0xcHggMXB4ICMwMDAsLTFweCAwIDFweCAjMDAwOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3dpbGwtY2hhbmdlOnRyYW5zZm9ybTtmb250LXdlaWdodDo3MDA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKDExMCUpfUBrZXlmcmFtZXMgdmFuLWJhcnJhZ2V7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxMTAlKX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlKHZhcigtLW1vdmUtZGlzdGFuY2UpKX19OnJvb3QsOmhvc3R7LS12YW4tY2VsbC1ncm91cC1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLWNlbGwtZ3JvdXAtdGl0bGUtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tY2VsbC1ncm91cC10aXRsZS1wYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLW1kKSB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tY2VsbC1ncm91cC10aXRsZS1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tY2VsbC1ncm91cC10aXRsZS1saW5lLWhlaWdodDoxNnB4Oy0tdmFuLWNlbGwtZ3JvdXAtaW5zZXQtcGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLW1kKTstLXZhbi1jZWxsLWdyb3VwLWluc2V0LXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLWxnKTstLXZhbi1jZWxsLWdyb3VwLWluc2V0LXRpdGxlLXBhZGRpbmc6dmFyKC0tdmFuLXBhZGRpbmctbWQpIHZhcigtLXZhbi1wYWRkaW5nLW1kKX0udmFuLWNlbGwtZ3JvdXB7YmFja2dyb3VuZDp2YXIoLS12YW4tY2VsbC1ncm91cC1iYWNrZ3JvdW5kKX0udmFuLWNlbGwtZ3JvdXAtLWluc2V0e21hcmdpbjp2YXIoLS12YW4tY2VsbC1ncm91cC1pbnNldC1wYWRkaW5nKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1jZWxsLWdyb3VwLWluc2V0LXJhZGl1cyk7b3ZlcmZsb3c6aGlkZGVufS52YW4tY2VsbC1ncm91cF9fdGl0bGV7cGFkZGluZzp2YXIoLS12YW4tY2VsbC1ncm91cC10aXRsZS1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tY2VsbC1ncm91cC10aXRsZS1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1jZWxsLWdyb3VwLXRpdGxlLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNlbGwtZ3JvdXAtdGl0bGUtbGluZS1oZWlnaHQpfS52YW4tY2VsbC1ncm91cF9fdGl0bGUtLWluc2V0e3BhZGRpbmc6dmFyKC0tdmFuLWNlbGwtZ3JvdXAtaW5zZXQtdGl0bGUtcGFkZGluZyl9OnJvb3QsOmhvc3R7LS12YW4tY2lyY2xlLXNpemU6MTAwcHg7LS12YW4tY2lyY2xlLWNvbG9yOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1jaXJjbGUtbGF5ZXItY29sb3I6dmFyKC0tdmFuLXdoaXRlKTstLXZhbi1jaXJjbGUtdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tY2lyY2xlLXRleHQtZm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCk7LS12YW4tY2lyY2xlLXRleHQtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLWNpcmNsZS10ZXh0LWxpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1tZCl9LnZhbi1jaXJjbGV7d2lkdGg6dmFyKC0tdmFuLWNpcmNsZS1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLWNpcmNsZS1zaXplKTt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLWNpcmNsZSBzdmd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjB9LnZhbi1jaXJjbGVfX2xheWVye3N0cm9rZTp2YXIoLS12YW4tY2lyY2xlLWxheWVyLWNvbG9yKX0udmFuLWNpcmNsZV9faG92ZXJ7ZmlsbDpub25lO3N0cm9rZTp2YXIoLS12YW4tY2lyY2xlLWNvbG9yKTtzdHJva2UtbGluZWNhcDpyb3VuZH0udmFuLWNpcmNsZV9fdGV4dHtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctYmFzZSk7Y29sb3I6dmFyKC0tdmFuLWNpcmNsZS10ZXh0LWNvbG9yKTtmb250LXdlaWdodDp2YXIoLS12YW4tY2lyY2xlLXRleHQtZm9udC13ZWlnaHQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2lyY2xlLXRleHQtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tY2lyY2xlLXRleHQtbGluZS1oZWlnaHQpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS52YW4tcm93e2ZsZXgtd3JhcDp3cmFwO2Rpc3BsYXk6ZmxleH0udmFuLXJvdy0tbm93cmFwe2ZsZXgtd3JhcDpub3dyYXB9LnZhbi1yb3ctLWp1c3RpZnktY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnZhbi1yb3ctLWp1c3RpZnktZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0udmFuLXJvdy0tanVzdGlmeS1zcGFjZS1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS52YW4tcm93LS1qdXN0aWZ5LXNwYWNlLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS52YW4tcm93LS1hbGlnbi1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS52YW4tcm93LS1hbGlnbi1ib3R0b217YWxpZ24taXRlbXM6ZmxleC1lbmR9LnZhbi1jb2x7Ym94LXNpemluZzpib3JkZXItYm94O21pbi1oZWlnaHQ6MXB4O2Rpc3BsYXk6YmxvY2t9LnZhbi1jb2wtLTF7ZmxleDowIDAgNC4xNjY2NyU7bWF4LXdpZHRoOjQuMTY2NjclfS52YW4tY29sLS1vZmZzZXQtMXttYXJnaW4tbGVmdDo0LjE2NjY3JX0udmFuLWNvbC0tMntmbGV4OjAgMCA4LjMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMyV9LnZhbi1jb2wtLW9mZnNldC0ye21hcmdpbi1sZWZ0OjguMzMzMzMlfS52YW4tY29sLS0ze2ZsZXg6MCAwIDEyLjUlO21heC13aWR0aDoxMi41JX0udmFuLWNvbC0tb2Zmc2V0LTN7bWFyZ2luLWxlZnQ6MTIuNSV9LnZhbi1jb2wtLTR7ZmxleDowIDAgMTYuNjY2NyU7bWF4LXdpZHRoOjE2LjY2NjclfS52YW4tY29sLS1vZmZzZXQtNHttYXJnaW4tbGVmdDoxNi42NjY3JX0udmFuLWNvbC0tNXtmbGV4OjAgMCAyMC44MzMzJTttYXgtd2lkdGg6MjAuODMzMyV9LnZhbi1jb2wtLW9mZnNldC01e21hcmdpbi1sZWZ0OjIwLjgzMzMlfS52YW4tY29sLS02e2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS52YW4tY29sLS1vZmZzZXQtNnttYXJnaW4tbGVmdDoyNSV9LnZhbi1jb2wtLTd7ZmxleDowIDAgMjkuMTY2NyU7bWF4LXdpZHRoOjI5LjE2NjclfS52YW4tY29sLS1vZmZzZXQtN3ttYXJnaW4tbGVmdDoyOS4xNjY3JX0udmFuLWNvbC0tOHtmbGV4OjAgMCAzMy4zMzMzJTttYXgtd2lkdGg6MzMuMzMzMyV9LnZhbi1jb2wtLW9mZnNldC04e21hcmdpbi1sZWZ0OjMzLjMzMzMlfS52YW4tY29sLS05e2ZsZXg6MCAwIDM3LjUlO21heC13aWR0aDozNy41JX0udmFuLWNvbC0tb2Zmc2V0LTl7bWFyZ2luLWxlZnQ6MzcuNSV9LnZhbi1jb2wtLTEwe2ZsZXg6MCAwIDQxLjY2NjclO21heC13aWR0aDo0MS42NjY3JX0udmFuLWNvbC0tb2Zmc2V0LTEwe21hcmdpbi1sZWZ0OjQxLjY2NjclfS52YW4tY29sLS0xMXtmbGV4OjAgMCA0NS44MzMzJTttYXgtd2lkdGg6NDUuODMzMyV9LnZhbi1jb2wtLW9mZnNldC0xMXttYXJnaW4tbGVmdDo0NS44MzMzJX0udmFuLWNvbC0tMTJ7ZmxleDowIDAgNTAlO21heC13aWR0aDo1MCV9LnZhbi1jb2wtLW9mZnNldC0xMnttYXJnaW4tbGVmdDo1MCV9LnZhbi1jb2wtLTEze2ZsZXg6MCAwIDU0LjE2NjclO21heC13aWR0aDo1NC4xNjY3JX0udmFuLWNvbC0tb2Zmc2V0LTEze21hcmdpbi1sZWZ0OjU0LjE2NjclfS52YW4tY29sLS0xNHtmbGV4OjAgMCA1OC4zMzMzJTttYXgtd2lkdGg6NTguMzMzMyV9LnZhbi1jb2wtLW9mZnNldC0xNHttYXJnaW4tbGVmdDo1OC4zMzMzJX0udmFuLWNvbC0tMTV7ZmxleDowIDAgNjIuNSU7bWF4LXdpZHRoOjYyLjUlfS52YW4tY29sLS1vZmZzZXQtMTV7bWFyZ2luLWxlZnQ6NjIuNSV9LnZhbi1jb2wtLTE2e2ZsZXg6MCAwIDY2LjY2NjclO21heC13aWR0aDo2Ni42NjY3JX0udmFuLWNvbC0tb2Zmc2V0LTE2e21hcmdpbi1sZWZ0OjY2LjY2NjclfS52YW4tY29sLS0xN3tmbGV4OjAgMCA3MC44MzMzJTttYXgtd2lkdGg6NzAuODMzMyV9LnZhbi1jb2wtLW9mZnNldC0xN3ttYXJnaW4tbGVmdDo3MC44MzMzJX0udmFuLWNvbC0tMTh7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LnZhbi1jb2wtLW9mZnNldC0xOHttYXJnaW4tbGVmdDo3NSV9LnZhbi1jb2wtLTE5e2ZsZXg6MCAwIDc5LjE2NjclO21heC13aWR0aDo3OS4xNjY3JX0udmFuLWNvbC0tb2Zmc2V0LTE5e21hcmdpbi1sZWZ0Ojc5LjE2NjclfS52YW4tY29sLS0yMHtmbGV4OjAgMCA4My4zMzMzJTttYXgtd2lkdGg6ODMuMzMzMyV9LnZhbi1jb2wtLW9mZnNldC0yMHttYXJnaW4tbGVmdDo4My4zMzMzJX0udmFuLWNvbC0tMjF7ZmxleDowIDAgODcuNSU7bWF4LXdpZHRoOjg3LjUlfS52YW4tY29sLS1vZmZzZXQtMjF7bWFyZ2luLWxlZnQ6ODcuNSV9LnZhbi1jb2wtLTIye2ZsZXg6MCAwIDkxLjY2NjclO21heC13aWR0aDo5MS42NjY3JX0udmFuLWNvbC0tb2Zmc2V0LTIye21hcmdpbi1sZWZ0OjkxLjY2NjclfS52YW4tY29sLS0yM3tmbGV4OjAgMCA5NS44MzMzJTttYXgtd2lkdGg6OTUuODMzMyV9LnZhbi1jb2wtLW9mZnNldC0yM3ttYXJnaW4tbGVmdDo5NS44MzMzJX0udmFuLWNvbC0tMjR7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0udmFuLWNvbC0tb2Zmc2V0LTI0e21hcmdpbi1sZWZ0OjEwMCV9OnJvb3QsOmhvc3R7LS12YW4tY291bnQtZG93bi10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1jb3VudC1kb3duLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1jb3VudC1kb3duLWxpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1tZCl9LnZhbi1jb3VudC1kb3due2NvbG9yOnZhcigtLXZhbi1jb3VudC1kb3duLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY291bnQtZG93bi1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1jb3VudC1kb3duLWxpbmUtaGVpZ2h0KX06cm9vdCw6aG9zdHstLXZhbi1lbXB0eS1wYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLXhsKSAwOy0tdmFuLWVtcHR5LWltYWdlLXNpemU6MTYwcHg7LS12YW4tZW1wdHktZGVzY3JpcHRpb24tbWFyZ2luLXRvcDp2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tZW1wdHktZGVzY3JpcHRpb24tcGFkZGluZzowIDYwcHg7LS12YW4tZW1wdHktZGVzY3JpcHRpb24tY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tZW1wdHktZGVzY3JpcHRpb24tZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLWVtcHR5LWRlc2NyaXB0aW9uLWxpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1tZCk7LS12YW4tZW1wdHktYm90dG9tLW1hcmdpbi10b3A6MjRweH0udmFuLWVtcHR5e2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOnZhcigtLXZhbi1lbXB0eS1wYWRkaW5nKTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS52YW4tZW1wdHlfX2ltYWdle3dpZHRoOnZhcigtLXZhbi1lbXB0eS1pbWFnZS1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLWVtcHR5LWltYWdlLXNpemUpfS52YW4tZW1wdHlfX2ltYWdlIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS52YW4tZW1wdHlfX2Rlc2NyaXB0aW9ue21hcmdpbi10b3A6dmFyKC0tdmFuLWVtcHR5LWRlc2NyaXB0aW9uLW1hcmdpbi10b3ApO3BhZGRpbmc6dmFyKC0tdmFuLWVtcHR5LWRlc2NyaXB0aW9uLXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi1lbXB0eS1kZXNjcmlwdGlvbi1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1lbXB0eS1kZXNjcmlwdGlvbi1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1lbXB0eS1kZXNjcmlwdGlvbi1saW5lLWhlaWdodCl9LnZhbi1lbXB0eV9fYm90dG9te21hcmdpbi10b3A6dmFyKC0tdmFuLWVtcHR5LWJvdHRvbS1tYXJnaW4tdG9wKX0udmFuLXRoZW1lLWRhcmsgLnZhbi1lbXB0eXtvcGFjaXR5Oi41fTpyb290LDpob3N0ey0tdmFuLWNvdXBvbi1saXN0LWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQpOy0tdmFuLWNvdXBvbi1saXN0LWZpZWxkLXBhZGRpbmc6NXB4IDAgNXB4IHZhcigtLXZhbi1wYWRkaW5nLW1kKTstLXZhbi1jb3Vwb24tbGlzdC1leGNoYW5nZS1idXR0b24taGVpZ2h0OjMycHg7LS12YW4tY291cG9uLWxpc3QtY2xvc2UtYnV0dG9uLWhlaWdodDo0MHB4Oy0tdmFuLWNvdXBvbi1saXN0LWVtcHR5LXRpcC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvci0yKTstLXZhbi1jb3Vwb24tbGlzdC1lbXB0eS10aXAtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLWNvdXBvbi1saXN0LWVtcHR5LXRpcC1saW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpfS52YW4tY291cG9uLWxpc3R7YmFja2dyb3VuZDp2YXIoLS12YW4tY291cG9uLWxpc3QtYmFja2dyb3VuZCk7aGVpZ2h0OjEwMCU7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1jb3Vwb24tbGlzdF9fZmllbGR7cGFkZGluZzp2YXIoLS12YW4tY291cG9uLWxpc3QtZmllbGQtcGFkZGluZyl9LnZhbi1jb3Vwb24tbGlzdF9fZmllbGQgLnZhbi1maWVsZF9fYm9keXtoZWlnaHQ6MzRweDtwYWRkaW5nLWxlZnQ6dmFyKC0tdmFuLXBhZGRpbmctc20pO2JhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tYXgpO2xpbmUtaGVpZ2h0OjM0cHh9LnZhbi1jb3Vwb24tbGlzdF9fZmllbGQgLnZhbi1maWVsZF9fYm9keTo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMyl9LnZhbi1jb3Vwb24tbGlzdF9fZmllbGQgLnZhbi1maWVsZF9fY2xlYXJ7bWFyZ2luLXJpZ2h0OjB9LnZhbi1jb3Vwb24tbGlzdF9fZXhjaGFuZ2UtYmFye2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0udmFuLWNvdXBvbi1saXN0X19leGNoYW5nZXtoZWlnaHQ6dmFyKC0tdmFuLWNvdXBvbi1saXN0LWV4Y2hhbmdlLWJ1dHRvbi1oZWlnaHQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLWxnKTtsaW5lLWhlaWdodDpjYWxjKHZhcigtLXZhbi1jb3Vwb24tbGlzdC1leGNoYW5nZS1idXR0b24taGVpZ2h0KSAtIDJweCk7Ym9yZGVyOjA7ZmxleDpub25lfS52YW4tY291cG9uLWxpc3QgLnZhbi10YWJzX193cmFwe2JveC1zaGFkb3c6MCA2cHggMTJweCAtMTJweCB2YXIoLS12YW4tZ3JheS02KX0udmFuLWNvdXBvbi1saXN0X19saXN0e2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLW1kKSAwIHZhcigtLXZhbi1wYWRkaW5nLWxnKTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtvdmVyZmxvdy15OmF1dG99LnZhbi1jb3Vwb24tbGlzdF9fbGlzdC0td2l0aC1ib3R0b217cGFkZGluZy1ib3R0b206NTBweH0udmFuLWNvdXBvbi1saXN0X19ib3R0b217ei1pbmRleDo5OTk7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7cGFkZGluZzo1cHggdmFyKC0tdmFuLXBhZGRpbmctbWQpO2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowfS52YW4tY291cG9uLWxpc3RfX2Nsb3Nle2hlaWdodDp2YXIoLS12YW4tY291cG9uLWxpc3QtY2xvc2UtYnV0dG9uLWhlaWdodCl9LnZhbi1jb3Vwb24tbGlzdF9fZW1wdHktdGlwe2NvbG9yOnZhcigtLXZhbi1jb3Vwb24tbGlzdC1lbXB0eS10aXAtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY291cG9uLWxpc3QtZW1wdHktdGlwLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNvdXBvbi1saXN0LWVtcHR5LXRpcC1saW5lLWhlaWdodCl9OnJvb3QsOmhvc3R7LS12YW4tZGl2aWRlci1tYXJnaW46dmFyKC0tdmFuLXBhZGRpbmctbWQpIDA7LS12YW4tZGl2aWRlci12ZXJ0aWNhbC1tYXJnaW46MCB2YXIoLS12YW4tcGFkZGluZy14cyk7LS12YW4tZGl2aWRlci10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWRpdmlkZXItZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLWRpdmlkZXItbGluZS1oZWlnaHQ6MjRweDstLXZhbi1kaXZpZGVyLWJvcmRlci1jb2xvcjp2YXIoLS12YW4tYm9yZGVyLWNvbG9yKTstLXZhbi1kaXZpZGVyLWNvbnRlbnQtcGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tZGl2aWRlci1jb250ZW50LWxlZnQtd2lkdGg6MTAlOy0tdmFuLWRpdmlkZXItY29udGVudC1yaWdodC13aWR0aDoxMCV9LnZhbi1kaXZpZGVye21hcmdpbjp2YXIoLS12YW4tZGl2aWRlci1tYXJnaW4pO2NvbG9yOnZhcigtLXZhbi1kaXZpZGVyLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tZGl2aWRlci1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1kaXZpZGVyLWxpbmUtaGVpZ2h0KTtib3JkZXItY29sb3I6dmFyKC0tdmFuLWRpdmlkZXItYm9yZGVyLWNvbG9yKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjA7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0udmFuLWRpdmlkZXI6YmVmb3JlLC52YW4tZGl2aWRlcjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXN0eWxlOmluaGVyaXQ7Ym9yZGVyLXdpZHRoOnZhcigtLXZhbi1ib3JkZXItd2lkdGgpIDAgMDtmbGV4OjE7aGVpZ2h0OjFweDtkaXNwbGF5OmJsb2NrfS52YW4tZGl2aWRlcjpiZWZvcmV7Y29udGVudDoiIn0udmFuLWRpdmlkZXItLWhhaXJsaW5lOmJlZm9yZSwudmFuLWRpdmlkZXItLWhhaXJsaW5lOmFmdGVye3RyYW5zZm9ybTpzY2FsZVkoLjUpfS52YW4tZGl2aWRlci0tZGFzaGVke2JvcmRlci1zdHlsZTpkYXNoZWR9LnZhbi1kaXZpZGVyLS1jb250ZW50LWNlbnRlcjpiZWZvcmUsLnZhbi1kaXZpZGVyLS1jb250ZW50LWxlZnQ6YmVmb3JlLC52YW4tZGl2aWRlci0tY29udGVudC1yaWdodDpiZWZvcmV7bWFyZ2luLXJpZ2h0OnZhcigtLXZhbi1kaXZpZGVyLWNvbnRlbnQtcGFkZGluZyl9LnZhbi1kaXZpZGVyLS1jb250ZW50LWNlbnRlcjphZnRlciwudmFuLWRpdmlkZXItLWNvbnRlbnQtbGVmdDphZnRlciwudmFuLWRpdmlkZXItLWNvbnRlbnQtcmlnaHQ6YWZ0ZXJ7bWFyZ2luLWxlZnQ6dmFyKC0tdmFuLWRpdmlkZXItY29udGVudC1wYWRkaW5nKTtjb250ZW50OiIifS52YW4tZGl2aWRlci0tY29udGVudC1sZWZ0OmJlZm9yZXttYXgtd2lkdGg6dmFyKC0tdmFuLWRpdmlkZXItY29udGVudC1sZWZ0LXdpZHRoKX0udmFuLWRpdmlkZXItLWNvbnRlbnQtcmlnaHQ6YWZ0ZXJ7bWF4LXdpZHRoOnZhcigtLXZhbi1kaXZpZGVyLWNvbnRlbnQtcmlnaHQtd2lkdGgpfS52YW4tZGl2aWRlci0tdmVydGljYWx7d2lkdGg6dmFyKC0tdmFuLWJvcmRlci13aWR0aCk7aGVpZ2h0OjFlbTttYXJnaW46dmFyKC0tdmFuLWRpdmlkZXItdmVydGljYWwtbWFyZ2luKTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnZhbi1kaXZpZGVyLS12ZXJ0aWNhbDpiZWZvcmV7Ym9yZGVyLXdpZHRoOjAgMCAwIHZhcigtLXZhbi1ib3JkZXItd2lkdGgpO2hlaWdodDoxMDAlfS52YW4tZGl2aWRlci0tdmVydGljYWw6YWZ0ZXJ7ZGlzcGxheTpub25lfS52YW4tZGl2aWRlci0tdmVydGljYWwudmFuLWRpdmlkZXItLWhhaXJsaW5lOmJlZm9yZXt0cmFuc2Zvcm06c2NhbGVYKC41KX06cm9vdCw6aG9zdHstLXZhbi1kcm9wZG93bi1tZW51LWhlaWdodDo0OHB4Oy0tdmFuLWRyb3Bkb3duLW1lbnUtYmFja2dyb3VuZDp2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1kcm9wZG93bi1tZW51LXNoYWRvdzowIDJweCAxMnB4ICM2NDY1NjYxZjstLXZhbi1kcm9wZG93bi1tZW51LXRpdGxlLWZvbnQtc2l6ZToxNXB4Oy0tdmFuLWRyb3Bkb3duLW1lbnUtdGl0bGUtdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tZHJvcGRvd24tbWVudS10aXRsZS1hY3RpdmUtdGV4dC1jb2xvcjp2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tZHJvcGRvd24tbWVudS10aXRsZS1kaXNhYmxlZC10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWRyb3Bkb3duLW1lbnUtdGl0bGUtcGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLXhzKTstLXZhbi1kcm9wZG93bi1tZW51LXRpdGxlLWxpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1sZyk7LS12YW4tZHJvcGRvd24tbWVudS1vcHRpb24tYWN0aXZlLWNvbG9yOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1kcm9wZG93bi1tZW51LW9wdGlvbi1kaXNhYmxlZC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvci0zKTstLXZhbi1kcm9wZG93bi1tZW51LWNvbnRlbnQtbWF4LWhlaWdodDo4MCV9LnZhbi1kcm9wZG93bi1tZW51ey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS52YW4tZHJvcGRvd24tbWVudV9fYmFye2hlaWdodDp2YXIoLS12YW4tZHJvcGRvd24tbWVudS1oZWlnaHQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWRyb3Bkb3duLW1lbnUtYmFja2dyb3VuZCk7Ym94LXNoYWRvdzp2YXIoLS12YW4tZHJvcGRvd24tbWVudS1zaGFkb3cpO2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLWRyb3Bkb3duLW1lbnVfX2Jhci0tb3BlbmVke3otaW5kZXg6Y2FsYyh2YXIoLS12YW4tZHJvcGRvd24taXRlbS16LWluZGV4KSArIDEpfS52YW4tZHJvcGRvd24tbWVudV9fYmFyLS1zY3JvbGxhYmxle3BhZGRpbmctbGVmdDp2YXIoLS12YW4tcGFkZGluZy1iYXNlKTtwYWRkaW5nLXJpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLXhzKTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtvdmVyZmxvdzphdXRvIGhpZGRlbn0udmFuLWRyb3Bkb3duLW1lbnVfX2Jhci0tc2Nyb2xsYWJsZTo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfS52YW4tZHJvcGRvd24tbWVudV9faXRlbXtmbGV4OjE7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4fS52YW4tZHJvcGRvd24tbWVudV9faXRlbS0tZGlzYWJsZWQgLnZhbi1kcm9wZG93bi1tZW51X190aXRsZXtjb2xvcjp2YXIoLS12YW4tZHJvcGRvd24tbWVudS10aXRsZS1kaXNhYmxlZC10ZXh0LWNvbG9yKX0udmFuLWRyb3Bkb3duLW1lbnVfX2l0ZW0tLWdyb3d7cGFkZGluZy1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpO3BhZGRpbmctcmlnaHQ6dmFyKC0tdmFuLXBhZGRpbmctc20pO2ZsZXg6MSAwIGF1dG99LnZhbi1kcm9wZG93bi1tZW51X190aXRsZXtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzp2YXIoLS12YW4tZHJvcGRvd24tbWVudS10aXRsZS1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tZHJvcGRvd24tbWVudS10aXRsZS10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWRyb3Bkb3duLW1lbnUtdGl0bGUtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tZHJvcGRvd24tbWVudS10aXRsZS1saW5lLWhlaWdodCk7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1kcm9wZG93bi1tZW51X190aXRsZTphZnRlcntib3JkZXI6M3B4IHNvbGlkO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS12YW4tZ3JheS00KSB2YXIoLS12YW4tZ3JheS00KTtvcGFjaXR5Oi44O2NvbnRlbnQ6IiI7bWFyZ2luLXRvcDotNXB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6LTRweDt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9LnZhbi1kcm9wZG93bi1tZW51X190aXRsZS0tYWN0aXZle2NvbG9yOnZhcigtLXZhbi1kcm9wZG93bi1tZW51LXRpdGxlLWFjdGl2ZS10ZXh0LWNvbG9yKX0udmFuLWRyb3Bkb3duLW1lbnVfX3RpdGxlLS1hY3RpdmU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiMwMDAwICMwMDAwIGN1cnJlbnRDb2xvciBjdXJyZW50Q29sb3J9LnZhbi1kcm9wZG93bi1tZW51X190aXRsZS0tZG93bjphZnRlcnttYXJnaW4tdG9wOi0xcHg7dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpfTpyb290LDpob3N0ey0tdmFuLWRyb3Bkb3duLWl0ZW0tei1pbmRleDoxMH0udmFuLWRyb3Bkb3duLWl0ZW17ei1pbmRleDp2YXIoLS12YW4tZHJvcGRvd24taXRlbS16LWluZGV4KTtwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7cmlnaHQ6MDtvdmVyZmxvdzpoaWRkZW59LnZhbi1kcm9wZG93bi1pdGVtX19pY29ue2xpbmUtaGVpZ2h0OmluaGVyaXQ7ZGlzcGxheTpibG9ja30udmFuLWRyb3Bkb3duLWl0ZW1fX29wdGlvbnt0ZXh0LWFsaWduOmxlZnR9LnZhbi1kcm9wZG93bi1pdGVtX19vcHRpb24tLWFjdGl2ZSwudmFuLWRyb3Bkb3duLWl0ZW1fX29wdGlvbi0tYWN0aXZlIC52YW4tZHJvcGRvd24taXRlbV9faWNvbntjb2xvcjp2YXIoLS12YW4tZHJvcGRvd24tbWVudS1vcHRpb24tYWN0aXZlLWNvbG9yKX0udmFuLWRyb3Bkb3duLWl0ZW1fX29wdGlvbi0tZGlzYWJsZWQsLnZhbi1kcm9wZG93bi1pdGVtX19vcHRpb24tLWRpc2FibGVkIC52YW4tZHJvcGRvd24taXRlbV9faWNvbntjb2xvcjp2YXIoLS12YW4tZHJvcGRvd24tbWVudS1vcHRpb24tZGlzYWJsZWQtY29sb3IpfS52YW4tZHJvcGRvd24taXRlbS0tdXB7dG9wOjB9LnZhbi1kcm9wZG93bi1pdGVtLS1kb3due2JvdHRvbTowfS52YW4tZHJvcGRvd24taXRlbV9fY29udGVudHttYXgtaGVpZ2h0OnZhcigtLXZhbi1kcm9wZG93bi1tZW51LWNvbnRlbnQtbWF4LWhlaWdodCk7cG9zaXRpb246YWJzb2x1dGV9OnJvb3QsOmhvc3R7LS12YW4tZmxvYXRpbmctcGFuZWwtYm9yZGVyLXJhZGl1czoxNnB4Oy0tdmFuLWZsb2F0aW5nLXBhbmVsLWhlYWRlci1oZWlnaHQ6MzBweDstLXZhbi1mbG9hdGluZy1wYW5lbC16LWluZGV4Ojk5OTstLXZhbi1mbG9hdGluZy1wYW5lbC1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLWZsb2F0aW5nLXBhbmVsLWJhci13aWR0aDoyMHB4Oy0tdmFuLWZsb2F0aW5nLXBhbmVsLWJhci1oZWlnaHQ6M3B4Oy0tdmFuLWZsb2F0aW5nLXBhbmVsLWJhci1jb2xvcjp2YXIoLS12YW4tZ3JheS01KX0udmFuLWZsb2F0aW5nLXBhbmVse3dpZHRoOjEwMHZ3O3otaW5kZXg6dmFyKC0tdmFuLWZsb2F0aW5nLXBhbmVsLXotaW5kZXgpO3RvdWNoLWFjdGlvbjpub25lO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tdmFuLWZsb2F0aW5nLXBhbmVsLWJvcmRlci1yYWRpdXMpO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLXZhbi1mbG9hdGluZy1wYW5lbC1ib3JkZXItcmFkaXVzKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1mbG9hdGluZy1wYW5lbC1iYWNrZ3JvdW5kKTt3aWxsLWNoYW5nZTp0cmFuc2Zvcm07ZmxleC1kaXJlY3Rpb246Y29sdW1uO2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpmaXhlZDtib3R0b206MDtsZWZ0OjB9LnZhbi1mbG9hdGluZy1wYW5lbDphZnRlcntjb250ZW50OiIiO2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDt3aWR0aDoxMDB2dztoZWlnaHQ6MTAwdmg7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206LTEwMHZofS52YW4tZmxvYXRpbmctcGFuZWxfX2hlYWRlcntoZWlnaHQ6dmFyKC0tdmFuLWZsb2F0aW5nLXBhbmVsLWhlYWRlci1oZWlnaHQpO2N1cnNvcjotd2Via2l0LWdyYWI7Y3Vyc29yOmdyYWI7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS52YW4tZmxvYXRpbmctcGFuZWxfX2hlYWRlci1iYXJ7aGVpZ2h0OnZhcigtLXZhbi1mbG9hdGluZy1wYW5lbC1iYXItaGVpZ2h0KTt3aWR0aDp2YXIoLS12YW4tZmxvYXRpbmctcGFuZWwtYmFyLXdpZHRoKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWZsb2F0aW5nLXBhbmVsLWJhci1jb2xvcil9LnZhbi1mbG9hdGluZy1wYW5lbF9fY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1mbG9hdGluZy1wYW5lbC1iYWNrZ3JvdW5kKTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtmbGV4OjE7b3ZlcmZsb3cteTphdXRvfS52YW4tZ3JpZHtmbGV4LXdyYXA6d3JhcDtkaXNwbGF5OmZsZXh9OnJvb3QsOmhvc3R7LS12YW4tZ3JpZC1pdGVtLWNvbnRlbnQtcGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy1tZCkgdmFyKC0tdmFuLXBhZGRpbmcteHMpOy0tdmFuLWdyaWQtaXRlbS1jb250ZW50LWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tZ3JpZC1pdGVtLWNvbnRlbnQtYWN0aXZlLWNvbG9yOnZhcigtLXZhbi1hY3RpdmUtY29sb3IpOy0tdmFuLWdyaWQtaXRlbS1pY29uLXNpemU6MjhweDstLXZhbi1ncmlkLWl0ZW0tdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tZ3JpZC1pdGVtLXRleHQtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtc20pfS52YW4tZ3JpZC1pdGVte2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLWdyaWQtaXRlbS0tc3F1YXJle2hlaWdodDowfS52YW4tZ3JpZC1pdGVtX19pY29ue2ZvbnQtc2l6ZTp2YXIoLS12YW4tZ3JpZC1pdGVtLWljb24tc2l6ZSl9LnZhbi1ncmlkLWl0ZW1fX3RleHR7Y29sb3I6dmFyKC0tdmFuLWdyaWQtaXRlbS10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWdyaWQtaXRlbS10ZXh0LWZvbnQtc2l6ZSk7d29yZC1icmVhazpicmVhay1hbGw7bGluZS1oZWlnaHQ6MS41fS52YW4tZ3JpZC1pdGVtX19pY29uKy52YW4tZ3JpZC1pdGVtX190ZXh0e21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmcteHMpfS52YW4tZ3JpZC1pdGVtX19jb250ZW50e2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MTAwJTtwYWRkaW5nOnZhcigtLXZhbi1ncmlkLWl0ZW0tY29udGVudC1wYWRkaW5nKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1ncmlkLWl0ZW0tY29udGVudC1iYWNrZ3JvdW5kKTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZGlzcGxheTpmbGV4fS52YW4tZ3JpZC1pdGVtX19jb250ZW50OmFmdGVye3otaW5kZXg6MTtib3JkZXItd2lkdGg6MCB2YXIoLS12YW4tYm9yZGVyLXdpZHRoKSB2YXIoLS12YW4tYm9yZGVyLXdpZHRoKSAwfS52YW4tZ3JpZC1pdGVtX19jb250ZW50LS1zcXVhcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjB9LnZhbi1ncmlkLWl0ZW1fX2NvbnRlbnQtLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0udmFuLWdyaWQtaXRlbV9fY29udGVudC0taG9yaXpvbnRhbHtmbGV4LWRpcmVjdGlvbjpyb3d9LnZhbi1ncmlkLWl0ZW1fX2NvbnRlbnQtLWhvcml6b250YWwgLnZhbi1ncmlkLWl0ZW1fX3RleHR7bWFyZ2luOjAgMCAwIHZhcigtLXZhbi1wYWRkaW5nLXhzKX0udmFuLWdyaWQtaXRlbV9fY29udGVudC0tcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX0udmFuLWdyaWQtaXRlbV9fY29udGVudC0tcmV2ZXJzZSAudmFuLWdyaWQtaXRlbV9fdGV4dHttYXJnaW46MCAwIHZhcigtLXZhbi1wYWRkaW5nLXhzKX0udmFuLWdyaWQtaXRlbV9fY29udGVudC0taG9yaXpvbnRhbC52YW4tZ3JpZC1pdGVtX19jb250ZW50LS1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfS52YW4tZ3JpZC1pdGVtX19jb250ZW50LS1ob3Jpem9udGFsLnZhbi1ncmlkLWl0ZW1fX2NvbnRlbnQtLXJldmVyc2UgLnZhbi1ncmlkLWl0ZW1fX3RleHR7bWFyZ2luOjAgdmFyKC0tdmFuLXBhZGRpbmcteHMpIDAgMH0udmFuLWdyaWQtaXRlbV9fY29udGVudC0tc3Vycm91bmQ6YWZ0ZXJ7Ym9yZGVyLXdpZHRoOnZhcigtLXZhbi1ib3JkZXItd2lkdGgpfS52YW4tZ3JpZC1pdGVtX19jb250ZW50LS1jbGlja2FibGV7Y3Vyc29yOnBvaW50ZXJ9LnZhbi1ncmlkLWl0ZW1fX2NvbnRlbnQtLWNsaWNrYWJsZTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tZ3JpZC1pdGVtLWNvbnRlbnQtYWN0aXZlLWNvbG9yKX06cm9vdCw6aG9zdHstLXZhbi1oaWdobGlnaHQtdGFnLWNvbG9yOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKX0udmFuLWhpZ2hsaWdodF9fdGFne2NvbG9yOnZhcigtLXZhbi1oaWdobGlnaHQtdGFnLWNvbG9yKX06cm9vdCw6aG9zdHstLXZhbi1pbmRleC1iYXItc2lkZWJhci16LWluZGV4OjI7LS12YW4taW5kZXgtYmFyLWluZGV4LWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLXhzKTstLXZhbi1pbmRleC1iYXItaW5kZXgtbGluZS1oZWlnaHQ6dmFyKC0tdmFuLWxpbmUtaGVpZ2h0LXhzKTstLXZhbi1pbmRleC1iYXItaW5kZXgtYWN0aXZlLWNvbG9yOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKX0udmFuLWluZGV4LWJhcl9fc2lkZWJhcnt6LWluZGV4OnZhcigtLXZhbi1pbmRleC1iYXItc2lkZWJhci16LWluZGV4KTt0ZXh0LWFsaWduOmNlbnRlcjtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmZpeGVkO3RvcDo1MCU7cmlnaHQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0udmFuLWluZGV4LWJhcl9faW5kZXh7cGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLXhzKSAwIHZhcigtLXZhbi1wYWRkaW5nLW1kKTtmb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKTtmb250LXNpemU6dmFyKC0tdmFuLWluZGV4LWJhci1pbmRleC1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1pbmRleC1iYXItaW5kZXgtbGluZS1oZWlnaHQpfS52YW4taW5kZXgtYmFyX19pbmRleC0tYWN0aXZle2NvbG9yOnZhcigtLXZhbi1pbmRleC1iYXItaW5kZXgtYWN0aXZlLWNvbG9yKTtmb250LXdlaWdodDo3MDB9OnJvb3QsOmhvc3R7LS12YW4taW5kZXgtYW5jaG9yLXotaW5kZXg6MTstLXZhbi1pbmRleC1hbmNob3ItcGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLW1kKTstLXZhbi1pbmRleC1hbmNob3ItdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4taW5kZXgtYW5jaG9yLWZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpOy0tdmFuLWluZGV4LWFuY2hvci1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4taW5kZXgtYW5jaG9yLWxpbmUtaGVpZ2h0OjMycHg7LS12YW4taW5kZXgtYW5jaG9yLWJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7LS12YW4taW5kZXgtYW5jaG9yLXN0aWNreS10ZXh0LWNvbG9yOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1pbmRleC1hbmNob3Itc3RpY2t5LWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQtMil9LnZhbi1pbmRleC1hbmNob3J7ei1pbmRleDp2YXIoLS12YW4taW5kZXgtYW5jaG9yLXotaW5kZXgpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOnZhcigtLXZhbi1pbmRleC1hbmNob3ItcGFkZGluZyk7Y29sb3I6dmFyKC0tdmFuLWluZGV4LWFuY2hvci10ZXh0LWNvbG9yKTtmb250LXdlaWdodDp2YXIoLS12YW4taW5kZXgtYW5jaG9yLWZvbnQtd2VpZ2h0KTtmb250LXNpemU6dmFyKC0tdmFuLWluZGV4LWFuY2hvci1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1pbmRleC1hbmNob3ItbGluZS1oZWlnaHQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWluZGV4LWFuY2hvci1iYWNrZ3JvdW5kKX0udmFuLWluZGV4LWFuY2hvci0tc3RpY2t5e2NvbG9yOnZhcigtLXZhbi1pbmRleC1hbmNob3Itc3RpY2t5LXRleHQtY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWluZGV4LWFuY2hvci1zdGlja3ktYmFja2dyb3VuZCk7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3JpZ2h0OjB9OnJvb3QsOmhvc3R7LS12YW4tcGFnaW5hdGlvbi1oZWlnaHQ6NDBweDstLXZhbi1wYWdpbmF0aW9uLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1wYWdpbmF0aW9uLWl0ZW0td2lkdGg6MzZweDstLXZhbi1wYWdpbmF0aW9uLWl0ZW0tZGVmYXVsdC1jb2xvcjp2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkLWNvbG9yOnZhcigtLXZhbi1ncmF5LTcpOy0tdmFuLXBhZ2luYXRpb24taXRlbS1kaXNhYmxlZC1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kKTstLXZhbi1wYWdpbmF0aW9uLWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tcGFnaW5hdGlvbi1kZXNjLWNvbG9yOnZhcigtLXZhbi1ncmF5LTcpOy0tdmFuLXBhZ2luYXRpb24tZGlzYWJsZWQtb3BhY2l0eTp2YXIoLS12YW4tZGlzYWJsZWQtb3BhY2l0eSl9LnZhbi1wYWdpbmF0aW9ue2ZvbnQtc2l6ZTp2YXIoLS12YW4tcGFnaW5hdGlvbi1mb250LXNpemUpfS52YW4tcGFnaW5hdGlvbl9faXRlbXN7ZGlzcGxheTpmbGV4fS52YW4tcGFnaW5hdGlvbl9faXRlbSwudmFuLXBhZ2luYXRpb25fX3BhZ2UtZGVzY3tqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LnZhbi1wYWdpbmF0aW9uX19pdGVte2JveC1zaXppbmc6Ym9yZGVyLWJveDttaW4td2lkdGg6dmFyKC0tdmFuLXBhZ2luYXRpb24taXRlbS13aWR0aCk7aGVpZ2h0OnZhcigtLXZhbi1wYWdpbmF0aW9uLWhlaWdodCk7Y29sb3I6dmFyKC0tdmFuLXBhZ2luYXRpb24taXRlbS1kZWZhdWx0LWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1wYWdpbmF0aW9uLWJhY2tncm91bmQpO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2ZsZXg6MX0udmFuLXBhZ2luYXRpb25fX2l0ZW0gYnV0dG9ue2JhY2tncm91bmQ6MCAwO2JvcmRlcjpub25lO2ZsZXg6MTtoZWlnaHQ6MTAwJTtwYWRkaW5nOjB9LnZhbi1wYWdpbmF0aW9uX19pdGVtIGJ1dHRvbltkaXNhYmxlZF17Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tcGFnaW5hdGlvbl9faXRlbTphY3RpdmV7Y29sb3I6dmFyKC0tdmFuLXdoaXRlKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1wYWdpbmF0aW9uLWl0ZW0tZGVmYXVsdC1jb2xvcil9LnZhbi1wYWdpbmF0aW9uX19pdGVtOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXJ7Ym9yZGVyLXJpZ2h0LXdpZHRoOjB9LnZhbi1wYWdpbmF0aW9uX19pdGVtLS1hY3RpdmV7Y29sb3I6dmFyKC0tdmFuLXdoaXRlKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1wYWdpbmF0aW9uLWl0ZW0tZGVmYXVsdC1jb2xvcil9LnZhbi1wYWdpbmF0aW9uX19pdGVtLS1wYWdle2ZsZXgtZ3JvdzowfS52YW4tcGFnaW5hdGlvbl9faXRlbS0tcHJldiwudmFuLXBhZ2luYXRpb25fX2l0ZW0tLW5leHR7cGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLWJhc2UpO2N1cnNvcjpwb2ludGVyfS52YW4tcGFnaW5hdGlvbl9faXRlbS0tYm9yZGVyOmZpcnN0LWNoaWxkOmFmdGVye2JvcmRlci1yaWdodC13aWR0aDp2YXIoLS12YW4tYm9yZGVyLXdpZHRoKX0udmFuLXBhZ2luYXRpb25fX2l0ZW0tLWRpc2FibGVkLC52YW4tcGFnaW5hdGlvbl9faXRlbS0tZGlzYWJsZWQ6YWN0aXZle2NvbG9yOnZhcigtLXZhbi1wYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQtY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLXBhZ2luYXRpb24taXRlbS1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtvcGFjaXR5OnZhcigtLXZhbi1wYWdpbmF0aW9uLWRpc2FibGVkLW9wYWNpdHkpfS52YW4tcGFnaW5hdGlvbl9fcGFnZS1kZXNje2hlaWdodDp2YXIoLS12YW4tcGFnaW5hdGlvbi1oZWlnaHQpO2NvbG9yOnZhcigtLXZhbi1wYWdpbmF0aW9uLWRlc2MtY29sb3IpO2ZsZXg6MX06cm9vdCw6aG9zdHstLXZhbi1wYXNzd29yZC1pbnB1dC1oZWlnaHQ6NTBweDstLXZhbi1wYXNzd29yZC1pbnB1dC1tYXJnaW46MCB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tcGFzc3dvcmQtaW5wdXQtZm9udC1zaXplOjIwcHg7LS12YW4tcGFzc3dvcmQtaW5wdXQtcmFkaXVzOjZweDstLXZhbi1wYXNzd29yZC1pbnB1dC1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLXBhc3N3b3JkLWlucHV0LWluZm8tY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tcGFzc3dvcmQtaW5wdXQtaW5mby1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tcGFzc3dvcmQtaW5wdXQtZXJyb3ItaW5mby1jb2xvcjp2YXIoLS12YW4tZGFuZ2VyLWNvbG9yKTstLXZhbi1wYXNzd29yZC1pbnB1dC1kb3Qtc2l6ZToxMHB4Oy0tdmFuLXBhc3N3b3JkLWlucHV0LWRvdC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tcGFzc3dvcmQtaW5wdXQtdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tcGFzc3dvcmQtaW5wdXQtY3Vyc29yLWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1wYXNzd29yZC1pbnB1dC1jdXJzb3Itd2lkdGg6MXB4Oy0tdmFuLXBhc3N3b3JkLWlucHV0LWN1cnNvci1oZWlnaHQ6NDAlOy0tdmFuLXBhc3N3b3JkLWlucHV0LWN1cnNvci1kdXJhdGlvbjoxc30udmFuLXBhc3N3b3JkLWlucHV0e21hcmdpbjp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtbWFyZ2luKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLXBhc3N3b3JkLWlucHV0X19pbmZvLC52YW4tcGFzc3dvcmQtaW5wdXRfX2Vycm9yLWluZm97bWFyZ2luLXRvcDp2YXIoLS12YW4tcGFkZGluZy1tZCk7Zm9udC1zaXplOnZhcigtLXZhbi1wYXNzd29yZC1pbnB1dC1pbmZvLWZvbnQtc2l6ZSk7dGV4dC1hbGlnbjpjZW50ZXJ9LnZhbi1wYXNzd29yZC1pbnB1dF9faW5mb3tjb2xvcjp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtaW5mby1jb2xvcil9LnZhbi1wYXNzd29yZC1pbnB1dF9fZXJyb3ItaW5mb3tjb2xvcjp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtZXJyb3ItaW5mby1jb2xvcil9LnZhbi1wYXNzd29yZC1pbnB1dF9fc2VjdXJpdHl7d2lkdGg6MTAwJTtoZWlnaHQ6dmFyKC0tdmFuLXBhc3N3b3JkLWlucHV0LWhlaWdodCk7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4fS52YW4tcGFzc3dvcmQtaW5wdXRfX3NlY3VyaXR5OmFmdGVye2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXBhc3N3b3JkLWlucHV0LXJhZGl1cyl9LnZhbi1wYXNzd29yZC1pbnB1dF9fc2VjdXJpdHkgbGl7aGVpZ2h0OjEwMCU7Y29sb3I6dmFyKC0tdmFuLXBhc3N3b3JkLWlucHV0LXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtZm9udC1zaXplKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1wYXNzd29yZC1pbnB1dC1iYWNrZ3JvdW5kKTtmbGV4OjE7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bGluZS1oZWlnaHQ6MS4yO2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLXBhc3N3b3JkLWlucHV0X19zZWN1cml0eSBpe3dpZHRoOnZhcigtLXZhbi1wYXNzd29yZC1pbnB1dC1kb3Qtc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1wYXNzd29yZC1pbnB1dC1kb3Qtc2l6ZSk7YmFja2dyb3VuZDp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtZG90LWNvbG9yKTt2aXNpYmlsaXR5OmhpZGRlbjtib3JkZXItcmFkaXVzOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSl9LnZhbi1wYXNzd29yZC1pbnB1dF9fY3Vyc29ye3dpZHRoOnZhcigtLXZhbi1wYXNzd29yZC1pbnB1dC1jdXJzb3Itd2lkdGgpO2hlaWdodDp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtY3Vyc29yLWhlaWdodCk7YmFja2dyb3VuZDp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtY3Vyc29yLWNvbG9yKTthbmltYXRpb246dmFyKC0tdmFuLXBhc3N3b3JkLWlucHV0LWN1cnNvci1kdXJhdGlvbikgdmFuLWN1cnNvci1mbGlja2VyIGluZmluaXRlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpfUBrZXlmcmFtZXMgdmFuLWN1cnNvci1mbGlja2VyezAle29wYWNpdHk6MH01MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MH19OnJvb3QsOmhvc3R7LS12YW4tcHJvZ3Jlc3MtaGVpZ2h0OjRweDstLXZhbi1wcm9ncmVzcy1jb2xvcjp2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tcHJvZ3Jlc3MtaW5hY3RpdmUtY29sb3I6dmFyKC0tdmFuLWdyYXktNSk7LS12YW4tcHJvZ3Jlc3MtYmFja2dyb3VuZDp2YXIoLS12YW4tZ3JheS0zKTstLXZhbi1wcm9ncmVzcy1waXZvdC1wYWRkaW5nOjAgNXB4Oy0tdmFuLXByb2dyZXNzLXBpdm90LXRleHQtY29sb3I6dmFyKC0tdmFuLXdoaXRlKTstLXZhbi1wcm9ncmVzcy1waXZvdC1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS14cyk7LS12YW4tcHJvZ3Jlc3MtcGl2b3QtbGluZS1oZWlnaHQ6MS42Oy0tdmFuLXByb2dyZXNzLXBpdm90LWJhY2tncm91bmQ6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpfS52YW4tcHJvZ3Jlc3N7aGVpZ2h0OnZhcigtLXZhbi1wcm9ncmVzcy1oZWlnaHQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXByb2dyZXNzLWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXByb2dyZXNzLWhlaWdodCk7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1wcm9ncmVzc19fcG9ydGlvbntiYWNrZ3JvdW5kOnZhcigtLXZhbi1wcm9ncmVzcy1jb2xvcik7Ym9yZGVyLXJhZGl1czppbmhlcml0O3RyYW5zZm9ybS1vcmlnaW46MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RyYW5zaXRpb246YWxsIHZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKSB2YXIoLS12YW4tZWFzZS1vdXQpO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MH0udmFuLXByb2dyZXNzX19wb3J0aW9uLS1pbmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLXZhbi1wcm9ncmVzcy1pbmFjdGl2ZS1jb2xvcil9LnZhbi1wcm9ncmVzc19fcGl2b3R7Ym94LXNpemluZzpib3JkZXItYm94O21pbi13aWR0aDozLjZlbTtwYWRkaW5nOnZhcigtLXZhbi1wcm9ncmVzcy1waXZvdC1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tcHJvZ3Jlc3MtcGl2b3QtdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1wcm9ncmVzcy1waXZvdC1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1wcm9ncmVzcy1waXZvdC1saW5lLWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXI7d29yZC1icmVhazprZWVwLWFsbDtiYWNrZ3JvdW5kOnZhcigtLXZhbi1wcm9ncmVzcy1waXZvdC1iYWNrZ3JvdW5kKTt0cmFuc2l0aW9uOmFsbCB2YXIoLS12YW4tZHVyYXRpb24tYmFzZSkgdmFyKC0tdmFuLWVhc2Utb3V0KTtib3JkZXItcmFkaXVzOjFlbTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlfS52YW4tcHJvZ3Jlc3NfX3Bpdm90LS1pbmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLXZhbi1wcm9ncmVzcy1pbmFjdGl2ZS1jb2xvcil9OnJvb3QsOmhvc3R7LS12YW4tcm9sbGluZy10ZXh0LWJhY2tncm91bmQ6aW5oZXJpdDstLXZhbi1yb2xsaW5nLXRleHQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXJvbGxpbmctdGV4dC1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tcm9sbGluZy10ZXh0LWdhcDowcHg7LS12YW4tcm9sbGluZy10ZXh0LWl0ZW0td2lkdGg6MTVweDstLXZhbi1yb2xsaW5nLXRleHQtaXRlbS1ib3JkZXItcmFkaXVzOjBweH0udmFuLXJvbGxpbmctdGV4dHtmb250LXNpemU6dmFyKC0tdmFuLXJvbGxpbmctdGV4dC1mb250LXNpemUpO2NvbG9yOnZhcigtLXZhbi1yb2xsaW5nLXRleHQtY29sb3IpO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXh9LnZhbi1yb2xsaW5nLXRleHQtaXRlbXttYXJnaW4tcmlnaHQ6dmFyKC0tdmFuLXJvbGxpbmctdGV4dC1nYXApO3dpZHRoOnZhcigtLXZhbi1yb2xsaW5nLXRleHQtaXRlbS13aWR0aCk7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcm9sbGluZy10ZXh0LWl0ZW0tYm9yZGVyLXJhZGl1cyk7YmFja2dyb3VuZDp2YXIoLS12YW4tcm9sbGluZy10ZXh0LWJhY2tncm91bmQpO292ZXJmbG93OmhpZGRlbn0udmFuLXJvbGxpbmctdGV4dC1pdGVtOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjB9LnZhbi1yb2xsaW5nLXRleHQtaXRlbV9fYm94e292ZXJmbG93OmhpZGRlbn0udmFuLXJvbGxpbmctdGV4dC1pdGVtX19ib3gtLWFuaW1hdGV7YW5pbWF0aW9uOnZhbi11cCB2YXIoLS12YW4tZHVyYXRpb24pIGVhc2UtaW4tb3V0IHZhcigtLXZhbi1kZWxheSk7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDoxO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aH0udmFuLXJvbGxpbmctdGV4dC1pdGVtX19pdGVte3RleHQtYWxpZ246Y2VudGVyfS52YW4tcm9sbGluZy10ZXh0LWl0ZW0tLWRvd24gLnZhbi1yb2xsaW5nLXRleHQtaXRlbV9fYm94e3RyYW5zZm9ybTp0cmFuc2xhdGVZKHZhcigtLXZhbi10cmFuc2xhdGUpKX0udmFuLXJvbGxpbmctdGV4dC1pdGVtLS1kb3duIC52YW4tcm9sbGluZy10ZXh0LWl0ZW1fX2JveC0tYW5pbWF0ZXthbmltYXRpb24tbmFtZTp2YW4tZG93bn1Aa2V5ZnJhbWVzIHZhbi1kb3duezAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKHZhcigtLXZhbi10cmFuc2xhdGUpKX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QGtleWZyYW1lcyB2YW4tdXB7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkodmFyKC0tdmFuLXRyYW5zbGF0ZSkpfX06cm9vdCw6aG9zdHstLXZhbi1zaWRlYmFyLXdpZHRoOjgwcHh9LnZhbi1zaWRlYmFye3dpZHRoOnZhcigtLXZhbi1zaWRlYmFyLXdpZHRoKTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtvdmVyZmxvdy15OmF1dG99OnJvb3QsOmhvc3R7LS12YW4tc2lkZWJhci1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tc2lkZWJhci1saW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpOy0tdmFuLXNpZGViYXItdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tc2lkZWJhci1kaXNhYmxlZC10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLXNpZGViYXItcGFkZGluZzoyMHB4IHZhcigtLXZhbi1wYWRkaW5nLXNtKTstLXZhbi1zaWRlYmFyLWFjdGl2ZS1jb2xvcjp2YXIoLS12YW4tYWN0aXZlLWNvbG9yKTstLXZhbi1zaWRlYmFyLWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQpOy0tdmFuLXNpZGViYXItc2VsZWN0ZWQtZm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCk7LS12YW4tc2lkZWJhci1zZWxlY3RlZC10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1zaWRlYmFyLXNlbGVjdGVkLWJvcmRlci13aWR0aDo0cHg7LS12YW4tc2lkZWJhci1zZWxlY3RlZC1ib3JkZXItaGVpZ2h0OjE2cHg7LS12YW4tc2lkZWJhci1zZWxlY3RlZC1ib3JkZXItY29sb3I6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLXNpZGViYXItc2VsZWN0ZWQtYmFja2dyb3VuZDp2YXIoLS12YW4tYmFja2dyb3VuZC0yKX0udmFuLXNpZGViYXItaXRlbXtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzp2YXIoLS12YW4tc2lkZWJhci1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tc2lkZWJhci10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXNpZGViYXItZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tc2lkZWJhci1saW5lLWhlaWdodCk7YmFja2dyb3VuZDp2YXIoLS12YW4tc2lkZWJhci1iYWNrZ3JvdW5kKTtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0udmFuLXNpZGViYXItaXRlbTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tc2lkZWJhci1hY3RpdmUtY29sb3IpfS52YW4tc2lkZWJhci1pdGVtOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHh9LnZhbi1zaWRlYmFyLWl0ZW1fX3RleHR7d29yZC1icmVhazpicmVhay1hbGx9LnZhbi1zaWRlYmFyLWl0ZW0tLXNlbGVjdHtjb2xvcjp2YXIoLS12YW4tc2lkZWJhci1zZWxlY3RlZC10ZXh0LWNvbG9yKTtmb250LXdlaWdodDp2YXIoLS12YW4tc2lkZWJhci1zZWxlY3RlZC1mb250LXdlaWdodCl9LnZhbi1zaWRlYmFyLWl0ZW0tLXNlbGVjdCwudmFuLXNpZGViYXItaXRlbS0tc2VsZWN0OmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1zaWRlYmFyLXNlbGVjdGVkLWJhY2tncm91bmQpfS52YW4tc2lkZWJhci1pdGVtLS1zZWxlY3Q6YmVmb3Jle3dpZHRoOnZhcigtLXZhbi1zaWRlYmFyLXNlbGVjdGVkLWJvcmRlci13aWR0aCk7aGVpZ2h0OnZhcigtLXZhbi1zaWRlYmFyLXNlbGVjdGVkLWJvcmRlci1oZWlnaHQpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLXNpZGViYXItc2VsZWN0ZWQtYm9yZGVyLWNvbG9yKTtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS52YW4tc2lkZWJhci1pdGVtLS1kaXNhYmxlZHtjb2xvcjp2YXIoLS12YW4tc2lkZWJhci1kaXNhYmxlZC10ZXh0LWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi1zaWRlYmFyLWl0ZW0tLWRpc2FibGVkOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1zaWRlYmFyLWJhY2tncm91bmQpfTpyb290LDpob3N0ey0tdmFuLXRyZWUtc2VsZWN0LWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi10cmVlLXNlbGVjdC1uYXYtYmFja2dyb3VuZDp2YXIoLS12YW4tYmFja2dyb3VuZCk7LS12YW4tdHJlZS1zZWxlY3QtY29udGVudC1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLXRyZWUtc2VsZWN0LW5hdi1pdGVtLXBhZGRpbmc6MTRweCB2YXIoLS12YW4tcGFkZGluZy1zbSk7LS12YW4tdHJlZS1zZWxlY3QtaXRlbS1oZWlnaHQ6NDhweDstLXZhbi10cmVlLXNlbGVjdC1pdGVtLWFjdGl2ZS1jb2xvcjp2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tdHJlZS1zZWxlY3QtaXRlbS1kaXNhYmxlZC1jb2xvcjp2YXIoLS12YW4tZ3JheS01KTstLXZhbi10cmVlLXNlbGVjdC1pdGVtLXNlbGVjdGVkLXNpemU6MTZweH0udmFuLXRyZWUtc2VsZWN0e2ZvbnQtc2l6ZTp2YXIoLS12YW4tdHJlZS1zZWxlY3QtZm9udC1zaXplKTtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmV9LnZhbi10cmVlLXNlbGVjdF9fbmF2e2JhY2tncm91bmQ6dmFyKC0tdmFuLXRyZWUtc2VsZWN0LW5hdi1iYWNrZ3JvdW5kKTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtmbGV4OjE7b3ZlcmZsb3cteTphdXRvfS52YW4tdHJlZS1zZWxlY3RfX25hdi1pdGVte3BhZGRpbmc6dmFyKC0tdmFuLXRyZWUtc2VsZWN0LW5hdi1pdGVtLXBhZGRpbmcpfS52YW4tdHJlZS1zZWxlY3RfX2NvbnRlbnR7YmFja2dyb3VuZDp2YXIoLS12YW4tdHJlZS1zZWxlY3QtY29udGVudC1iYWNrZ3JvdW5kKTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtmbGV4OjI7b3ZlcmZsb3cteTphdXRvfS52YW4tdHJlZS1zZWxlY3RfX2l0ZW17cGFkZGluZzowIDMycHggMCB2YXIoLS12YW4tcGFkZGluZy1tZCk7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXRyZWUtc2VsZWN0LWl0ZW0taGVpZ2h0KTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLXRyZWUtc2VsZWN0X19pdGVtLS1hY3RpdmV7Y29sb3I6dmFyKC0tdmFuLXRyZWUtc2VsZWN0LWl0ZW0tYWN0aXZlLWNvbG9yKX0udmFuLXRyZWUtc2VsZWN0X19pdGVtOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1hY3RpdmUtY29sb3IpfS52YW4tdHJlZS1zZWxlY3RfX2l0ZW0tLWRpc2FibGVke2NvbG9yOnZhcigtLXZhbi10cmVlLXNlbGVjdC1pdGVtLWRpc2FibGVkLWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi10cmVlLXNlbGVjdF9faXRlbS0tZGlzYWJsZWQ6YWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwMDB9LnZhbi10cmVlLXNlbGVjdF9fc2VsZWN0ZWR7dG9wOjUwJTtyaWdodDp2YXIoLS12YW4tcGFkZGluZy1tZCk7bWFyZ2luLXRvcDpjYWxjKHZhcigtLXZhbi1wYWRkaW5nLXhzKSAqIC0xKTtmb250LXNpemU6dmFyKC0tdmFuLXRyZWUtc2VsZWN0LWl0ZW0tc2VsZWN0ZWQtc2l6ZSk7cG9zaXRpb246YWJzb2x1dGV9OnJvb3QsOmhvc3R7LS12YW4tc2tlbGV0b24tdGl0bGUtd2lkdGg6NDAlfS52YW4tc2tlbGV0b24tdGl0bGV7aGVpZ2h0OnZhcigtLXZhbi1za2VsZXRvbi1wYXJhZ3JhcGgtaGVpZ2h0KTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1za2VsZXRvbi1wYXJhZ3JhcGgtYmFja2dyb3VuZCl9LnZhbi1za2VsZXRvbi10aXRsZS0tcm91bmR7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLW1heCl9LnZhbi1za2VsZXRvbi10aXRsZXt3aWR0aDp2YXIoLS12YW4tc2tlbGV0b24tdGl0bGUtd2lkdGgpO21hcmdpbjowfS52YW4tc2tlbGV0b24tdGl0bGUrLnZhbi1za2VsZXRvbi1wYXJhZ3JhcGh7bWFyZ2luLXRvcDoyMHB4fTpyb290LDpob3N0ey0tdmFuLXNrZWxldG9uLWF2YXRhci1zaXplOjMycHg7LS12YW4tc2tlbGV0b24tYXZhdGFyLWJhY2tncm91bmQ6dmFyKC0tdmFuLWFjdGl2ZS1jb2xvcil9LnZhbi1za2VsZXRvbi1hdmF0YXJ7d2lkdGg6dmFyKC0tdmFuLXNrZWxldG9uLWF2YXRhci1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLXNrZWxldG9uLWF2YXRhci1zaXplKTttYXJnaW4tcmlnaHQ6dmFyKC0tdmFuLXBhZGRpbmctbWQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXNrZWxldG9uLWF2YXRhci1iYWNrZ3JvdW5kKTtmbGV4LXNocmluazowfS52YW4tc2tlbGV0b24tYXZhdGFyLS1yb3VuZHtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWF4KX0udmFuLXNrZWxldG9uLWF2YXRhcisudmFuLXNrZWxldG9uX19jb250ZW50e3BhZGRpbmctdG9wOnZhcigtLXZhbi1wYWRkaW5nLXhzKX06cm9vdCw6aG9zdHstLXZhbi1za2VsZXRvbi1wYXJhZ3JhcGgtaGVpZ2h0OjE2cHg7LS12YW4tc2tlbGV0b24tcGFyYWdyYXBoLWJhY2tncm91bmQ6dmFyKC0tdmFuLWFjdGl2ZS1jb2xvcik7LS12YW4tc2tlbGV0b24tcGFyYWdyYXBoLW1hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmctc20pfS52YW4tc2tlbGV0b24tcGFyYWdyYXBoe2hlaWdodDp2YXIoLS12YW4tc2tlbGV0b24tcGFyYWdyYXBoLWhlaWdodCk7YmFja2dyb3VuZDp2YXIoLS12YW4tc2tlbGV0b24tcGFyYWdyYXBoLWJhY2tncm91bmQpfS52YW4tc2tlbGV0b24tcGFyYWdyYXBoLS1yb3VuZHtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWF4KX0udmFuLXNrZWxldG9uLXBhcmFncmFwaDpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tdG9wOnZhcigtLXZhbi1za2VsZXRvbi1wYXJhZ3JhcGgtbWFyZ2luLXRvcCl9OnJvb3QsOmhvc3R7LS12YW4tc2tlbGV0b24tZHVyYXRpb246MS4yc30udmFuLXNrZWxldG9ue3BhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy1tZCk7ZGlzcGxheTpmbGV4fS52YW4tc2tlbGV0b25fX2NvbnRlbnR7d2lkdGg6MTAwJX0udmFuLXNrZWxldG9uLS1hbmltYXRle2FuaW1hdGlvbjp2YW4tc2tlbGV0b24tYmxpbmsgdmFyKC0tdmFuLXNrZWxldG9uLWR1cmF0aW9uKSBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHZhbi1za2VsZXRvbi1ibGlua3s1MCV7b3BhY2l0eTouNn19OnJvb3QsOmhvc3R7LS12YW4tc2xpZGVyLWFjdGl2ZS1iYWNrZ3JvdW5kOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1zbGlkZXItaW5hY3RpdmUtYmFja2dyb3VuZDp2YXIoLS12YW4tZ3JheS0zKTstLXZhbi1zbGlkZXItZGlzYWJsZWQtb3BhY2l0eTp2YXIoLS12YW4tZGlzYWJsZWQtb3BhY2l0eSk7LS12YW4tc2xpZGVyLWJhci1oZWlnaHQ6MnB4Oy0tdmFuLXNsaWRlci1idXR0b24td2lkdGg6MjRweDstLXZhbi1zbGlkZXItYnV0dG9uLWhlaWdodDoyNHB4Oy0tdmFuLXNsaWRlci1idXR0b24tcmFkaXVzOjUwJTstLXZhbi1zbGlkZXItYnV0dG9uLWJhY2tncm91bmQ6dmFyKC0tdmFuLXdoaXRlKTstLXZhbi1zbGlkZXItYnV0dG9uLXNoYWRvdzowIDFweCAycHggIzAwMDAwMDgwfS52YW4tdGhlbWUtZGFya3stLXZhbi1zbGlkZXItaW5hY3RpdmUtYmFja2dyb3VuZDp2YXIoLS12YW4tYmFja2dyb3VuZC0zKX0udmFuLXNsaWRlcnt3aWR0aDoxMDAlO2hlaWdodDp2YXIoLS12YW4tc2xpZGVyLWJhci1oZWlnaHQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXNsaWRlci1pbmFjdGl2ZS1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWF4KTtjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLXNsaWRlcjpiZWZvcmV7dG9wOmNhbGModmFyKC0tdmFuLXBhZGRpbmcteHMpICogLTEpO3JpZ2h0OjA7Ym90dG9tOmNhbGModmFyKC0tdmFuLXBhZGRpbmcteHMpICogLTEpO2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowfS52YW4tc2xpZGVyX19iYXJ7YmFja2dyb3VuZDp2YXIoLS12YW4tc2xpZGVyLWFjdGl2ZS1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOmluaGVyaXQ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0cmFuc2l0aW9uOmFsbCB2YXIoLS12YW4tZHVyYXRpb24tZmFzdCk7cG9zaXRpb246YWJzb2x1dGV9LnZhbi1zbGlkZXJfX2J1dHRvbnt3aWR0aDp2YXIoLS12YW4tc2xpZGVyLWJ1dHRvbi13aWR0aCk7aGVpZ2h0OnZhcigtLXZhbi1zbGlkZXItYnV0dG9uLWhlaWdodCk7YmFja2dyb3VuZDp2YXIoLS12YW4tc2xpZGVyLWJ1dHRvbi1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1zbGlkZXItYnV0dG9uLXJhZGl1cyk7Ym94LXNoYWRvdzp2YXIoLS12YW4tc2xpZGVyLWJ1dHRvbi1zaGFkb3cpfS52YW4tc2xpZGVyX19idXR0b24td3JhcHBlcntjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCV9LnZhbi1zbGlkZXJfX2J1dHRvbi13cmFwcGVyLS1yaWdodHtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGUoNTAlLC01MCUpfS52YW4tc2xpZGVyX19idXR0b24td3JhcHBlci0tbGVmdHtsZWZ0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpfS52YW4tc2xpZGVyLS1kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTp2YXIoLS12YW4tc2xpZGVyLWRpc2FibGVkLW9wYWNpdHkpfS52YW4tc2xpZGVyLS1kaXNhYmxlZCAudmFuLXNsaWRlcl9fYnV0dG9uLXdyYXBwZXJ7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tc2xpZGVyLS12ZXJ0aWNhbHt3aWR0aDp2YXIoLS12YW4tc2xpZGVyLWJhci1oZWlnaHQpO2hlaWdodDoxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS52YW4tc2xpZGVyLS12ZXJ0aWNhbCAudmFuLXNsaWRlcl9fYnV0dG9uLXdyYXBwZXItLXJpZ2h0e3RvcDphdXRvO2JvdHRvbTowO3JpZ2h0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKDUwJSw1MCUpfS52YW4tc2xpZGVyLS12ZXJ0aWNhbCAudmFuLXNsaWRlcl9fYnV0dG9uLXdyYXBwZXItLWxlZnR7dG9wOjA7bGVmdDphdXRvO3JpZ2h0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKDUwJSwtNTAlKX0udmFuLXNsaWRlci0tdmVydGljYWw6YmVmb3Jle3RvcDowO3JpZ2h0OmNhbGModmFyKC0tdmFuLXBhZGRpbmcteHMpICogLTEpO2JvdHRvbTowO2xlZnQ6Y2FsYyh2YXIoLS12YW4tcGFkZGluZy14cykgKiAtMSl9LnZhbi1zcGFjZXtkaXNwbGF5OmlubGluZS1mbGV4fS52YW4tc3BhY2UtLWhvcml6b250YWwgLnZhbi1zcGFjZS1pdGVte2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LnZhbi1zcGFjZS0tdmVydGljYWx7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS52YW4tc3BhY2UtLWFsaWduLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lfS52YW4tc3BhY2UtLWFsaWduLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LnZhbi1zcGFjZS0tYWxpZ24tZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kfS52YW4tc3BhY2UtLWFsaWduLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXJ9LnZhbi1zcGFjZS0td3JhcHtmbGV4LXdyYXA6d3JhcH0udmFuLXNwYWNlLS1maWxse2Rpc3BsYXk6ZmxleH06cm9vdCw6aG9zdHstLXZhbi1zdGVwcy1iYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpfS52YW4tc3RlcHN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tc3RlcHMtYmFja2dyb3VuZCk7b3ZlcmZsb3c6aGlkZGVufS52YW4tc3RlcHMtLWhvcml6b250YWx7cGFkZGluZzoxMHB4IDEwcHggMH0udmFuLXN0ZXBzLS1ob3Jpem9udGFsIC52YW4tc3RlcHNfX2l0ZW1ze21hcmdpbjowIDAgMTBweDtwYWRkaW5nLWJvdHRvbToyMnB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLXN0ZXBzLS12ZXJ0aWNhbHtwYWRkaW5nOjAgMCAwIHZhcigtLXZhbi1wYWRkaW5nLXhsKX06cm9vdCw6aG9zdHstLXZhbi1zdGVwLXRleHQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tc3RlcC1hY3RpdmUtY29sb3I6dmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLXN0ZXAtcHJvY2Vzcy10ZXh0LWNvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1zdGVwLWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1zdGVwLWxpbmUtY29sb3I6dmFyKC0tdmFuLWJvcmRlci1jb2xvcik7LS12YW4tc3RlcC1maW5pc2gtbGluZS1jb2xvcjp2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tc3RlcC1maW5pc2gtdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tc3RlcC1pY29uLXNpemU6MTJweDstLXZhbi1zdGVwLWNpcmNsZS1zaXplOjVweDstLXZhbi1zdGVwLWNpcmNsZS1jb2xvcjp2YXIoLS12YW4tZ3JheS02KTstLXZhbi1zdGVwLWhvcml6b250YWwtdGl0bGUtZm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtc20pfS52YW4tc3RlcHtjb2xvcjp2YXIoLS12YW4tc3RlcC10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXN0ZXAtZm9udC1zaXplKTtmbGV4OjE7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1zdGVwX19jaXJjbGV7d2lkdGg6dmFyKC0tdmFuLXN0ZXAtY2lyY2xlLXNpemUpO2hlaWdodDp2YXIoLS12YW4tc3RlcC1jaXJjbGUtc2l6ZSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tc3RlcC1jaXJjbGUtY29sb3IpO2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6YmxvY2t9LnZhbi1zdGVwX19saW5le2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLXN0ZXAtbGluZS1jb2xvcik7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKTtwb3NpdGlvbjphYnNvbHV0ZX0udmFuLXN0ZXAtLWhvcml6b250YWx7ZmxvYXQ6bGVmdH0udmFuLXN0ZXAtLWhvcml6b250YWw6Zmlyc3QtY2hpbGQgLnZhbi1zdGVwX190aXRsZXttYXJnaW4tbGVmdDowO3RyYW5zZm9ybTpub25lfS52YW4tc3RlcC0taG9yaXpvbnRhbDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpe3dpZHRoOmF1dG87cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MXB4fS52YW4tc3RlcC0taG9yaXpvbnRhbDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIC52YW4tc3RlcF9fdGl0bGV7bWFyZ2luLWxlZnQ6MDt0cmFuc2Zvcm06bm9uZX0udmFuLXN0ZXAtLWhvcml6b250YWw6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSAudmFuLXN0ZXBfX2NpcmNsZS1jb250YWluZXJ7bGVmdDphdXRvO3JpZ2h0Oi05cHh9LnZhbi1zdGVwLS1ob3Jpem9udGFsIC52YW4tc3RlcF9fY2lyY2xlLWNvbnRhaW5lcnt0b3A6MzBweDtsZWZ0OmNhbGModmFyKC0tdmFuLXBhZGRpbmcteHMpICogLTEpO3otaW5kZXg6MTtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmcteHMpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LnZhbi1zdGVwLS1ob3Jpem9udGFsIC52YW4tc3RlcF9fdGl0bGV7Zm9udC1zaXplOnZhcigtLXZhbi1zdGVwLWhvcml6b250YWwtdGl0bGUtZm9udC1zaXplKTttYXJnaW4tbGVmdDozcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKX0udmFuLXN0ZXAtLWhvcml6b250YWwgLnZhbi1zdGVwX19saW5le3dpZHRoOjEwMCU7aGVpZ2h0OjFweDt0b3A6MzBweDtsZWZ0OjB9LnZhbi1zdGVwLS1ob3Jpem9udGFsIC52YW4tc3RlcF9faWNvbntmb250LXNpemU6dmFyKC0tdmFuLXN0ZXAtaWNvbi1zaXplKTtkaXNwbGF5OmJsb2NrfS52YW4tc3RlcC0taG9yaXpvbnRhbCAudmFuLXN0ZXAtLXByb2Nlc3N7Y29sb3I6dmFyKC0tdmFuLXN0ZXAtcHJvY2Vzcy10ZXh0LWNvbG9yKX0udmFuLXN0ZXAtLXZlcnRpY2Fse2Zsb2F0Om5vbmU7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWxpbmUtaGVpZ2h0LXNtKTtwYWRkaW5nOjEwcHggMTBweCAxMHB4IDA7ZGlzcGxheTpibG9ja30udmFuLXN0ZXAtLXZlcnRpY2FsOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHh9LnZhbi1zdGVwLS12ZXJ0aWNhbCAudmFuLXN0ZXBfX2NpcmNsZS1jb250YWluZXJ7ei1pbmRleDoxO2ZvbnQtc2l6ZTp2YXIoLS12YW4tc3RlcC1pY29uLXNpemUpO2xpbmUtaGVpZ2h0OjE7cG9zaXRpb246YWJzb2x1dGU7dG9wOjE5cHg7bGVmdDotMTVweDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSl9LnZhbi1zdGVwLS12ZXJ0aWNhbCAudmFuLXN0ZXBfX2xpbmV7d2lkdGg6MXB4O2hlaWdodDoxMDAlO3RvcDoxNnB4O2xlZnQ6LTE1cHh9LnZhbi1zdGVwOmxhc3QtY2hpbGQgLnZhbi1zdGVwX19saW5le3dpZHRoOjB9LnZhbi1zdGVwLS1maW5pc2h7Y29sb3I6dmFyKC0tdmFuLXN0ZXAtZmluaXNoLXRleHQtY29sb3IpfS52YW4tc3RlcC0tZmluaXNoIC52YW4tc3RlcF9fY2lyY2xlLC52YW4tc3RlcC0tZmluaXNoIC52YW4tc3RlcF9fbGluZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1zdGVwLWZpbmlzaC1saW5lLWNvbG9yKX0udmFuLXN0ZXBfX2ljb24sLnZhbi1zdGVwX190aXRsZXt0cmFuc2l0aW9uOmNvbG9yIHZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKX0udmFuLXN0ZXBfX2ljb24tLWFjdGl2ZSwudmFuLXN0ZXBfX3RpdGxlLS1hY3RpdmUsLnZhbi1zdGVwX19pY29uLS1maW5pc2gsLnZhbi1zdGVwX190aXRsZS0tZmluaXNoe2NvbG9yOnZhcigtLXZhbi1zdGVwLWFjdGl2ZS1jb2xvcil9OnJvb3QsOmhvc3R7LS12YW4tc3RlcHBlci1iYWNrZ3JvdW5kOnZhcigtLXZhbi1hY3RpdmUtY29sb3IpOy0tdmFuLXN0ZXBwZXItYnV0dG9uLWljb24tY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXN0ZXBwZXItYnV0dG9uLWRpc2FibGVkLWNvbG9yOnZhcigtLXZhbi1iYWNrZ3JvdW5kKTstLXZhbi1zdGVwcGVyLWJ1dHRvbi1kaXNhYmxlZC1pY29uLWNvbG9yOnZhcigtLXZhbi1ncmF5LTUpOy0tdmFuLXN0ZXBwZXItYnV0dG9uLXJvdW5kLXRoZW1lLWNvbG9yOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1zdGVwcGVyLWlucHV0LXdpZHRoOjMycHg7LS12YW4tc3RlcHBlci1pbnB1dC1oZWlnaHQ6MjhweDstLXZhbi1zdGVwcGVyLWlucHV0LWZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1zdGVwcGVyLWlucHV0LWxpbmUtaGVpZ2h0Om5vcm1hbDstLXZhbi1zdGVwcGVyLWlucHV0LXRleHQtY29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXN0ZXBwZXItaW5wdXQtZGlzYWJsZWQtdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvci0zKTstLXZhbi1zdGVwcGVyLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQ6dmFyKC0tdmFuLWFjdGl2ZS1jb2xvcik7LS12YW4tc3RlcHBlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tZCl9LnZhbi1zdGVwcGVyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS52YW4tc3RlcHBlcl9fbWludXMsLnZhbi1zdGVwcGVyX19wbHVze2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDp2YXIoLS12YW4tc3RlcHBlci1pbnB1dC1oZWlnaHQpO2hlaWdodDp2YXIoLS12YW4tc3RlcHBlci1pbnB1dC1oZWlnaHQpO2NvbG9yOnZhcigtLXZhbi1zdGVwcGVyLWJ1dHRvbi1pY29uLWNvbG9yKTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7YmFja2dyb3VuZDp2YXIoLS12YW4tc3RlcHBlci1iYWNrZ3JvdW5kKTtib3JkZXI6MDttYXJnaW46MDtwYWRkaW5nOjA7cG9zaXRpb246cmVsYXRpdmV9LnZhbi1zdGVwcGVyX19taW51czpiZWZvcmUsLnZhbi1zdGVwcGVyX19wbHVzOmJlZm9yZXt3aWR0aDo1MCU7aGVpZ2h0OjFweH0udmFuLXN0ZXBwZXJfX21pbnVzOmFmdGVyLC52YW4tc3RlcHBlcl9fcGx1czphZnRlcnt3aWR0aDoxcHg7aGVpZ2h0OjUwJX0udmFuLXN0ZXBwZXJfX21pbnVzOmJlZm9yZSwudmFuLXN0ZXBwZXJfX3BsdXM6YmVmb3JlLC52YW4tc3RlcHBlcl9fbWludXM6YWZ0ZXIsLnZhbi1zdGVwcGVyX19wbHVzOmFmdGVye2NvbnRlbnQ6IiI7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSl9LnZhbi1zdGVwcGVyX19taW51cy0tZGlzYWJsZWQsLnZhbi1zdGVwcGVyX19wbHVzLS1kaXNhYmxlZHtjb2xvcjp2YXIoLS12YW4tc3RlcHBlci1idXR0b24tZGlzYWJsZWQtaWNvbi1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tc3RlcHBlci1idXR0b24tZGlzYWJsZWQtY29sb3IpO2N1cnNvcjpub3QtYWxsb3dlZH0udmFuLXN0ZXBwZXJfX21pbnVze2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXN0ZXBwZXItcmFkaXVzKSAwIDAgdmFyKC0tdmFuLXN0ZXBwZXItcmFkaXVzKX0udmFuLXN0ZXBwZXJfX21pbnVzOmFmdGVye2Rpc3BsYXk6bm9uZX0udmFuLXN0ZXBwZXJfX3BsdXN7Ym9yZGVyLXJhZGl1czowIHZhcigtLXZhbi1zdGVwcGVyLXJhZGl1cykgdmFyKC0tdmFuLXN0ZXBwZXItcmFkaXVzKSAwfS52YW4tc3RlcHBlcl9faW5wdXR7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOnZhcigtLXZhbi1zdGVwcGVyLWlucHV0LXdpZHRoKTtoZWlnaHQ6dmFyKC0tdmFuLXN0ZXBwZXItaW5wdXQtaGVpZ2h0KTtjb2xvcjp2YXIoLS12YW4tc3RlcHBlci1pbnB1dC10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXN0ZXBwZXItaW5wdXQtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tc3RlcHBlci1pbnB1dC1saW5lLWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO2JhY2tncm91bmQ6dmFyKC0tdmFuLXN0ZXBwZXItYmFja2dyb3VuZCk7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7Ym9yZGVyOjFweDtib3JkZXItd2lkdGg6MXB4IDA7Ym9yZGVyLXJhZGl1czowO21hcmdpbjowIDJweDtwYWRkaW5nOjB9LnZhbi1zdGVwcGVyX19pbnB1dDpkaXNhYmxlZHtjb2xvcjp2YXIoLS12YW4tc3RlcHBlci1pbnB1dC1kaXNhYmxlZC10ZXh0LWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1zdGVwcGVyLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQpOy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnZhcigtLXZhbi1zdGVwcGVyLWlucHV0LWRpc2FibGVkLXRleHQtY29sb3IpO29wYWNpdHk6MX0udmFuLXN0ZXBwZXJfX2lucHV0OnJlYWQtb25seXtjdXJzb3I6ZGVmYXVsdH0udmFuLXN0ZXBwZXItLXJvdW5kIC52YW4tc3RlcHBlcl9faW5wdXR7YmFja2dyb3VuZC1jb2xvcjojMDAwMH0udmFuLXN0ZXBwZXItLXJvdW5kIC52YW4tc3RlcHBlcl9fcGx1cywudmFuLXN0ZXBwZXItLXJvdW5kIC52YW4tc3RlcHBlcl9fbWludXN7Ym9yZGVyLXJhZGl1czoxMDAlfS52YW4tc3RlcHBlci0tcm91bmQgLnZhbi1zdGVwcGVyX19wbHVzLS1kaXNhYmxlZCwudmFuLXN0ZXBwZXItLXJvdW5kIC52YW4tc3RlcHBlcl9fbWludXMtLWRpc2FibGVke29wYWNpdHk6LjM7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tc3RlcHBlci0tcm91bmQgLnZhbi1zdGVwcGVyX19wbHVze2NvbG9yOnZhcigtLXZhbi13aGl0ZSk7YmFja2dyb3VuZDp2YXIoLS12YW4tc3RlcHBlci1idXR0b24tcm91bmQtdGhlbWUtY29sb3IpfS52YW4tc3RlcHBlci0tcm91bmQgLnZhbi1zdGVwcGVyX19taW51c3tjb2xvcjp2YXIoLS12YW4tc3RlcHBlci1idXR0b24tcm91bmQtdGhlbWUtY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS12YW4tc3RlcHBlci1idXR0b24tcm91bmQtdGhlbWUtY29sb3IpfS52YW4tc3dpcGUtY2VsbHtjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFiO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0udmFuLXN3aXBlLWNlbGxfX3dyYXBwZXJ7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm07dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xOCwuODksLjMyLDEpfS52YW4tc3dpcGUtY2VsbF9fbGVmdCwudmFuLXN3aXBlLWNlbGxfX3JpZ2h0e2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS52YW4tc3dpcGUtY2VsbF9fbGVmdHtsZWZ0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTAwJSl9LnZhbi1zd2lwZS1jZWxsX19yaWdodHtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGUoMTAwJSl9OnJvb3QsOmhvc3R7LS12YW4tdGFiYmFyLWhlaWdodDo1MHB4Oy0tdmFuLXRhYmJhci16LWluZGV4OjE7LS12YW4tdGFiYmFyLWJhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQtMil9LnZhbi10YWJiYXJ7ei1pbmRleDp2YXIoLS12YW4tdGFiYmFyLXotaW5kZXgpO2JveC1zaXppbmc6Y29udGVudC1ib3g7d2lkdGg6MTAwJTtoZWlnaHQ6dmFyKC0tdmFuLXRhYmJhci1oZWlnaHQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXRhYmJhci1iYWNrZ3JvdW5kKTtkaXNwbGF5OmZsZXh9LnZhbi10YWJiYXItLWZpeGVke3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO2xlZnQ6MH06cm9vdCw6aG9zdHstLXZhbi10YWJiYXItaXRlbS1mb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1zbSk7LS12YW4tdGFiYmFyLWl0ZW0tdGV4dC1jb2xvcjp2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tdGFiYmFyLWl0ZW0tYWN0aXZlLWNvbG9yOnZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi10YWJiYXItaXRlbS1hY3RpdmUtYmFja2dyb3VuZDp2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi10YWJiYXItaXRlbS1saW5lLWhlaWdodDoxOy0tdmFuLXRhYmJhci1pdGVtLWljb24tc2l6ZToyMnB4Oy0tdmFuLXRhYmJhci1pdGVtLWljb24tbWFyZ2luLWJvdHRvbTp2YXIoLS12YW4tcGFkZGluZy1iYXNlKX0udmFuLXRhYmJhci1pdGVte2NvbG9yOnZhcigtLXZhbi10YWJiYXItaXRlbS10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXRhYmJhci1pdGVtLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXRhYmJhci1pdGVtLWxpbmUtaGVpZ2h0KTtjdXJzb3I6cG9pbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleDoxO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0udmFuLXRhYmJhci1pdGVtX19pY29ue21hcmdpbi1ib3R0b206dmFyKC0tdmFuLXRhYmJhci1pdGVtLWljb24tbWFyZ2luLWJvdHRvbSk7Zm9udC1zaXplOnZhcigtLXZhbi10YWJiYXItaXRlbS1pY29uLXNpemUpfS52YW4tdGFiYmFyLWl0ZW1fX2ljb24gLnZhbi1pY29ue2Rpc3BsYXk6YmxvY2t9LnZhbi10YWJiYXItaXRlbV9faWNvbiAudmFuLWJhZGdle21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmctYmFzZSl9LnZhbi10YWJiYXItaXRlbV9faWNvbiBpbWd7aGVpZ2h0OjIwcHg7ZGlzcGxheTpibG9ja30udmFuLXRhYmJhci1pdGVtLS1hY3RpdmV7Y29sb3I6dmFyKC0tdmFuLXRhYmJhci1pdGVtLWFjdGl2ZS1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tdGFiYmFyLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQpfTpyb290LDpob3N0ey0tdmFuLXRleHQtZWxsaXBzaXMtbGluZS1oZWlnaHQ6MS42Oy0tdmFuLXRleHQtZWxsaXBzaXMtYWN0aW9uLWNvbG9yOnZhcigtLXZhbi1ibHVlKX0udmFuLXRleHQtZWxsaXBzaXN7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXRleHQtZWxsaXBzaXMtbGluZS1oZWlnaHQpO3doaXRlLXNwYWNlOnByZS13cmFwO292ZXJmbG93LXdyYXA6YnJlYWstd29yZH0udmFuLXRleHQtZWxsaXBzaXNfX2FjdGlvbntjdXJzb3I6cG9pbnRlcjtjb2xvcjp2YXIoLS12YW4tdGV4dC1lbGxpcHNpcy1hY3Rpb24tY29sb3IpfS52YW4tdGV4dC1lbGxpcHNpc19fYWN0aW9uOmFjdGl2ZXtvcGFjaXR5OnZhcigtLXZhbi1hY3RpdmUtb3BhY2l0eSl9OnJvb3QsOmhvc3R7LS12YW4td2F0ZXJtYXJrLXotaW5kZXg6MTAwfS52YW4td2F0ZXJtYXJre3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDp2YXIoLS12YW4td2F0ZXJtYXJrLXotaW5kZXgpO3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MH0udmFuLXdhdGVybWFya19fd3JhcHBlcntkaXNwbGF5Om5vbmV9LnZhbi13YXRlcm1hcmstLWZ1bGx7cG9zaXRpb246Zml4ZWR9QGZvbnQtZmFjZXtmb250LWZhbWlseTppY29uZm9udDtzcmM6dXJsKGRhdGE6Zm9udC90dGY7YmFzZTY0LEFBRUFBQUFMQUlBQUF3QXdSMU5WUWlDTEpYb0FBQUU0QUFBQVZFOVRMekk4SkVtV0FBQUJqQUFBQUdCamJXRndnUkNEdWdBQUFnUUFBQUhJWjJ4NVp0bS9QTTBBQUFQY0FBQURGR2hsWVdRbmJBZGZBQUFBNEFBQUFEWm9hR1ZoQjkwRGh3QUFBTHdBQUFBa2FHMTBlQmdBLy84QUFBSHNBQUFBR0d4dlkyRUMxZ0htQUFBRHpBQUFBQTV0WVhod0FSVUFUZ0FBQVJnQUFBQWdibUZ0WlJDalBMQUFBQWJ3QUFBQ1ozQnZjM1RNRXZYNEFBQUpXQUFBQUlvQUFRQUFBNEQvZ0FCY0JBRC8vd0FBQkFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFZQUFRQUFBQUVBQUo5dlRyQmZEenoxQUFzRUFBQUFBQURpSnVHeEFBQUFBT0ltNGJILy8vOS9CQUFEZ1FBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFBQmdCQ0FBVUFBQUFBQUFJQUFBQUtBQW9BQUFEL0FBQUFBQUFBQUFFQUFBQUtBREFBUGdBQ1JFWk1WQUFPYkdGMGJnQWFBQVFBQUFBQUFBQUFBUUFBQUFRQUFBQUFBQUFBQVFBQUFBRnNhV2RoQUFnQUFBQUJBQUFBQVFBRUFBUUFBQUFCQUFnQUFRQUdBQUFBQVFBQUFBUUVBQUdRQUFVQUFBS0pBc3dBQUFDUEFva0N6QUFBQWVzQU1nRUlBQUFDQUFVREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkJtUldRQXdPWU81c1lEZ1ArQUFBQUQzQUNCQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFDQkFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBLy84RUFBQUFBQUFBQlFBQUFBTUFBQUFzQUFBQUJBQUFBWHdBQVFBQUFBQUFkZ0FEQUFFQUFBQXNBQU1BQ2dBQUFYd0FCQUJLQUFBQURBQUlBQUlBQk9ZTzVoam1VT1p4NXNiLy93QUE1ZzdtR09aUTVuSG14di8vQUFBQUFBQUFBQUFBQUFBQkFBd0FEQUFNQUF3QURBQUFBQVVBQWdBQkFBUUFBd0FBQVFZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREFBQUFBQUFUQUFBQUFBQUFBQUZBQURtRGdBQTVnNEFBQUFGQUFEbUdBQUE1aGdBQUFBQ0FBRG1VQUFBNWxBQUFBQUJBQURtY1FBQTVuRUFBQUFFQUFEbXhnQUE1c1lBQUFBREFBQUFBQUJTQUpnQStnRk9BWW9BQUFBRkFBQUFBQU80QXV3QUNRQVRBQjhBS3dBM0FBQUJOQ1lqSVE0QkhRRWhGU0VSRkJZeklUSTJOU1VqSWlZME5qc0JNaFlVQmpjaElpWTBOak1oTWhZVUJqTWpJaVkwTmpzQk1oWVVCZ080SVJmODloY2hBM3I4aHg0VkF4SVZILzNHM2d3UUVBemVEQkFRTFA3cURCQVFEQUVXQ3hFUnh6Y01FQkFNTnd3UUVBSzBGeUVCSUJkdk9QNUFGaDRlRm5NUUZ4QVFGeEJ2RUJjUkVSY1FFQmNSRVJjUUFBUUFBUCtCQTh3RGdBQU1BQTBBS1FBcUFBQVRGQjRCTWo0Qk5DNEJJZzRCRlFFaklnY0dCd1lIRlJRWEZoY1dPd0V5TnpZM05qMEJKaWNtSnlZajVraDhrM3hKU1h5VGZFZ0JpdUZlVUU4dU1BRXZLVlEwZk9GOE5GUW9NQUV3TDA1UVhnS0FSblZGUlhhTGRVVkZkVWIrcXkwclMwMWFGaU1SRHdRREF3UVBFU01XV2sxTEt5MEFBQUFBQlFBQS8zOER1Z09CQUJRQUlBQXNBRGtBUVFBQUFUQWpKZ2NoSWc0QkJ4RWVBak1oTWo0Qk5SRUZNeklXRkFZckFTSW1ORFlCSVNJbU5EWXpJVElXRkFZbklTSW1ORFl6SVRJV0ZBWWpFek1pTGdFOUFSY0Nwd01iSnY1c0pUNGxBUUVsUGlVQ1lpVStKZjFjOXdvTkRRcjNDZzBOQWFYK2NBMFVGQTBCa0E0VEV3NytjQTBVRlF3QmtBNFRFdzQ4QlJFa0dOVURmd0lDSkQ0ay9RNGxQaVFrUGlVQ2F6Z09FZzBORWc3K0xnMFREZzRURGVnTkV3NE5FdzBCSVJNZkVZdlFBQUwvLy85L0JBQURnUUFZQURJQUFBRWlCdzRCQndZVUZ4NEJGeFl5Tno0Qk56WTBKeTRCSnlZVEFRNEJMZ0UvQVNNaUxnRTJOd0UrQVI0QkR3RXpNaDRCQmdJQWFGOWNqaWNvS0NlT1hGL1FYMXlPSnlnb0o0NWNYN0QrYWdZUkRnWURWTFVIREFZREJRRm5CUkFPQndJcHVRY01CZ01EZ0NnbmpseGYwRjljamljb0tDZU9YRi9RWDF5T0p5aitULzVwQlFJSkVBZm5DQTRPQlFGbkJRSUhEd2k2Q0EwT0FBSUFBUC9WQTZzREJ3QVhBQ1FBQUJNbE5qSVhCUjRCRlJFVURnSWpJU0l1QWpVUk5EWUJOQ1lqSVNJR0ZCWXpJVEkybmdFQ0syb3JBUUlpSnhvd1B5SDkvaUUvTUJvbkFsUVREZjZyRGhJU0RnRlZEUk1DTTdRZkg3UVlTeXIrMlNJK01Cb2FNRDRpQVNjcVMvNlFEUk1UR3hJU0FBQUFBQUFBRWdEZUFBRUFBQUFBQUFBQUV3QUFBQUVBQUFBQUFBRUFDQUFUQUFFQUFBQUFBQUlBQndBYkFBRUFBQUFBQUFNQUNBQWlBQUVBQUFBQUFBUUFDQUFxQUFFQUFBQUFBQVVBQ3dBeUFBRUFBQUFBQUFZQUNBQTlBQUVBQUFBQUFBb0FLd0JGQUFFQUFBQUFBQXNBRXdCd0FBTUFBUVFKQUFBQUpnQ0RBQU1BQVFRSkFBRUFFQUNwQUFNQUFRUUpBQUlBRGdDNUFBTUFBUVFKQUFNQUVBREhBQU1BQVFRSkFBUUFFQURYQUFNQUFRUUpBQVVBRmdEbkFBTUFBUVFKQUFZQUVBRDlBQU1BQVFRSkFBb0FWZ0VOQUFNQUFRUUpBQXNBSmdGalEzSmxZWFJsWkNCaWVTQnBZMjl1Wm05dWRHbGpiMjVtYjI1MFVtVm5kV3hoY21samIyNW1iMjUwYVdOdmJtWnZiblJXWlhKemFXOXVJREV1TUdsamIyNW1iMjUwUjJWdVpYSmhkR1ZrSUdKNUlITjJaekowZEdZZ1puSnZiU0JHYjI1MFpXeHNieUJ3Y205cVpXTjBMbWgwZEhBNkx5OW1iMjUwWld4c2J5NWpiMjBBUXdCeUFHVUFZUUIwQUdVQVpBQWdBR0lBZVFBZ0FHa0FZd0J2QUc0QVpnQnZBRzRBZEFCcEFHTUFid0J1QUdZQWJ3QnVBSFFBVWdCbEFHY0FkUUJzQUdFQWNnQnBBR01BYndCdUFHWUFid0J1QUhRQWFRQmpBRzhBYmdCbUFHOEFiZ0IwQUZZQVpRQnlBSE1BYVFCdkFHNEFJQUF4QUM0QU1BQnBBR01BYndCdUFHWUFid0J1QUhRQVJ3QmxBRzRBWlFCeUFHRUFkQUJsQUdRQUlBQmlBSGtBSUFCekFIWUFad0F5QUhRQWRBQm1BQ0FBWmdCeUFHOEFiUUFnQUVZQWJ3QnVBSFFBWlFCc0FHd0Fid0FnQUhBQWNnQnZBR29BWlFCakFIUUFMZ0JvQUhRQWRBQndBRG9BTHdBdkFHWUFid0J1QUhRQVpRQnNBR3dBYndBdUFHTUFid0J0QUFBQ0FBQUFBQUFBQUFvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVlCQWdFREFRUUJCUUVHQVFjQUQyTm9iMjVuZW1ocGFtbGhiMlpsYVJ0cFkyOXVYMmxqYjI0dFpHVnVaMngxTFhsdmJtZG9kVzFwYm1jUFpHbHVaMlJoYm1wcFlXNTVhVzVuRTNSbFpHbGhibk5vWVc1a2FXRnVabUZvZFc4SWMyaHZkWGxsTFdZQUFBQUEpZm9ybWF0KCJ0cnVldHlwZSIpfS5pY29uZm9udHstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTtmb250LXNpemU6MTZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LWZhbWlseTppY29uZm9udCFpbXBvcnRhbnR9Lmljb24tY2hvbmd6aGlqaWFvZmVpOmJlZm9yZXtjb250ZW50OiLumZAifS5pY29uLWljb25faWNvbi1kZW5nbHUteW9uZ2h1bWluZzpiZWZvcmV7Y29udGVudDoi7piYIn0uaWNvbi1kaW5nZGFuamlhbnlpbmc6YmVmb3Jle2NvbnRlbnQ6Iu6bhiJ9Lmljb24tdGVkaWFuc2hhbmRpYW5mYWh1bzpiZWZvcmV7Y29udGVudDoi7pmxIn0uaWNvbi1zaG91eWUtZjpiZWZvcmV7Y29udGVudDoi7piOIn0udGFiYmFyW2RhdGEtdi03YmNjMThhZV17Zm9udC1mYW1pbHk6UnViaWstTWVkaXVtLFJ1YmlrO3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowfS5pY29uZm9udFtkYXRhLXYtN2JjYzE4YWVde2ZvbnQtc2l6ZToyM3B4fS5jb2xvcltkYXRhLXYtN2JjYzE4YWVde2NvbG9yOiM0M2E4ZmZ9LmNvbG9yc1tkYXRhLXYtN2JjYzE4YWVde2NvbG9yOiNhMTlmYTh9LmNvbG9yMltkYXRhLXYtN2JjYzE4YWVde2NvbG9yOiM0M2E4ZmY7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6NTAlO3BhZGRpbmc6M3B4IDNweCAwO2ZvbnQtc2l6ZTo0NHB4fVtkYXRhLXYtN2JjYzE4YWVdIC52YW4tdGFiYmFye2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgNHB4ICNiYmIpO3otaW5kZXg6NTAwO2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7aGVpZ2h0OjU0LjVweDtwYWRkaW5nOjVweCAwfVtkYXRhLXYtN2JjYzE4YWVdIC52YW4tdGFiYmFyLWl0ZW06bnRoLW9mLXR5cGUoMyl7bWFyZ2luLXRvcDotMjBweH1bZGF0YS12LTdiY2MxOGFlXSAudmFuLXRhYmJhci1pdGVtLS1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMDAwMH1bZGF0YS12LTdiY2MxOGFlXSAudmFuLXRhYmJhci1pdGVtLS1hY3RpdmUgLnZhbi10YWJiYXItaXRlbV9fdGV4dHtmb250LXNpemU6MTJweH1bZGF0YS12LTdiY2MxOGFlXSAudmFuLXRhYmJhci1pdGVtLS1hY3RpdmUgLnZhbi10YWJiYXItaXRlbV9fdGV4dCBzcGFue2NvbG9yOiM0M2E4ZmZ9W2RhdGEtdi03YmNjMThhZV0gLnZhbi10YWJiYXItaXRlbV9fdGV4dHtmb250LXNpemU6MTJweH1bZGF0YS12LTdiY2MxOGFlXSAudmFuLXRhYmJhci1pdGVtX190ZXh0IHNwYW57Y29sb3I6IzAwMH1bZGF0YS12LTdiY2MxOGFlXSAudmFuLWhhaXJsaW5lLS10b3AtYm90dG9tOmFmdGVye2JvcmRlcjowfQo="}},"time_used":1131,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":1131,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"ultradns","sensor_type":"DNS","title":"DigiCert UltraDNS","description":"DigiCert UltraDNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://vercara.digicert.com/ultra-dns-public","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"amazonenterprise3.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"cira_dns","sensor_type":"DNS","title":"CIRA Canadian Shield DNS","description":"CIRA Canadian Shield DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cira.ca/en/canadian-shield/","meta":null},{"sensor_name":"cloudflare_dns","sensor_type":"DNS","title":"Cloudflare DNS","description":"Cloudflare DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cloudflare.com/application-services/products/dns/","meta":null}],"urlquery":[{"sensor_name":"urlquery","alert":"Phishing - Amazon","verdict":"phishing","severity":"medium","comment":"Resource associated with Amazon phishing","tags":["amazon","phishing"],"meta":null}]}},{"url":{"schema":"https","addr":"amazonenterprise3.com/assets/login-h-kMTWYG.js","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://amazonenterprise3.com/","date":"2026-07-27T14:02:23.851Z","timestamp":1785160943851,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"amazonenterprise3.com","organization":""},"issuer":{"commonName":"LiteSSL RSA CA 2025","organization":"TrustAsia Technologies, Inc."},"validity":{"start":"Mon, 20 Jul 2026 11:00:00 GMT","end":"Sun, 18 Oct 2026 10:59:59 GMT"},"fingerprint":{"sha1":"4A:8A:66:B3:B0:81:D6:26:E2:8C:1F:FF:74:BC:A3:71:A3:81:C0:42","sha256":"E4:66:EB:64:6C:32:49:49:72:14:0B:E8:64:1D:03:F1:C0:70:AF:96:1E:F3:BF:6A:58:42:F7:06:1F:E0:51:A0"}}},"request":{"raw":"GET /assets/login-h-kMTWYG.js HTTP/1.1\r\nHost: amazonenterprise3.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://amazonenterprise3.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\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 14:02:23 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Tue, 21 Jul 2026 18:45:13 GMT\r\nvary: Accept-Encoding\r\netag: W/\"6a5fbe39-8c6\"\r\nexpires: Tue, 28 Jul 2026 02:02:23 GMT\r\ncache-control: max-age=43200\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\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":2246,"size_decoded":1551,"mime_type":"application/javascript","magic":"ASCII text, with very long lines (2246), with no line terminators","md5":"a15598b48d0c78d5f544f5cfe3c1e23d","sha1":"a613b08cd2aec9437b30c5f29b99d181570cfdea","sha256":"f04de366c1dbde7840f6a2b8394508b770b97c8fb51a6d7f23d11a81a5bd13d4","sha512":"7c346d9738c08dc5d42d5a632188f74ecb7bcbd6a6d845e98435e6044ec5bb8f71adcd7baf3096fcd04176954c6194cbf1746ea0aed26b49ea3c70af78b6a5ef","ssdeep":"","tlshash":"bb41746b10a4dc7d058b49c9b1ca15603044f473a8139d6dfef44ad43ebdfe9562ab22","first_seen":"2026-07-27T12:42:47.680349Z","last_seen":"2026-07-27T14:03:28.942556Z","times_seen":3,"resource_available":true,"data":"aW1wb3J0e0MgYXMgZSxsIGFzIHR9ZnJvbSIuL2FwaS1DS0Q4NGlMWi5qcyI7aW1wb3J0e0YgYXMgbixNIGFzIHIsXyBhcyBpLHAgYXMgYSx0IGFzIG8sdSBhcyBzfWZyb20iLi9fcGx1Z2luLXZ1ZV9leHBvcnQtaGVscGVyLUNDUlNIcHdMLmpzIjtpbXBvcnR7YSBhcyBjLGQgYXMgbCxzIGFzIHV9ZnJvbSIuL2luZGV4LWVHa29LeUIwLmpzIjtpbXBvcnR7dCBhcyBkfWZyb20iLi9hcGlNZXNzYWdlLWxkYjZOdDg0LmpzIjt2YXIgZj17ZGF0YSgpe3JldHVybntpc2xvYWRpbmc6ITEscGlkOmBgLGZvcm1QYXNzOnthY2NvdW50OmBgLHBhc3N3b3JkOmBgfX19LG1ldGhvZHM6e2xvZ2luUGFzcygpe2lmKHRoaXMuZm9ybVBhc3MuYWNjb3VudD09PWBgKXtjKGBBY2NvdW50IGNhbm5vdCBiZSBlbXB0eWApO3JldHVybn1pZih0aGlzLmZvcm1QYXNzLnBhc3N3b3JkPT09YGApe2MoYFBhc3N3b3JkIGNhbm5vdCBiZSBlbXB0eWApO3JldHVybn10aGlzLmlzbG9hZGluZz0hMCx0KHthY2NvdW50OnRoaXMuZm9ybVBhc3MuYWNjb3VudCxwYXNzd29yZDp0aGlzLmZvcm1QYXNzLnBhc3N3b3JkLGNvZGU6YGAscGlkOnRoaXMucGlkfSkudGhlbih0PT57dGhpcy5pc2xvYWRpbmc9ITEsdC5zdGF0dXM9PTIwMCYmdC5kYXRhLmNvZGU9PTIwMD8obG9jYWxTdG9yYWdlLnNldEl0ZW0oYHRva2VuYCx0LmRhdGEuZGF0YS50b2tlbiksbG9jYWxTdG9yYWdlLnNldEl0ZW0oYHVzZXJJbmZvYCxKU09OLnN0cmluZ2lmeSh0LmRhdGEuZGF0YS51c2VyKSksZShgdG9rZW5gLHQuZGF0YS5kYXRhLnRva2VuLG5ldyBEYXRlKERhdGUubm93KCkrMzYwMCoxZTMpKSx1KGQodC5kYXRhLm1zZyl8fGBMb2dpbiBzdWNjZXNzYCksdGhpcy4kcm91dGVyLnB1c2goe3BhdGg6YC9ob21lYH0pKTpjKGQodC5kYXRhPy5tc2cpfHxgTG9naW4gZmFpbGVkYCl9KS5jYXRjaCgoKT0+e3RoaXMuaXNsb2FkaW5nPSExfSl9fX0scD17Y2xhc3M6YGxvZ2luYH0sbT17Y2xhc3M6YHdyYXBgfSxoPXtjbGFzczpgaXRlbXNgfSxnPXtjbGFzczpgaXRlbWB9LF89e2NsYXNzOmBpdGVtYH0sdj17Y2xhc3M6YGxhYmVsYH0seT17Y2xhc3M6YHJlZ2lzdGB9O2Z1bmN0aW9uIGIoZSx0LG8sYyx1LGQpe2xldCBmPW4oYHZhbi1maWVsZGApO3JldHVybiByKCksYShgZGl2YCxwLFt0WzddfHw9cyhgZGl2YCx7Y2xhc3M6YHRpdGxlYH0sYFdlbGNvbWVgLC0xKSxzKGBkaXZgLG0sW3MoYGZvcm1gLHtpZDpgbG9naW5Gb3JtYCxvblN1Ym1pdDp0WzVdfHw9bCgoLi4uZSk9PmQubG9naW5QYXNzJiZkLmxvZ2luUGFzcyguLi5lKSxbYHByZXZlbnRgXSl9LFtzKGBkaXZgLGgsW3MoYGRpdmAsZyxbaShmLHttb2RlbFZhbHVlOnUuZm9ybVBhc3MuYWNjb3VudCwib25VcGRhdGU6bW9kZWxWYWx1ZSI6dFswXXx8PWU9PnUuZm9ybVBhc3MuYWNjb3VudD1lLCJsZWZ0LWljb24iOmBhY2NvdW50YCwiaWNvbi1wcmVmaXgiOmBsb2dpbi1pY29uYCxwbGFjZWhvbGRlcjpgcGhvbmUgbnVtYmVyLyBhY2NvdW50YH0sbnVsbCw4LFtgbW9kZWxWYWx1ZWBdKV0pLHMoYGRpdmAsXyxbaShmLHttb2RlbFZhbHVlOnUuZm9ybVBhc3MucGFzc3dvcmQsIm9uVXBkYXRlOm1vZGVsVmFsdWUiOnRbMV18fD1lPT51LmZvcm1QYXNzLnBhc3N3b3JkPWUsImxlZnQtaWNvbiI6YHBhc3N3b3JkYCwiaWNvbi1wcmVmaXgiOmBsb2dpbi1pY29uYCx0eXBlOmBwYXNzd29yZGAscGxhY2Vob2xkZXI6YFBsZWFzZSBlbnRlciB0aGUgcGFzc3dvcmRgfSxudWxsLDgsW2Btb2RlbFZhbHVlYF0pXSkscyhgZGl2YCx2LFtzKGBkaXZgLG51bGwsW3MoYGFgLHtocmVmOmBqYXZhc2NyaXB0OjtgLG9uQ2xpY2s6dFsyXXx8PXQ9PmUuJHJvdXRlci5wdXNoKGAvZm9yZ2V0YCl9LGAgRm9yZ2V0IHRoZSBwYXNzd29yZGApXSldKV0pLHMoYGRpdmAsbnVsbCxbcyhgZGl2YCx7Y2xhc3M6YGJ0biBsb2dpbnNgLG9uQ2xpY2s6dFszXXx8PSguLi5lKT0+ZC5sb2dpblBhc3MmJmQubG9naW5QYXNzKC4uLmUpfSxgQ2xpY2sgdG8gZW50ZXJgKV0pLHMoYGRpdmAseSxbdFs2XXx8PXMoYGRpdmAse2NsYXNzOmBsaW5lYH0sbnVsbCwtMSkscyhgZGl2YCxudWxsLFtzKGBhYCx7aHJlZjpgamF2YXNjcmlwdDo7YCxvbkNsaWNrOnRbNF18fD10PT5lLiRyb3V0ZXIucHVzaChgL3JlZ2ApfSxgTm8gYWNjb3VudCwgcmVnaXN0ZXIgbm93YCldKV0pXSwzMildKV0pfXZhciB4PW8oZixbW2ByZW5kZXJgLGJdLFtgX19zY29wZUlkYCxgZGF0YS12LWExMjg4ZjJlYF1dKTtleHBvcnR7eCBhcyBkZWZhdWx0fTs="}},"time_used":278,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":278,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"cloudflare_dns","sensor_type":"DNS","title":"Cloudflare DNS","description":"Cloudflare DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cloudflare.com/application-services/products/dns/","meta":null},{"sensor_name":"ultradns","sensor_type":"DNS","title":"DigiCert UltraDNS","description":"DigiCert UltraDNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://vercara.digicert.com/ultra-dns-public","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"amazonenterprise3.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"cira_dns","sensor_type":"DNS","title":"CIRA Canadian Shield DNS","description":"CIRA Canadian Shield DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cira.ca/en/canadian-shield/","meta":null}],"urlquery":[{"sensor_name":"urlquery","alert":"Phishing - Amazon","verdict":"phishing","severity":"medium","comment":"Resource associated with Amazon phishing","tags":["amazon","phishing"],"meta":null}]}},{"url":{"schema":"https","addr":"amazonenterprise3.com/assets/apiMessage-ldb6Nt84.js","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://amazonenterprise3.com/","date":"2026-07-27T14:02:23.857Z","timestamp":1785160943857,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"amazonenterprise3.com","organization":""},"issuer":{"commonName":"LiteSSL RSA CA 2025","organization":"TrustAsia Technologies, Inc."},"validity":{"start":"Mon, 20 Jul 2026 11:00:00 GMT","end":"Sun, 18 Oct 2026 10:59:59 GMT"},"fingerprint":{"sha1":"4A:8A:66:B3:B0:81:D6:26:E2:8C:1F:FF:74:BC:A3:71:A3:81:C0:42","sha256":"E4:66:EB:64:6C:32:49:49:72:14:0B:E8:64:1D:03:F1:C0:70:AF:96:1E:F3:BF:6A:58:42:F7:06:1F:E0:51:A0"}}},"request":{"raw":"GET /assets/apiMessage-ldb6Nt84.js HTTP/1.1\r\nHost: amazonenterprise3.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://amazonenterprise3.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\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 14:02:23 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Tue, 21 Jul 2026 18:45:13 GMT\r\nvary: Accept-Encoding\r\netag: W/\"6a5fbe39-bb9\"\r\nexpires: Tue, 28 Jul 2026 02:02:23 GMT\r\ncache-control: max-age=43200\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\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":3001,"size_decoded":1969,"mime_type":"application/javascript","magic":"Unicode text, UTF-8 text, with very long lines (2339), with no line terminators","md5":"8579388f4626cb220b812ed32f4314a6","sha1":"c73c8e69a558351faa29f6b726d9a29a69973a8d","sha256":"0449b573595034de2f16883ddbef9085e243aca421c81edcec00e5a0be2d3a99","sha512":"c72be6795f5793a180a6907e2396f443d9f7dfae1673a05a2c65eb64f14a219fe95ef4bbd7bf3b23b6eb5723e898fba379b6cff12acfed83c8879187bf63d574","ssdeep":"","tlshash":"f551c7812704235309804908b93f85de375db878937a52ada4e983c353469adc7efbc4","first_seen":"2026-07-27T12:42:47.698854Z","last_seen":"2026-07-27T14:03:28.946636Z","times_seen":3,"resource_available":true,"data":"dmFyIGU9e+S8muWRmOS4jeWtmOWcqOaIluWvhueggemUmeivrzpgTWVtYmVyIGRvZXMgbm90IGV4aXN0IG9yIHBhc3N3b3JkIGlzIHdyb25nYCzovpPlhaXkuI3lrozmlbQ6YGluY29tcGxldGUgaW5wdXRgLOW4kOWPt+agvOW8j+S4jeato+ehrjpgQWNjb3VudCBmb3JtYXQgaXMgaW5jb3JyZWN0YCznmbvlvZXmiJDlip86YGxvZ2luIHN1Y2Nlc3NmdWxgLOaVsOaNrumUmeivrzpgZGF0YSBlcnJvcmAsIumqjOivgeWksei0pSzor7fph43or5UiOmBWZXJpZmljYXRpb24gZmFpbGVkLCBwbGVhc2UgdHJ5IGFnYWluYCzpgoDor7fnoIHplJnor686YFRoaXMgaW52aXRhdGlvbiBjb2RlIGlzIG5vdCBhdXRob3JpemVkIVBsZWFzZSBpbnB1dCBpbmNvcnJlY3QgSW52aXRlIGNvZGVgLOW4kOWPt+S4jeiDveS4uuepujpgQWNjb3VudCBjYW5ub3QgYmUgZW1wdHlgLCLluJDlj7flkI3np7Dlt7LlrZjlnKjvvIzor7fmm7TmjaLmlrDluJDlj7ciOmBUaGUgYWNjb3VudCBuYW1lIGFscmVhZHkgZXhpc3RzLCBwbGVhc2UgY2hhbmdlIHRvIGEgbmV3IGFjY291bnRgLCLluJDlj7fmoLzlvI/kuI3mraPnoa4s5Y+q6IO95piv5a2X5q+N5pWw5a2X57uE5ZCIIjpgVGhlIGZvcm1hdCBvZiB0aGUgYWNjb3VudCBudW1iZXIgaXMgaW5jb3JyZWN0LCBpdCBjYW4gb25seSBiZSBhIGNvbWJpbmF0aW9uIG9mIGxldHRlcnMgYW5kIG51bWJlcnNgLOaJi+acuuWPt+eggeS4jeiDveS4uuepujpgUGhvbmUgbnVtYmVyIGNhbiBub3QgYmUgYmxhbmtgLCLmiYvmnLrlj7fnoIHlt7Lnu4/lrZjlnKjvvIzor7fmm7TmjaLlhbblroPmiYvmnLrlj7fnoIEiOmBUaGUgcGhvbmUgbnVtYmVyIGFscmVhZHkgZXhpc3RzLCBwbGVhc2UgY2hhbmdlIGFub3RoZXIgcGhvbmUgbnVtYmVyYCzkuqTmmJPlr4bnoIHkuI3og73kuLrnqbo6YFRyYW5zYWN0aW9uIHBhc3N3b3JkIGNhbm5vdCBiZSBlbXB0eWAs5ZCN56ew5LiN6IO95Li656m6OmBOYW1lIGlzIHJlcXVpcmVkYCzlr4bnoIHkuI3og73kuLrnqbo6YHBhc3N3b3JkIGNhbiBub3QgYmUgYmxhbmtgLOezu+e7n+mUmeivrzpgc3lzdGVtIGVycm9yYCzlj4LmlbDplJnor686YFBhcmFtZXRlciBlcnJvcmAs572R57uc5byC5bi4OmBuZXR3b3JrIGFub21hbHlgLOW9qeenjemUmeivrzpgZXJyb3JgLOmAiemhuemUmeivrzpgd3Jvbmcgb3B0aW9uYCzmipXms6jmlbDph4/plJnor686YFdyb25nIGFtb3VudCBvZiBiZXRgLOS4i+WNleaIkOWKnzpgc3VjY2Vzc2Z1bGx5IG9yZGVyZWRgLOacn+aVsOmUmeivrzpgd3JvbmcgbnVtYmVyIG9mIHBlcmlvZHNgLOS9memineS4jei2szpgWW91ciBiYWxhbmNlIGlzIG5vdCBlbm91Z2ggdG8gcGF5IGZvciB0aGUgb3JkZXIsIHBsZWFzZSByZWNoYXJnZSEgTWluaW11bSByZWNoYXJnZSByZXF1aXJlbWVudCBScyBgLOeOqeazleS4jeWtmOWcqDpgZ2FtZXBsYXkgZG9lcyBub3QgZXhpc3RgLOWFheWAvOS4rTpgUHJvY2Vzc2luZ2AsIumTtuihjOWNoeacieivr++8jOivt+mHjeaWsOi+k+WFpSI6YFRoZSBiYW5rIGNhcmQgaXMgd3JvbmcsIHBsZWFzZSByZS1lbnRlcmAs5a6J5YWo56CB6ZSZ6K+vOmBQYXltZW50IHBhc3N3b3JkIGlzIGluY29ycmVjdCwgcGxlYXNlIGNvbnRhY3QgY3VzdG9tZXIgc2VydmljZe+8gWAs5re75Yqg5oiQ5YqfOmBzdWNjZXNzYCwi57O757uf6ZSZ6K+v77yM5peg5rOV5pON5L2cIjpgU3lzdGVtIGVycm9yLCB1bmFibGUgdG8gb3BlcmF0ZWAsIuaCqOacieaPkOeOsOacquWujOaIkO+8jOaXoOazleaPkOS6pOaWsOeahOaPkOeOsCI6YFlvdSBoYXZlIG91dHN0YW5kaW5nIHdpdGhkcmF3YWxzIGFuZCBjYW5ub3Qgc3VibWl0IG5ldyB3aXRoZHJhd2Fsc2AsIuaPkOeOsOmHkemineWwj+S6juacgOW6leaPkOeOsOmineW6pjoiOmBUaGUgd2l0aGRyYXdhbCBhbW91bnQgaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIHdpdGhkcmF3YWwgYW1vdW50YCzmj5DnjrDph5Hpop3lsI/kuo7mnIDlupXmj5DnjrDpop3luqY6YFRoZSB3aXRoZHJhd2FsIGFtb3VudCBpcyBsZXNzIHRoYW4gdGhlIG1pbmltdW0gd2l0aGRyYXdhbCBhbW91bnRgLCLlronlhajnoIHlt7LlrZjlnKjvvIzkuI3og73ph43lpI3orr7nva4iOmBUaGUgc2VjdXJpdHkgY29kZSBhbHJlYWR5IGV4aXN0cyBhbmQgY2Fubm90IGJlIHNldCBhZ2FpbmAsIuWuieWFqOWvhueggeagvOW8j+S4jeato+ehru+8jOWPquiDveaYrzbkvY3mlbDlrZciOmBUaGUgZm9ybWF0IG9mIHRoZSBzZWN1cml0eSBwYXNzd29yZCBpcyBpbmNvcnJlY3QsIGl0IGNhbiBvbmx5IGJlIDYgZGlnaXRzYCzorr7nva7miJDlip86YHN1Y2Nlc3NgLCLkv67mlLnmiJDlip8hIjpgc3VjY2Vzc2AsIumTtuihjOWNoeW3suWtmOWcqO+8jOWmgumcgOmHjee9ruivt+iBlOezu+WuouacjSI6YFRoZSBiYW5rIGNhcmQgYWxyZWFkeSBleGlzdHMuIElmIHlvdSBuZWVkIHRvIHJlc2V0IGl0LCBwbGVhc2UgY29udGFjdCBjdXN0b21lciBzZXJ2aWNlLmAs5pen5a+G56CB6ZSZ6K+vOmBPbGQgcGFzc3dvcmQgaXMgd3JvbmdgLOWuieWFqOeggeS4jeato+ehrjpgUGF5bWVudCBwYXNzd29yZCBlcnJvcmAs5rig6YGT6ZSZ6K+vOmBUaGlzIGludml0YXRpb24gY29kZSBpcyBub3QgYXV0aG9yaXplZCFQbGVhc2UgaW5wdXQgaW5jb3JyZWN0IEludml0ZSBjb2RlYCwi5oKo5pyJ5pyq5a6M5oiQ6K6i5Y2VLOivt+WFiOWujOaIkCI6YFlvdSBoYXZlIHVuZmluaXNoZWQgb3JkZXJzLCBwbGVhc2UgY29tcGxldGUgdGhlbSBmaXJzdGAsIuS7u+WKoeacquWujOaIkO+8jOivt+WFiOWujOaIkOS7u+WKoSI6YFRoZSB0YXNrIGlzIG5vdCBjb21wbGV0ZWQsIHBsZWFzZSBjb21wbGV0ZSB0aGUgdGFzayBmaXJzdGB9O2Z1bmN0aW9uIHQodCl7aWYodD09bnVsbHx8dD09PWBgKXJldHVybiB0O2xldCBuPVN0cmluZyh0KTtpZihlW25dKXJldHVybiBlW25dO2ZvcihsZXQgdCBvZiBPYmplY3Qua2V5cyhlKSlpZihuLnN0YXJ0c1dpdGgodCkpcmV0dXJuIGVbdF0rbi5zbGljZSh0Lmxlbmd0aCk7cmV0dXJuIG59ZXhwb3J0e3R9Ow=="}},"time_used":294,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":294,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"ultradns","sensor_type":"DNS","title":"DigiCert UltraDNS","description":"DigiCert UltraDNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://vercara.digicert.com/ultra-dns-public","meta":null},{"sensor_name":"cloudflare_dns","sensor_type":"DNS","title":"Cloudflare DNS","description":"Cloudflare DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cloudflare.com/application-services/products/dns/","meta":null},{"sensor_name":"cira_dns","sensor_type":"DNS","title":"CIRA Canadian Shield DNS","description":"CIRA Canadian Shield DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cira.ca/en/canadian-shield/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"amazonenterprise3.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":[{"sensor_name":"urlquery","alert":"Phishing - Amazon","verdict":"phishing","severity":"medium","comment":"Resource associated with Amazon phishing","tags":["amazon","phishing"],"meta":null}]}},{"url":{"schema":"https","addr":"amazonenterprise3.com/assets/login-BuU2Pnxo.css","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://amazonenterprise3.com/","date":"2026-07-27T14:02:23.859Z","timestamp":1785160943859,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"amazonenterprise3.com","organization":""},"issuer":{"commonName":"LiteSSL RSA CA 2025","organization":"TrustAsia Technologies, Inc."},"validity":{"start":"Mon, 20 Jul 2026 11:00:00 GMT","end":"Sun, 18 Oct 2026 10:59:59 GMT"},"fingerprint":{"sha1":"4A:8A:66:B3:B0:81:D6:26:E2:8C:1F:FF:74:BC:A3:71:A3:81:C0:42","sha256":"E4:66:EB:64:6C:32:49:49:72:14:0B:E8:64:1D:03:F1:C0:70:AF:96:1E:F3:BF:6A:58:42:F7:06:1F:E0:51:A0"}}},"request":{"raw":"GET /assets/login-BuU2Pnxo.css HTTP/1.1\r\nHost: amazonenterprise3.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://amazonenterprise3.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: 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 14:02:23 GMT\r\ncontent-type: text/css\r\nlast-modified: Tue, 21 Jul 2026 18:45:13 GMT\r\nvary: Accept-Encoding\r\netag: W/\"6a5fbe39-1adf\"\r\nexpires: Tue, 28 Jul 2026 02:02:23 GMT\r\ncache-control: max-age=43200\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\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":6879,"size_decoded":4075,"mime_type":"text/css","magic":"Unicode text, UTF-8 text, with very long lines (6866)","md5":"f124d4e4eac18bf3f77658d7f68c89e8","sha1":"740933f135cf3adfd174674b77d8bab0055faeb5","sha256":"8b2af7442efa20d6d877938f37b89671a3d4000d984093fda9d176783af9f4a3","sha512":"158bc1a698eb4054c04f10e1f0046dee2ce92e9ede87a96e136ffdbfd081db38c8e06cdfb58cc66bbc97a6d48154f154af2b9be4d077d9564d8fb9fa0994094c","ssdeep":"96:AKrsNAmUqNi3OOSUJ8gbuIqGg2RXwZyqpCpvYMOZEfEoTOhOy1UnlKyPvdLrJU/7:fINArrHJ8gbYGg2ReU21iKy59Uz","tlshash":"f0e1c53e6a8dbe953f37c842b254b9821c0db6539610dbacf61b1c105cab863af1553a","first_seen":"2026-07-27T12:42:47.701241Z","last_seen":"2026-07-27T14:03:28.945499Z","times_seen":3,"resource_available":false,"data":"QGZvbnQtZmFjZXtmb250LWZhbWlseTpsb2dpbi1pY29uO3NyYzp1cmwoZGF0YTpmb250L3R0ZjtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1IxTlZRaUNMSlhvQUFBRTRBQUFBVkU5VEx6STlqa3RMQUFBQmpBQUFBR0JqYldGd3RtRkE4Z0FBQWhBQUFBSUtaMng1WmxSbXcxa0FBQVF3QUFBSW1HaGxZV1FkVTNQa0FBQUE0QUFBQURab2FHVmhCNFlEalFBQUFMd0FBQUFrYUcxMGVDUUYvLzhBQUFIc0FBQUFKR3h2WTJFSXRBcjRBQUFFSEFBQUFCUnRZWGh3QVJ3QWx3QUFBUmdBQUFBZ2JtRnRaVDVVL24wQUFBeklBQUFDYlhCdmMzU2JCTGdYQUFBUE9BQUFBSVFBQVFBQUE0RC9nQUFBQkFULy8vLy9CQVFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQWtBQVFBQUFBRUFBRFJ1dmRwZkR6ejFBQXNFQUFBQUFBRGRHSmZ6QUFBQUFOMFlsL1AvLy85L0JBUURnZ0FBQUFnQUFnQUFBQUFBQUFBQkFBQUFDUUNMQUFrQUFBQUFBQUlBQUFBS0FBb0FBQUQvQUFBQUFBQUFBQUVBQUFBS0FEQUFQZ0FDUkVaTVZBQU9iR0YwYmdBYUFBUUFBQUFBQUFBQUFRQUFBQVFBQUFBQUFBQUFBUUFBQUFGc2FXZGhBQWdBQUFBQkFBQUFBUUFFQUFRQUFBQUJBQWdBQVFBR0FBQUFBUUFBQUFRRUFRSDBBQVVBQUFLSkFzd0FBQUNQQW9rQ3pBQUFBZXNBTWdFSUFBQUNBQVVEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQm1SV1FBd09hNDZIb0RnUCtBQUZ3RDNBQ0JBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUNCQUFBQUFRQUFBQUVCUC8vQkFBQUFBUUFBQUFFQVFBQUJBQUFBQVFBQUFBRUFBQUFBQUFBQlFBQUFBTUFBQUFzQUFBQUJBQUFBWm9BQVFBQUFBQUFsQUFEQUFFQUFBQXNBQU1BQ2dBQUFab0FCQUJvQUFBQUVnQVFBQU1BQXVhNDVzN25IT2NxNTFQb0sraEM2SHIvL3dBQTVyam16dWNjNXlyblUrZ3I2RUxvZXYvL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFCSUFFZ0FTQUJJQUVnQVNBQklBRWdBQUFBRUFBZ0FEQUFRQUJRQUdBQWNBQ0FBQUFRWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURBQUFBQUFBY0FBQUFBQUFBQUFJQUFEbXVBQUE1cmdBQUFBQkFBRG16Z0FBNXM0QUFBQUNBQURuSEFBQTV4d0FBQUFEQUFEbktnQUE1eW9BQUFBRUFBRG5Vd0FBNTFNQUFBQUZBQURvS3dBQTZDc0FBQUFHQUFEb1FnQUE2RUlBQUFBSEFBRG9lZ0FBNkhvQUFBQUlBQUFBQUFBQUFIWUJSZ0d1QWlBQ3ZnTkdBOUlFVEFBREFBRC9nQVFBQTJzQUZBQWhBRTBBQUFFMEp5WW5KaUlIQmdjR0ZCY1dGeFl5TnpZM05pVTBQZ0V5SGdFVURnRWlMZ0VCRlNFMU5DY3VBU2NtSXlJSEJoWVhGaFV5SGdJek1oY2VBUmNXRlRjaEZ6UTJOejRCTGdFSERnSURHaWtuUWtXZ1JFTW5LQ2duUTBTZ1JVSW5LZjNtUVhDRWNFRkJjSVJ3UWY4QUJBQXBLSkJiWDJVWkdBVURCaE1GQmdVRkJWdFdVb0VrSlJuOE5CbDRhQW9HQ1JRS1RYSTlBa05RUlVNbktTa25RMFdnUlVNbktTa25RMFZRUW5GQlFYR0VjVUZCY2YyWkdocFZVRTU4SWlRQ0FRTUVEQWdGQ3dZZ0htNUVSMG9aR1dhd05RUVZFd1lFSjNXUUFBbi8vLytHQkFRRGF3QVRBQ3NBUWdCUUFGb0FhQUJ5QUlBQWlnQUFBU1luTGdFbkpnNEJGaGNlQWhjZUFUNEJKd0VPQVFjR0ZSUVhIZ0UrQVNjbU5UUStBVGMrQVM0QkJ3TWVBVE15TmpjMkxnRUdCdzRCSXlJbUp5WWlCaFFYQVRJK0FUUXVBU0lPQVJRZUFUTTFJaVkwTmpJV0ZBWWpBVEkrQVRRdUFTSU9BUlFlQVRNMUlpWTBOaklXRkFZakJUSStBVFF1QVNJT0FSUWVBVE0xSWlZME5qSVdGQVlqQThVRkxpNmNZUW9SQlFzS1ZvdFNCQUVQRlE0Qi9iNWZsQ2txRXdNU0ZBb0RFVXFEVlFvS0JoSUt2MENrV21DdlFRY0NEeFVIT1p0V1VKSTRDQlVPQndFdUpEMGpJejFJUENRa1BDUWlNREJFTURBaS9wSWtQQ1FrUEVnOUl5TTlKQ0l3TUVRd01DSUMreVE5SXlNOVNEd2tKRHdrSWpBd1JEQXdJZ0ZpWkZoV2VSY0NDeFFTQWhSc20xZ0xEZ0VRQ2dHYkhJQllXMk5EUGdvS0JoSUtPRHRZbjNJWkF4SVVDZ1A5Q3o1RVRrZ0hGUTRCQ0Q5R1BEZ0hEeFVIQWxzalBVZzhKQ1E4U0Qwak1qQkVNREJFTVAxTkl6MUhQU1FrUFVjOUl6SXdRekF3UXpBVUpEeElQU01qUFVnOEpESXdSREF3UkRBQUFBQUFBUUFBLzRBRDBnT0NBRVlBQUFVaklpY21KeVkxRVRRMk93RXlQd0UySHdFV093RXlGaFFHS3dFaUx3RUhCaXNCRVJRWEZoY1dPd0V5TnpZM05qVVJBUVlpTHdFbU5EWXlId0VCTmhZVkVSUUhCZ2NHQWdRSWZXdG9QRDhNQ1d1RGUwZ0tDa2g3ZzJzSkRBd0phNUdBUUQ2QWtWVTROMTVoY2doeFlWNDNPZjVyQmhJR3lBY05FUWE2QWFzS0dqODhhR3VBUGoxb2EzMEJ2Z2tNUENRREF5UThEQk1NUUNBZ1FQNVljbUZlTnpnNE4xNWhjZ0VxL25vR0JzZ0hFUTBIdVFHWkN3ME4vcVY5YTJnOFB3QUFBQVVBQVArQUEyc0RnQUFoQURFQVFnQk1BRklBQUFVaElpWTFFUWNoTWhZVkVSUVdNalkxRVRRdUFTTWhFUlFlQVRNaE1qWTBKaU1CTkRZeklUSVdGUkVVQmlNaElpWTFBeEVVRmpNaE1qWTFFVFFtSXlFaUJoVVRNalkwSmlJR0ZCWXpOVGdETVFOUy9kY2dMQmtDS1I4c0R4VVBJam9pL2I0aU9TTUNLUW9QRHdyOTh3OEpBVklLRGc0Sy9xNEpEekFySFFGU0hpb3FIdjZ1SFN2MkZCNGVLUjRlRlU0c0h3TnFHU3dmL1JBS0R3OEtBdkFpT1NMOGZTSTVJZzhVRHdNY0NnME5DdjNCQ1E0T0NRSS8vY0VkS2lvZEFqOGRLaW9kL1AwZEtoMGRLaDB5QUFZQUFBQUFCQUVEQUFBTUFCVUFOZ0JXQUdJQWJnQUFBVFF1QVNJT0FSUWVBVEkrQVNjME5qSVdGQVlpSmdjVklUVTBMZ0VqSWc0QkhnRTNNaFl6TWg0QkZTRTBOelkzUGdFdUFRY09BUWNpSmpVUklUSVdGUkVVRmpJMk5SRTBMZ0VqSVJFVUhnRXpJVEkyTkNZakF6STJOQ1lqSVNJR0ZCWXpGekkyTkNZckFTSUdGQll6QWNBaU8wWTdJaUk3UmpzaXpTMUFMUzFBTFhBQm5qbGdOZ29WRFFFSkN3TVJBeXBIS3Y3S0RoRWJDUVVNRlFrb0tnTWdMUU5PSHkwUEZnOGpPeUw4ZnlJN0l3TVFDdzhQQ3lnS0RnNEsvdHNLRGc0SzVBb1BEd3JqQ3c0T0N3SHJJanNqSXp0Rk95SWlPeU1mTFMwL0xTM29HaG94VmpRQ0VSWUlBUVVjTVI0UEZoZ1NCaFVUQlFZYlRNc3NId0k3TENEK0V3b1BEd29CN1NJNkl2MlRJam9pRHhVUEFhTU1FZ3dNRWd4ckRCSU5EUklNQUFBRkFBRC9md09qQTRFQUR3QWZBRDhBVndCakFBQVRFUlFXTXlFeU5qVVJOQ1lqSVNJR0J6UTJNeUV5RmhVUkZBWWpJU0ltTlJNMFBnRTdBVEllQVIwQkZ4WVhGakkzUGdFeE5UUXVBU3NCSWc0QkhRRTNOVFErQVRzQk1oNEJIUUV6TlRRdUFTc0JJZzRCSFFFM0Z4VVVGakkyUFFFMEppSUdpUThLQXJNTER3OEwvVTBMRGpRdElBS3pJQzB0SVAxTklDM05MVXd1V1MxTkxRSUVCUWNTQmdRRk8yUTdXVHhrT2pNdFRDNVpMVTB0TXp0a08xazhaRG96emc4VkR3OFZEd0d6L2hvTER3OExBZVlMRHc4TElDMHRJUDRhSUMwdElBTFpMa3d0TFV3dVd3VUZBd1VGQXdwYlBHTTdPMlE3d0FxMkxrd3RMVXd1VzFzOFl6czdaRHZBQ3JIeEN3OFBDL0VMRHc4QUFBY0FBQUFBQS9vQzJnQUFBQTBBRGdBYUFCc0FKQUJnQUFBQkl4UWVBVEkrQVRRdUFTSU9BUmNqRkJZeU5qVTBMZ0VpRGdFWEl4UVdNalkwSmlJR0F5TWlKeVluSmpRM05qYzJNeUV5SGdJZEFSUU9BaU1pQmhRV016STNOamMyUFFFMEp5WW5KaU1oSWdjR0J3WVVGeFlYRmpzQk1qWTBKZ0ZQTWcwWUd4Y09EaGNiR0EzOE1oMHFIZzRYR3hnTi9ESWRLaDRlS2gyTnZGSkdSU2dwS1NoRlJsSUJNRHh2VlM0dFZHNDhDZzhQQ2w5U1R5OHdNUzlRVW1EKzBHQlNVQzh4TVM5UVVtQzhDdzhQQVhnT0Z3NE9GeHNZRFEwWURSVWVIaFVOR0EwTkdBMFZIaDRxSFIzK3ZDa29SVWFsUmtVb0tTNVZiendFUEc1VUxROFZEeTh2VDFKZkJHQlNVQzh4TVM5UVVzRlNVQzh3RHhVUEFBQURBQUQvZ0FRQkEyc0FLZ0EzQUZRQUFBRWlCd1lIQmhRWEZoY09BUWNHRlJjV0Z4WXpNamMySnpFME56NEJOelk3QVRJM05qYzJOQ2NtSnlZRElpNEJORDRCTWg0QkZBNEJCUlFHS3dFVkZBWWlKajBCSXlJbU5EWTdBVFUwTmpJV0hRRXpNaFlDRFZCRlFpY3BLeWxGYTY4eU13RUNCUWNNRUFZREFTVWtnVkpXV3cxUVJFTW5LQ2duUTBSUVFuQkJRWENFYjBKQmNBR3lEd3FrRGhVT3BBb09EZ3FrRHhRT3BBb1BBMm9vSjBORm9rZEVKeGwrVmxsZkJ3Z0VCdzBHQjBwSFJHNGVJQ2tuUTBXZ1JVTW5LUDNsUVhHRWNFSkNjSVJ4UWZrS0Q2TUtEdzhLb3c4VUQ2TUtEdzhLb3c4QUFBQUFBQUFTQU40QUFRQUFBQUFBQUFBVkFBQUFBUUFBQUFBQUFRQUlBQlVBQVFBQUFBQUFBZ0FIQUIwQUFRQUFBQUFBQXdBSUFDUUFBUUFBQUFBQUJBQUlBQ3dBQVFBQUFBQUFCUUFMQURRQUFRQUFBQUFBQmdBSUFEOEFBUUFBQUFBQUNnQXJBRWNBQVFBQUFBQUFDd0FUQUhJQUF3QUJCQWtBQUFBcUFJVUFBd0FCQkFrQUFRQVFBSzhBQXdBQkJBa0FBZ0FPQUw4QUF3QUJCQWtBQXdBUUFNMEFBd0FCQkFrQUJBQVFBTjBBQXdBQkJBa0FCUUFXQU8wQUF3QUJCQWtBQmdBUUFRTUFBd0FCQkFrQUNnQldBUk1BQXdBQkJBa0FDd0FtQVdrS1EzSmxZWFJsWkNCaWVTQnBZMjl1Wm05dWRBcHBZMjl1Wm05dWRGSmxaM1ZzWVhKcFkyOXVabTl1ZEdsamIyNW1iMjUwVm1WeWMybHZiaUF4TGpCcFkyOXVabTl1ZEVkbGJtVnlZWFJsWkNCaWVTQnpkbWN5ZEhSbUlHWnliMjBnUm05dWRHVnNiRzhnY0hKdmFtVmpkQzVvZEhSd09pOHZabTl1ZEdWc2JHOHVZMjl0QUFvQVF3QnlBR1VBWVFCMEFHVUFaQUFnQUdJQWVRQWdBR2tBWXdCdkFHNEFaZ0J2QUc0QWRBQUtBR2tBWXdCdkFHNEFaZ0J2QUc0QWRBQlNBR1VBWndCMUFHd0FZUUJ5QUdrQVl3QnZBRzRBWmdCdkFHNEFkQUJwQUdNQWJ3QnVBR1lBYndCdUFIUUFWZ0JsQUhJQWN3QnBBRzhBYmdBZ0FERUFMZ0F3QUdrQVl3QnZBRzRBWmdCdkFHNEFkQUJIQUdVQWJnQmxBSElBWVFCMEFHVUFaQUFnQUdJQWVRQWdBSE1BZGdCbkFESUFkQUIwQUdZQUlBQm1BSElBYndCdEFDQUFSZ0J2QUc0QWRBQmxBR3dBYkFCdkFDQUFjQUJ5QUc4QWFnQmxBR01BZEFBdUFHZ0FkQUIwQUhBQU9nQXZBQzhBWmdCdkFHNEFkQUJsQUd3QWJBQnZBQzRBWXdCdkFHMEFBQUFBQWdBQUFBQUFBQUFLQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUpBUUlCQXdFRUFRVUJCZ0VIQVFnQkNRRUtBQWRoWTJOdmRXNTBCM0J5YjJObGMzTUljMlZqZFhKcGRIa0xiVzlpYVd4bGNHaHZibVVOWW5WemMybHVaWE56WTJGeVpBaHdZWE56ZDI5eVpBUmpiMlJsQzJGa1pDMWhZMk52ZFc1MEFBQT0pZm9ybWF0KCJ0cnVldHlwZSIpfS5sb2dpbi1pY29uLWFjY291bnRbZGF0YS12LWExMjg4ZjJlXTpiZWZvcmV7Y29udGVudDoi7pq4In0ubG9naW4taWNvbi1wcm9jZXNzW2RhdGEtdi1hMTI4OGYyZV06YmVmb3Jle2NvbnRlbnQ6Iu6bjiJ9LmxvZ2luLWljb24tc2VjdXJpdHlbZGF0YS12LWExMjg4ZjJlXTpiZWZvcmV7Y29udGVudDoi7pycIn0ubG9naW4taWNvbi1tb2JpbGVwaG9uZVtkYXRhLXYtYTEyODhmMmVdOmJlZm9yZXtjb250ZW50OiLunKoifS5sb2dpbi1pY29uLXBhc3N3b3JkW2RhdGEtdi1hMTI4OGYyZV06YmVmb3Jle2NvbnRlbnQ6Iu6gqyJ9LmxvZ2luLWljb24tYWRkLWFjY291bnRbZGF0YS12LWExMjg4ZjJlXTpiZWZvcmV7Y29udGVudDoi7qG6In0ubG9naW5bZGF0YS12LWExMjg4ZjJlXXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgjMGEzY2ZmLCMwYmQzZmYpO3dpZHRoOjEwMCU7Zm9udC1zaXplOjE0cHg7aGVpZ2h0OjEwMHZoIWltcG9ydGFudH0ubG9naW4gLnRpdGxlW2RhdGEtdi1hMTI4OGYyZV17Y29sb3I6I2ZmZjtwYWRkaW5nOjg1cHggMzZweDtmb250LWZhbWlseTpSdWJpay1Cb2xkSXRhbGljLFJ1YmlrO2ZvbnQtc2l6ZTozNnB4O2ZvbnQtd2VpZ2h0OjQwMH0ubG9naW4gLndyYXBbZGF0YS12LWExMjg4ZjJlXXtwYWRkaW5nOjAgMzJweH0ubG9naW4gLndyYXAgLmxhYmVsW2RhdGEtdi1hMTI4OGYyZV17dGV4dC1hbGlnbjpyaWdodDtvcGFjaXR5Oi44O21hcmdpbi10b3A6MTJweH0ubG9naW4gLndyYXAgLmxhYmVsIGFbZGF0YS12LWExMjg4ZjJlXXtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubG9naW4gLndyYXAgLmJ0bltkYXRhLXYtYTEyODhmMmVde3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiMwZTczZmY7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6OHB4O2hlaWdodDo0OHB4O21hcmdpbi10b3A6OTlweDtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6NDhweH0ubG9naW4gLndyYXAgLnJlZ2lzdFtkYXRhLXYtYTEyODhmMmVde3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6NTBweH0ubG9naW4gLndyYXAgLnJlZ2lzdCAubGluZVtkYXRhLXYtYTEyODhmMmVdLC5sb2dpbiAud3JhcCAucmVnaXN0IGFbZGF0YS12LWExMjg4ZjJlXXtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH1bZGF0YS12LWExMjg4ZjJlXSAudmFuLWNlbGx7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ZmZjY7cGFkZGluZzoxNXB4IDA7YmFja2dyb3VuZC1jb2xvcjojMDAwMCFpbXBvcnRhbnR9W2RhdGEtdi1hMTI4OGYyZV0gLnZhbi1jZWxsIC52YW4tZmllbGRfX2NvbnRyb2x7Y29sb3I6I2ZmZn1bZGF0YS12LWExMjg4ZjJlXSAudmFuLWNlbGwgLnZhbi1maWVsZF9fY29udHJvbDo6cGxhY2Vob2xkZXJ7Y29sb3I6Izk0YjRlZn0K"}},"time_used":297,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":297,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"ultradns","sensor_type":"DNS","title":"DigiCert UltraDNS","description":"DigiCert UltraDNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://vercara.digicert.com/ultra-dns-public","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"amazonenterprise3.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"cira_dns","sensor_type":"DNS","title":"CIRA Canadian Shield DNS","description":"CIRA Canadian Shield DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cira.ca/en/canadian-shield/","meta":null},{"sensor_name":"cloudflare_dns","sensor_type":"DNS","title":"Cloudflare DNS","description":"Cloudflare DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cloudflare.com/application-services/products/dns/","meta":null}],"urlquery":[{"sensor_name":"urlquery","alert":"Phishing - Amazon","verdict":"phishing","severity":"medium","comment":"Resource associated with Amazon phishing","tags":["amazon","phishing"],"meta":null}]}},{"url":{"schema":"https","addr":"amazonenterprise3.com/favicon.svg","fqdn":"amazonenterprise3.com","domain":"amazonenterprise3.com","tld":"com"},"ip":{"addr":"134.122.188.122","port":443,"asn":152194,"as":"CTG Server Limited","country":"Singapore","country_code":"SG"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://amazonenterprise3.com/","date":"2026-07-27T14:02:24.160Z","timestamp":1785160944160,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"amazonenterprise3.com","organization":""},"issuer":{"commonName":"LiteSSL RSA CA 2025","organization":"TrustAsia Technologies, Inc."},"validity":{"start":"Mon, 20 Jul 2026 11:00:00 GMT","end":"Sun, 18 Oct 2026 10:59:59 GMT"},"fingerprint":{"sha1":"4A:8A:66:B3:B0:81:D6:26:E2:8C:1F:FF:74:BC:A3:71:A3:81:C0:42","sha256":"E4:66:EB:64:6C:32:49:49:72:14:0B:E8:64:1D:03:F1:C0:70:AF:96:1E:F3:BF:6A:58:42:F7:06:1F:E0:51:A0"}}},"request":{"raw":"GET /favicon.svg HTTP/1.1\r\nHost: amazonenterprise3.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://amazonenterprise3.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 14:02:24 GMT\r\ncontent-type: image/svg+xml\r\nlast-modified: Sat, 27 Jun 2026 07:42:25 GMT\r\nvary: Accept-Encoding\r\netag: W/\"6a3f7ee1-2532\"\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\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":9522,"size_decoded":1953,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"7e840862161341271697daa99a40d76b","sha1":"3f5bb8f3a6a05b7ca68a62581d2dd5bc88812caf","sha256":"61bc9a161de58248288e6905425d7180f0624c2865007b97d763fdac12043a66","sha512":"695cf2d7a2ad9fd7618cfac28e4d356f000eaa9069484ad34a68afa456e12c6943f3e66a0ab35902b5221d912c45b79e179e371f7a4097c2e149b7a5fffeed9b","ssdeep":"96:8Ep9/pIZ6gzAZp9fD6ZQEIOKMXGQSQzsw+JignGFGxQGySLISTSoSWSSESiSeSEs:qII+6DImQnMStOcbloxW1","tlshash":"901253a2e6f9b46d62150174fbd394d7102f90c9ca11078fb4be3231512baa3f9bd5b8","first_seen":"2026-03-15T03:33:01.165262Z","last_seen":"2026-07-27T14:16:27.542573Z","times_seen":8193,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0NiIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDQ4IDQ2Ij48cGF0aCBmaWxsPSIjODYzYmZmIiBkPSJNMjUuOTQ2IDQ0LjkzOGMtLjY2NC44NDUtMi4wMjEuMzc1LTIuMDIxLS42OThWMzMuOTM3YTIuMjYgMi4yNiAwIDAgMC0yLjI2Mi0yLjI2MkgxMC4yODdjLS45MiAwLTEuNDU2LTEuMDQtLjkyLTEuNzg4bDcuNDgtMTAuNDcxYzEuMDctMS40OTcgMC0zLjU3OC0xLjg0Mi0zLjU3OEgxLjIzN2MtLjkyIDAtMS40NTYtMS4wNC0uOTItMS43ODhMMTAuMDEzLjQ3NGMuMjE0LS4yOTcuNTU2LS40NzQuOTItLjQ3NGgyOC44OTRjLjkyIDAgMS40NTYgMS4wNC45MiAxLjc4OGwtNy40OCAxMC40NzFjLTEuMDcgMS40OTggMCAzLjU3OSAxLjg0MiAzLjU3OWgxMS4zNzdjLjk0MyAwIDEuNDczIDEuMDg4Ljg5IDEuODNMMjUuOTQ3IDQ0Ljk0eiIgc3R5bGU9ImZpbGw6Izg2M2JmZjtmaWxsOmNvbG9yKGRpc3BsYXktcDMgLjUyNTIgLjIzIDEpO2ZpbGwtb3BhY2l0eToxIi8+PG1hc2sgaWQ9ImEiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0NiIgeD0iMCIgeT0iMCIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSI+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTI1Ljg0MiA0NC45MzhjLS42NjQuODQ0LTIuMDIxLjM3NS0yLjAyMS0uNjk4VjMzLjkzN2EyLjI2IDIuMjYgMCAwIDAtMi4yNjItMi4yNjJIMTAuMTgzYy0uOTIgMC0xLjQ1Ni0xLjA0LS45Mi0xLjc4OGw3LjQ4LTEwLjQ3MWMxLjA3LTEuNDk4IDAtMy41NzktMS44NDItMy41NzlIMS4xMzNjLS45MiAwLTEuNDU2LTEuMDQtLjkyLTEuNzg3TDkuOTEuNDczYy4yMTQtLjI5Ny41NTYtLjQ3NC45Mi0uNDc0aDI4Ljg5NGMuOTIgMCAxLjQ1NiAxLjA0LjkyIDEuNzg4bC03LjQ4IDEwLjQ3MWMtMS4wNyAxLjQ5OCAwIDMuNTc4IDEuODQyIDMuNTc4aDExLjM3N2MuOTQzIDAgMS40NzMgMS4wODguODkgMS44MzJMMjUuODQzIDQ0Ljk0eiIgc3R5bGU9ImZpbGw6IzAwMDtmaWxsLW9wYWNpdHk6MSIvPjwvbWFzaz48ZyBtYXNrPSJ1cmwoI2EpIj48ZyBmaWx0ZXI9InVybCgjYikiPjxlbGxpcHNlIGN4PSI1LjUwOCIgY3k9IjE0LjcwNCIgZmlsbD0iI2VkZTZmZiIgcng9IjUuNTA4IiByeT0iMTQuNzA0IiBzdHlsZT0iZmlsbDojZWRlNmZmO2ZpbGw6Y29sb3IoZGlzcGxheS1wMyAuOTI3NSAuOTAzMyAxKTtmaWxsLW9wYWNpdHk6MSIgdHJhbnNmb3JtPSJtYXRyaXgoLjAwMzI0IDEgMSAtLjAwMzI0IC00LjQ3IDMxLjUxNikiLz48L2c+PGcgZmlsdGVyPSJ1cmwoI2MpIj48ZWxsaXBzZSBjeD0iMTAuMzk5IiBjeT0iMjkuODUxIiBmaWxsPSIjZWRlNmZmIiByeD0iMTAuMzk5IiByeT0iMjkuODUxIiBzdHlsZT0iZmlsbDojZWRlNmZmO2ZpbGw6Y29sb3IoZGlzcGxheS1wMyAuOTI3NSAuOTAzMyAxKTtmaWxsLW9wYWNpdHk6MSIgdHJhbnNmb3JtPSJtYXRyaXgoLjAwMzI0IDEgMSAtLjAwMzI0IC0zOS4zMjggNy44ODMpIi8+PC9nPjxnIGZpbHRlcj0idXJsKCNkKSI+PGVsbGlwc2UgY3g9IjUuNTA4IiBjeT0iMzAuNDg3IiBmaWxsPSIjN2UxNGZmIiByeD0iNS41MDgiIHJ5PSIzMC40ODciIHN0eWxlPSJmaWxsOiM3ZTE0ZmY7ZmlsbDpjb2xvcihkaXNwbGF5LXAzIC40OTIyIC4wNzY3IDEpO2ZpbGwtb3BhY2l0eToxIiB0cmFuc2Zvcm09InJvdGF0ZSg4OS44MTQgLTI1LjkxMyAtMTQuNjM5KXNjYWxlKDEgLTEpIi8+PC9nPjxnIGZpbHRlcj0idXJsKCNlKSI+PGVsbGlwc2UgY3g9IjUuNTA4IiBjeT0iMzAuNTk5IiBmaWxsPSIjN2UxNGZmIiByeD0iNS41MDgiIHJ5PSIzMC41OTkiIHN0eWxlPSJmaWxsOiM3ZTE0ZmY7ZmlsbDpjb2xvcihkaXNwbGF5LXAzIC40OTIyIC4wNzY3IDEpO2ZpbGwtb3BhY2l0eToxIiB0cmFuc2Zvcm09InJvdGF0ZSg4OS44MTQgLTMyLjY0NCAtMy4zMzQpc2NhbGUoMSAtMSkiLz48L2c+PGcgZmlsdGVyPSJ1cmwoI2YpIj48ZWxsaXBzZSBjeD0iNS41MDgiIGN5PSIzMC41OTkiIGZpbGw9IiM3ZTE0ZmYiIHJ4PSI1LjUwOCIgcnk9IjMwLjU5OSIgc3R5bGU9ImZpbGw6IzdlMTRmZjtmaWxsOmNvbG9yKGRpc3BsYXktcDMgLjQ5MjIgLjA3NjcgMSk7ZmlsbC1vcGFjaXR5OjEiIHRyYW5zZm9ybT0ibWF0cml4KC4wMDMyNCAxIDEgLS4wMDMyNCAtMzQuMzQgMzAuNDcpIi8+PC9nPjxnIGZpbHRlcj0idXJsKCNnKSI+PGVsbGlwc2UgY3g9IjE0LjA3MiIgY3k9IjIyLjA3OCIgZmlsbD0iI2VkZTZmZiIgcng9IjE0LjA3MiIgcnk9IjIyLjA3OCIgc3R5bGU9ImZpbGw6I2VkZTZmZjtmaWxsOmNvbG9yKGRpc3BsYXktcDMgLjkyNzUgLjkwMzMgMSk7ZmlsbC1vcGFjaXR5OjEiIHRyYW5zZm9ybT0icm90YXRlKDkzLjM1IDI0LjUwNiA0OC40OTMpc2NhbGUoLTEgMSkiLz48L2c+PGcgZmlsdGVyPSJ1cmwoI2gpIj48ZWxsaXBzZSBjeD0iMy40NyIgY3k9IjIxLjUwMSIgZmlsbD0iIzdlMTRmZiIgcng9IjMuNDciIHJ5PSIyMS41MDEiIHN0eWxlPSJmaWxsOiM3ZTE0ZmY7ZmlsbDpjb2xvcihkaXNwbGF5LXAzIC40OTIyIC4wNzY3IDEpO2ZpbGwtb3BhY2l0eToxIiB0cmFuc2Zvcm09InJvdGF0ZSg4OS4wMDkgMjguNzA4IDQ3LjU5KXNjYWxlKC0xIDEpIi8+PC9nPjxnIGZpbHRlcj0idXJsKCNpKSI+PGVsbGlwc2UgY3g9IjMuNDciIGN5PSIyMS41MDEiIGZpbGw9IiM3ZTE0ZmYiIHJ4PSIzLjQ3IiByeT0iMjEuNTAxIiBzdHlsZT0iZmlsbDojN2UxNGZmO2ZpbGw6Y29sb3IoZGlzcGxheS1wMyAuNDkyMiAuMDc2NyAxKTtmaWxsLW9wYWNpdHk6MSIgdHJhbnNmb3JtPSJyb3RhdGUoODkuMDA5IDI4LjcwOCA0Ny41OSlzY2FsZSgtMSAxKSIvPjwvZz48ZyBmaWx0ZXI9InVybCgjaikiPjxlbGxpcHNlIGN4PSIuMzg3IiBjeT0iOC45NzIiIGZpbGw9IiM3ZTE0ZmYiIHJ4PSI0LjQwNyIgcnk9IjI5LjEwOCIgc3R5bGU9ImZpbGw6IzdlMTRmZjtmaWxsOmNvbG9yKGRpc3BsYXktcDMgLjQ5MjIgLjA3NjcgMSk7ZmlsbC1vcGFjaXR5OjEiIHRyYW5zZm9ybT0icm90YXRlKDM5LjUxIC4zODcgOC45NzIpIi8+PC9nPjxnIGZpbHRlcj0idXJsKCNrKSI+PGVsbGlwc2UgY3g9IjQ3LjUyMyIgY3k9Ii02LjA5MiIgZmlsbD0iIzdlMTRmZiIgcng9IjQuNDA3IiByeT0iMjkuMTA4IiBzdHlsZT0iZmlsbDojN2UxNGZmO2ZpbGw6Y29sb3IoZGlzcGxheS1wMyAuNDkyMiAuMDc2NyAxKTtmaWxsLW9wYWNpdHk6MSIgdHJhbnNmb3JtPSJyb3RhdGUoMzcuODkyIDQ3LjUyMyAtNi4wOTIpIi8+PC9nPjxnIGZpbHRlcj0idXJsKCNsKSI+PGVsbGlwc2UgY3g9IjQxLjQxMiIgY3k9IjYuMzMzIiBmaWxsPSIjNDdiZmZmIiByeD0iNS45NzEiIHJ5PSI5LjY2NSIgc3R5bGU9ImZpbGw6IzQ3YmZmZjtmaWxsOmNvbG9yKGRpc3BsYXktcDMgLjI3OTkgLjc0OCAxKTtmaWxsLW9wYWNpdHk6MSIgdHJhbnNmb3JtPSJyb3RhdGUoMzcuODkyIDQxLjQxMiA2LjMzMykiLz48L2c+PGcgZmlsdGVyPSJ1cmwoI20pIj48ZWxsaXBzZSBjeD0iLTEuODc5IiBjeT0iMzguMzMyIiBmaWxsPSIjN2UxNGZmIiByeD0iNC40MDciIHJ5PSIyOS4xMDgiIHN0eWxlPSJmaWxsOiM3ZTE0ZmY7ZmlsbDpjb2xvcihkaXNwbGF5LXAzIC40OTIyIC4wNzY3IDEpO2ZpbGwtb3BhY2l0eToxIiB0cmFuc2Zvcm09InJvdGF0ZSgzNy44OTIgLTEuODggMzguMzMyKSIvPjwvZz48ZyBmaWx0ZXI9InVybCgjbikiPjxlbGxpcHNlIGN4PSItMS44NzkiIGN5PSIzOC4zMzIiIGZpbGw9IiM3ZTE0ZmYiIHJ4PSI0LjQwNyIgcnk9IjI5LjEwOCIgc3R5bGU9ImZpbGw6IzdlMTRmZjtmaWxsOmNvbG9yKGRpc3BsYXktcDMgLjQ5MjIgLjA3NjcgMSk7ZmlsbC1vcGFjaXR5OjEiIHRyYW5zZm9ybT0icm90YXRlKDM3Ljg5MiAtMS44OCAzOC4zMzIpIi8+PC9nPjxnIGZpbHRlcj0idXJsKCNvKSI+PGVsbGlwc2UgY3g9IjM1LjY1MSIgY3k9IjI5LjkwNyIgZmlsbD0iIzdlMTRmZiIgcng9IjQuNDA3IiByeT0iMjkuMTA4IiBzdHlsZT0iZmlsbDojN2UxNGZmO2ZpbGw6Y29sb3IoZGlzcGxheS1wMyAuNDkyMiAuMDc2NyAxKTtmaWxsLW9wYWNpdHk6MSIgdHJhbnNmb3JtPSJyb3RhdGUoMzcuODkyIDM1LjY1MSAyOS45MDcpIi8+PC9nPjxnIGZpbHRlcj0idXJsKCNwKSI+PGVsbGlwc2UgY3g9IjM4LjQxOCIgY3k9IjMyLjQiIGZpbGw9IiM0N2JmZmYiIHJ4PSI1Ljk3MSIgcnk9IjE1LjI5NyIgc3R5bGU9ImZpbGw6IzQ3YmZmZjtmaWxsOmNvbG9yKGRpc3BsYXktcDMgLjI3OTkgLjc0OCAxKTtmaWxsLW9wYWNpdHk6MSIgdHJhbnNmb3JtPSJyb3RhdGUoMzcuODkyIDM4LjQxOCAzMi40KSIvPjwvZz48L2c+PGRlZnM+PGZpbHRlciBpZD0iYiIgd2lkdGg9IjYwLjA0NSIgaGVpZ2h0PSI0MS42NTQiIHg9Ii0xOS43NyIgeT0iMTYuMTQ5IiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz48ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz48ZmVHYXVzc2lhbkJsdXIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzIwMDJfMTcxNTgiIHN0ZERldmlhdGlvbj0iNy42NTkiLz48L2ZpbHRlcj48ZmlsdGVyIGlkPSJjIiB3aWR0aD0iOTAuMzQiIGhlaWdodD0iNTEuNDM3IiB4PSItNTQuNjEzIiB5PSItNy41MzMiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPjxmZUJsZW5kIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSIvPjxmZUdhdXNzaWFuQmx1ciByZXN1bHQ9ImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMjAwMl8xNzE1OCIgc3RkRGV2aWF0aW9uPSI3LjY1OSIvPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImQiIHdpZHRoPSI3OS4zNTUiIGhlaWdodD0iMjkuNCIgeD0iLTQ5LjY0IiB5PSIyLjAzIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz48ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz48ZmVHYXVzc2lhbkJsdXIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzIwMDJfMTcxNTgiIHN0ZERldmlhdGlvbj0iNC41OTYiLz48L2ZpbHRlcj48ZmlsdGVyIGlkPSJlIiB3aWR0aD0iNzkuNTc5IiBoZWlnaHQ9IjI5LjQiIHg9Ii00NS4wNDUiIHk9IjIwLjAyOSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+PGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIi8+PGZlR2F1c3NpYW5CbHVyIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8yMDAyXzE3MTU4IiBzdGREZXZpYXRpb249IjQuNTk2Ii8+PC9maWx0ZXI+PGZpbHRlciBpZD0iZiIgd2lkdGg9Ijc5LjU3OSIgaGVpZ2h0PSIyOS40IiB4PSItNDMuNTEzIiB5PSIyMS4xNzgiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPjxmZUJsZW5kIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSIvPjxmZUdhdXNzaWFuQmx1ciByZXN1bHQ9ImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMjAwMl8xNzE1OCIgc3RkRGV2aWF0aW9uPSI0LjU5NiIvPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImciIHdpZHRoPSI3NC43NDkiIGhlaWdodD0iNTguODUyIiB4PSIxNS43NTYiIHk9Ii0xNy45MDEiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPjxmZUJsZW5kIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSIvPjxmZUdhdXNzaWFuQmx1ciByZXN1bHQ9ImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMjAwMl8xNzE1OCIgc3RkRGV2aWF0aW9uPSI3LjY1OSIvPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImgiIHdpZHRoPSI2MS4zNzciIGhlaWdodD0iMjUuMzYyIiB4PSIyMy41NDgiIHk9IjIuMjg0IiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz48ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz48ZmVHYXVzc2lhbkJsdXIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzIwMDJfMTcxNTgiIHN0ZERldmlhdGlvbj0iNC41OTYiLz48L2ZpbHRlcj48ZmlsdGVyIGlkPSJpIiB3aWR0aD0iNjEuMzc3IiBoZWlnaHQ9IjI1LjM2MiIgeD0iMjMuNTQ4IiB5PSIyLjI4NCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+PGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIi8+PGZlR2F1c3NpYW5CbHVyIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8yMDAyXzE3MTU4IiBzdGREZXZpYXRpb249IjQuNTk2Ii8+PC9maWx0ZXI+PGZpbHRlciBpZD0iaiIgd2lkdGg9IjU2LjA0NSIgaGVpZ2h0PSI2My42NDkiIHg9Ii0yNy42MzYiIHk9Ii0yMi44NTMiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPjxmZUJsZW5kIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSIvPjxmZUdhdXNzaWFuQmx1ciByZXN1bHQ9ImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMjAwMl8xNzE1OCIgc3RkRGV2aWF0aW9uPSI0LjU5NiIvPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImsiIHdpZHRoPSI1NC44MTQiIGhlaWdodD0iNjQuNjQ2IiB4PSIyMC4xMTYiIHk9Ii0zOC40MTUiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPjxmZUJsZW5kIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSIvPjxmZUdhdXNzaWFuQmx1ciByZXN1bHQ9ImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMjAwMl8xNzE1OCIgc3RkRGV2aWF0aW9uPSI0LjU5NiIvPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImwiIHdpZHRoPSIzMy41NDEiIGhlaWdodD0iMzUuMzEzIiB4PSIyNC42NDEiIHk9Ii0xMS4zMjMiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPjxmZUJsZW5kIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSIvPjxmZUdhdXNzaWFuQmx1ciByZXN1bHQ9ImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMjAwMl8xNzE1OCIgc3RkRGV2aWF0aW9uPSI0LjU5NiIvPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9Im0iIHdpZHRoPSI1NC44MTQiIGhlaWdodD0iNjQuNjQ2IiB4PSItMjkuMjg2IiB5PSI2LjAwOSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+PGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIi8+PGZlR2F1c3NpYW5CbHVyIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8yMDAyXzE3MTU4IiBzdGREZXZpYXRpb249IjQuNTk2Ii8+PC9maWx0ZXI+PGZpbHRlciBpZD0ibiIgd2lkdGg9IjU0LjgxNCIgaGVpZ2h0PSI2NC42NDYiIHg9Ii0yOS4yODYiIHk9IjYuMDA5IiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz48ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz48ZmVHYXVzc2lhbkJsdXIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzIwMDJfMTcxNTgiIHN0ZERldmlhdGlvbj0iNC41OTYiLz48L2ZpbHRlcj48ZmlsdGVyIGlkPSJvIiB3aWR0aD0iNTQuODE0IiBoZWlnaHQ9IjY0LjY0NiIgeD0iOC4yNDQiIHk9Ii0yLjQxNiIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+PGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIi8+PGZlR2F1c3NpYW5CbHVyIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8yMDAyXzE3MTU4IiBzdGREZXZpYXRpb249IjQuNTk2Ii8+PC9maWx0ZXI+PGZpbHRlciBpZD0icCIgd2lkdGg9IjM5LjQwOSIgaGVpZ2h0PSI0My42MjMiIHg9IjE4LjcxMyIgeT0iMTAuNTg4IiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz48ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz48ZmVHYXVzc2lhbkJsdXIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzIwMDJfMTcxNTgiIHN0ZERldmlhdGlvbj0iNC41OTYiLz48L2ZpbHRlcj48L2RlZnM+PC9zdmc+"}},"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":"amazonenterprise3.com","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"cloudflare_dns","sensor_type":"DNS","title":"Cloudflare DNS","description":"Cloudflare DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cloudflare.com/application-services/products/dns/","meta":null},{"sensor_name":"ultradns","sensor_type":"DNS","title":"DigiCert UltraDNS","description":"DigiCert UltraDNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://vercara.digicert.com/ultra-dns-public","meta":null},{"sensor_name":"cira_dns","sensor_type":"DNS","title":"CIRA Canadian Shield DNS","description":"CIRA Canadian Shield DNS","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"amazonenterprise3.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.cira.ca/en/canadian-shield/","meta":null}],"urlquery":[{"sensor_name":"urlquery","alert":"Phishing - Amazon","verdict":"phishing","severity":"medium","comment":"Resource associated with Amazon phishing","tags":["amazon","phishing"],"meta":null}]}}]}
